数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
查看: 3850|回复: 0

[求助]如何进行非线性拟合

[复制链接]
发表于 2005-12-18 00:07:04 | 显示全部楼层 |阅读模式
<>请问高手能帮忙解决一下这个问题吗?</P>
<>我用最小二乘法的非线性拟合2004年高教杯的C题----饮酒驾车的模型的相关代码时总是出错,本来才21个数据,残差居然可以达到五千多.真是好奇怪啊!不知道是什么原因.</P>
<>下面是两个程序段我是放在两个M文件里的.)</P>
<P>function ct=fordrink(arg,data)<BR>             ct=arg(1).*(exp(-arg(2).*data)-exp(-arg(3).*data));</P>
<P>第二个M文件:</P>
<P>options = optimset('LevenbergMarquardt','on');<BR>t0=clock;<BR>para0=[120,-1.0,-1.5];  % Initial guess for nonlinear parameters<BR>xdata=[0.25 0.5 0.75 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0];<BR>ydata=[30.0 68.0 75.0 82.0 82.0 77.0 68.0 68.0 58.0 51.0 50.0 41.0 38.0 35.0 28.0 25.0 18.0 15.0 12.00 10.0 7.0 7.0 4.0];<BR>plot(xdata,ydata,'or');<BR>hold on;<BR>[para,res]=lsqcurvefit(@fordrink,para0,xdata,ydata,[],[],options)<BR>execution_time=etime(clock, t0);<BR>fprintf('Execution time: %g\n',execution_time);<BR>t=0:0.1:16;<BR>a=para(1);         %吸收能力<BR>b=para(2);         %代谢的能力<BR>fct=para(1)*(exp(para(2).*t)-exp(para(3).*t));<BR>plot(t,fct,'-b');<BR>hold off</P>
<P>急急急&gt;&gt;...&gt;&gt;&gt;&gt;&gt;</P>
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-5-29 08:12 , Processed in 0.051918 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表