matlab 曲线拟合求函数的最佳参数时怎么确定参数的初始值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 曲线拟合求函数的最佳参数时怎么确定参数的初始值相关的知识,希望对你有一定的参考价值。

x=[2:16];
y=[6.42 8.2 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.6 10.8 10.6 10.9 10.76];
plot(x,y,'*');
% b0=[];%待定参数的初始值
fun=inline('b(1)*(1-b(2)*exp(b(3)*x))','b','x');
[b,r,j]=nlinfit(x,y,fun);
b
R=sum(r.^2)%误差的平方和

确定参数的初始值是比较繁琐的工作,一般可以用随机函数rand()来初定初始值,再根据plot()的散点图的曲线趋势,再调整初始值,直到试验数据曲线与拟合函数曲线基本吻合,即R² ≈ 1(相关系数),此时得到的系数为最佳值。(前提,拟合模型符合试验数据)追问

能详细说一下怎么用随机函数吗

追答

b=[rand(1)*100 rand(1)*20 rand(1)*1]

追问

100,,2,1是啥意思

追答

rand(1)*100的意思是,将随机函数rand()得到随机数扩?00倍。即
>> rand(1)
ans =
0.95013
rand(1)*100=0.95013*100=95.013

参考技术A x=[2:16];
y=[6.42 8.2 9.58 9.5 9.7 10 9.93 9.99 10.49 10.59 10.6 10.8 10.6 10.9 10.76];
plot(x,y,'*');
b0=[10.5974438964979 0.928821089717906 -0.453];%待定参数初始值
fun=inline('b(1)*(1-b(2)*exp(b(3)*x))','b','x');
[b,r,j]=nlinfit(x,y,fun,b0);
b
R=sum(r.^2)%误差平方和

怎么在matlab中对离散点进行曲线拟合,求参数!

拟合出f(x)分布的系数
然后,根据xy分别是离散点的横纵坐标(数值至少10组以上)首先,进行参数估计
*p(Xn;P)*p(X2。然后求一个P。不妨假设有高斯噪声干扰ML估计是这个意思,现在只需要写出上面的概率密度函数就可以了。
按你的模型,数据X的分布是与参数有关的.,理想情况下数据y是由完全由参数决定的确定性量,则这组数据出现的总概率是,使这个总概率最大:设待估计参数P,即p(X.;P);你现在已经有了一组数据X:p(X1;
P);P)*
参考技术A ML估计是这个意思:设待估计参数P,数据X的分布是与参数有关的,即p(X;P);你现在已经有了一组数据X,则这组数据出现的总概率是:p(X1;P)*p(X2;P)*...*p(Xn;
P)。然后求一个P,使这个总概率最大。
按你的模型,理想情况下数据y是由完全由参数决定的确定性量。不妨假设有高斯噪声干扰,现在只需要写出上面的概率密度函数就可以了。
参考技术B 首先,根据xy分别是离散点的横纵坐标(数值至少10组以上),拟合出f(x)分布的系数
然后,进行参数估计。

以上是关于matlab 曲线拟合求函数的最佳参数时怎么确定参数的初始值的主要内容,如果未能解决你的问题,请参考以下文章

怎么在matlab中对离散点进行曲线拟合,求参数!

matlab曲线拟合后如何给出得到的各个参数的标准差

matlab求非线性拟合

怎么通过一组数据拟合出总体分布

matlab中如何拟合光滑曲线

在matlab中如何根据拟合图得到函数?