多元函数多参数拟合lsqcurvefit

您所在的位置:网站首页 多元函数拟合matlab 多元函数多参数拟合lsqcurvefit

多元函数多参数拟合lsqcurvefit

2023-02-16 15:34| 来源: 网络整理| 查看: 265

多元函数多参数拟合lsqcurvefit

根据已有数据,要拟合已知模型的多元函数参数。

例如二元函数

\[z = f\left( {x,y} \right) = C{x^m}{y^n} \]

根据已有数据拟合\(C\quad m\quad n\)三个参数。

MATLAB采用lsqcurvefit需要注意语法,经常写错,特别注意。

lsqcurvefit函数语法

x = lsqcurvefit(fun,x0,xdata,ydata)

x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub)

x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)

[x,resnorm] = lsqcurvefit(…) [x,resnorm,residual] = lsqcurvefit(…) [x,resnorm,residual,exitflag] = lsqcurvefit(…) [x,resnorm,residual,exitflag,output] = lsqcurvefit(…) [x,resnorm,residual,exitflag,output,lambda] = lsqcurvefit(…) [x,resnorm,residual,exitflag,output,lambda,jacobian] =lsqcurvefit(…) 参数说明: x0为初始解向量;xdata,ydata为满足关系ydata=F(x, xdata)的数据; lb、ub为解向量的下界和上界lb≤x≤ub,若没有指定界,则lb=[ ],ub=[ ]; options为指定的优化参数; fun为待拟合函数,计算x处拟合函数值,其定义为 function F = myfun(x,xdata) resnorm=sum ((fun(x,xdata)-ydata).^2),即在x处残差的平方和; residual=fun(x,xdata)-ydata,即在x处的残差; exitflag为终止迭代的条件; output为输出的优化信息; lambda为解x处的Lagrange乘子; jacobian为解x处拟合函数fun的jacobian矩阵。

下面这个例子是拟合一个二元函数的三个参数。

clc;clear; q_data = [1.962 3.488 3.924 6.976]; d_data = [4.45 8.01 5.34 9.81]; T_data = [538.82604 560.74205 564.13515 577.05757]; T_data = T_data+273; QR = -146000/8.314; k10 = 8.725e9; alpha10 = -0.08637; beta10 = 0.008683; %拟合 m0 = [k10,alpha10,beta10]; mmin = 0.01*m0; mmax = 100*m0; f = @(m,x)( m(1)*(1./(x(1,:)).^m(2)).*exp(m(3)./x(1,:)).*exp(QR./x(2,:)) ); Xdata = [q_data;T_data]; [m,resnorm,residual] = lsqcurvefit(f,m0,Xdata,d_data,mmin,mmax); d_yb = f(m,Xdata); plot(q_data,d_data,'b*'); hold on plot(q_data,d_yb,'r-'); % plot(d_data,d_yb); % fun = 8.725e9*(1./q_data).^(-0.08637).*exp(0.008683./q_data).*exp(QR./T_data); % plot(d_data,fun);

上面这个例子数据太少,拟合效果不好。

lsqcurvefit的第三个参数xdata只能是一个,因此要多元函数自变量写成向量形式。拟合的参数有多个,也写成向量形式即可。

有时候发现lsqcurvefit找不到合适的拟合参数,或许是模型问题,也有可能是参数范围有问题。

如果模型没问题的话,可以先假定一组拟合参数值看看曲线形状,与原始数据进行对比。

如果模型有问题,获得无量纲数,通过遗传编程获得比较好的模型。

复杂的拟合问题有时候还是用软件来得快。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3