使用最小二乘法拟合乘幂函数y=a*x^b和指数函数y=b*exp(a)

WBOY
发布: 2024-01-16 16:51:11
转载
1223 人浏览过

运用最小二乘法分别进行乘幂函数 y a x^b指数函数y b expa

运用最小二乘法分别进行乘幂函数 y a x^b指数函数y b expa x曲

x=[0.34 0.35 0.36 0.37 0.38 0.39 0.40 0.41 0.42 0.43];

y=[0.211 0.313 0.466 0.692 1.03 1.532 2.190 3.250 4.823 7.158];

拟合第一个:

function f = first(c, x, y)

f = y - c(1) .* x .^ c(2);

保存为first.m文件。

命令行下运行:

c = lsqnonlin('first', [0 0], [], [], [], x, y);

a = c(1)

b = c(2)

拟合第二个:

function f = first2(c, x, y)

f = y - c(2) .* exp(c(1) .* x);

保存为first2.m文件。

命令行下运行:

c2 = lsqnonlin('first2', [0 0], [], [], [], x, y);

a2 = c2(1)

b2 = c2(2)

如何使用matlab进行最小二乘法拟合

用polyfit函数,(用来多项式拟合的,是用最小二乘法)

举个例子

x=[90 91 92 93 94 95 96];

z=[70 122 144 152 174 196 202];

a=polyfit(x,z,1)

结果:

a =

1.0e+03 *

0.0205 -1.7551

1表示1次多项式(一次时就是直线,适用于你的情况)

a是多项式的系数向量,是从高次项往低次项排的,

如果想运用结果,比如想知道当x=97时z等于多少

那么有两种方法,

直接用系数

>>a(1)*97+a(2)

ans =

233.4286

或者用polyval函数

>>polyval(a,97)

ans =

233.4286

最小二乘法的应用??

最小二乘法是一种数学优化技术,它通过最小化误差的平方和找到一组数据的最佳函数匹配。

最小二乘法是用最简的方法得一些绝对不可知的真值,而令误差平方之和为最小。

最小二乘法通常用于曲线拟合。很多其他的优化问题也可通过最小化能量或最大化熵用最小二乘形式表达。

比如从最简单的一次函数y=kx+b讲起

已知坐标轴上有些点(1.1,2.0),(2.1,3.2),(3,4.0),(4,6),(5.1,6.0),经过这些点的图象的一次函数关系式.

当然这条直线不可能经过每一个点,我们只要做到5个点到这条直线的距离的平方和最小即可,这这就需要用到最小二乘法的思想.然后就用线性拟合来.讲起来一大堆,既然你只问最小二乘法,我就讲这么多.

这是大学里才学的内容,一般用于建模.

以上是使用最小二乘法拟合乘幂函数y=a*x^b和指数函数y=b*exp(a)的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:docexcel.net
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板