M文件
%写一个计算目标函数值 M-file maxwell.m
function F=maxwell(x)
E11=7e6;E12=250e6;n=1875;i=0;
for k=0.1:0.1:10
for r=1e-5:1e-5:1e-3
i=i+1;
Q=E11*E12*r/(E11+E12)+n*E12*E12*(1-exp(-(E11+E12)*r/(n*k)))*k/((E11+E12)*(E11+E12));
F(1,i)=Q-x(1)*k+x(1)*k*exp(-x(2)*r/(x(1)*k));
end
end
命令框输入
x0=[1e-5 5e-2];
[x,resnorm]=lsqnonlin(@maxwell,x0)
运行结果:
x = 9.999834318993589e+000 2.555550235409793e+000
resnorm = 1.752410351259076e+012
数值是不正确的, 残差S肯定不是最小值,请高手帮看看是哪个地方出现问题了
该问题的数学模型如下图所示,图下的K的取值范围是0-10,我打错了,应该保持与原程序一致:
哦,K的取值范围我打错了,是0-10,你选的是0-1,别的改动地方我暂时还没有看出来,我感觉这样算出来的值是使得残差S值最大,而不是最小,其实只要满足S残差最小的值就是正确的了。不过仍然谢谢你呀
如何用matlab实现非线性最小二乘拟合
命令说明通过上面的例子知道,matlab实现非线性最小二乘拟合的关键命令是 lsqnonlin。该命令的格式如下 x=lsqnonlin('f',x0) 功能:作为非线性最小二乘拟合,其中f是函数文件。
最小二乘法求解二元方程组,matlab的lsqnonlin函数用法?
采用最小二乘法求解二元方程组时,首先利用matlab的lsqnonlin函数进行尝试,得到的方程组解为特定值。深入理解,lsqnonlin函数适用于非线性数据拟合问题,而非直接求解特定方程组。方程组v=0和s=S_all需转换为优化问题,目标是找到参数t1和t2,使得函数fun最小,理论上为零最佳。为了求解优化问题,使用粒子...
matlab的lsqnonlin函数怎么用
res:误差的向量 ef:程序停止运行的原因 out:一个结构变量,包含程序运行或停止时的一些信息 lam:上下界所对应的拉格朗日乘子 jac:结果(x点)处的雅可比矩阵 输入列表中参数的含义:F:调用的函数 x0:迭代初值或有根区间 v1等:课本上没说我也不知道,一般写作[],意思是使用缺省值(默认值)...
matlab的lsqnonlin函数怎么用
[x,resnorm,residual,exitflag,output]=lsqnonlin(...)[x,resnorm,residual,exitflag,output,lambda]=lsqnonlin(...)[x,resnorm,residual,exitflag,output,lambda,jacobian]=lsqnonlin(...)注:1、lsqnonlin解决非线性最小二乘法问题,包含非线性数据的拟合问题 2、fun函...
...有一非线性最小二乘问题中一函数lsqnonlin,我想把里边X的数据改为矩...
如果估计的较准确,最小二乘算出的系数更加精确。lsqnonlin函数采用的是迭代法,a0则是迭代初始值。由于程序的局限性,不可能搜索无穷大的区间,这样一来,初始值的选择就很重要了。如果最优解离所给初始值比较近,迭代求出该最优解的概率就很高;如果初始值提供的不理想,离最优解较远,而matlab对于...
matlab非线性最小二乘拟合
对于带有高斯积分函数的拟合问题,可以考虑用最小二乘法lsqnonlin()函数来求解。lsqnonlin()函数的格式为:x = lsqnonlin(fun,x0,lb,ub)式中:fun—自定义函数,x0—初值,lb—下限位值,ub—上限位值 如有困难,可以将数据和模型私信给我。
最小二乘法拟合椭圆怎么求,最好matlab代码
matlab 非线性的拟合有两个命令lsqcurvefit和lsqnonlin。这里用lsqcurvefit(lsqnonlin一样做),先介绍下lsqcurvefit(原理是最小二乘法)已知数据点:xdata=(xdata1,xdata2,…,xdatan)ydata=(ydata1,ydata2,…,ydatan)lsqcurvefit用以求含参量x(向量)的向量值函数 F(x,xdata)=(F(x,...
求matlab应用公式 采用最小二乘迭代法拟合成一般非线性函数回归分析
你好 可以用 lsqnonlin 进行拟合 用法 x=lsqnonlin(@fun,x0,lb,ub,options,P1,…)其中 fun是名为fun.m的m文件,里面有你想要进行拟合的函数 形如 function r=fun(x,t,y)x0是初值点,随便取 例如 x0 = [0.2,0.05,0.05];lb,ub是x的上下限 options 可选,可以不填 P1,P2是已知的...
maltlab中lsqcurvefit,lsqnonlin,polyfit这三个函数是不是都是拟合用...
interface for data-fitting problems.大意是说lsqcurvefit和lsqnonlin是一毛一样的,只是lsqcurvefit提供的使用方式更简单方便些,都是非线性最小二乘法拟合 polyfit和前两个不一样,他是多项式拟合,相对于前两个函数,它的拟合的函数形式比较单调,但是由于多项式的良好特性,也是经常使用的数据处理方法 ...
matlab解带参数的非线性方程组
下降算法采用Levenberg-Marquardt法 函数调用最大次数为1000 由用户定义目标函数的雅可比矩阵 opt1=optimset('LargeScale','off','MaxFunEvals',1000,'Jacobian','on');用非线性最小二乘命令求p(x,y),x=p(1),y=p(2)[p,norm,res,exit,out]=lsqnonlin(@dfun,p0,[],[],opt1,x0,y0,det);...