10.拟合

网友投稿 637 2022-11-17

10.拟合

10.拟合

拟合

一.拟合问题

拟合与插值的区别例题

二.求解办法-线性最小二乘法

例题

matab代码

x=0.1:0.1:1.1; y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2]; R=[(x.^2)' x' ones(11,1)]; A=R\y'

matab代码:

=0:0.1:1; y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2]; A=polyfit(x,y,2) z=polyval(A,x); plot(x,y,'k+',x,z,'r')

三.非线性函数拟合问题

例题

使用lsqcurvefit命令求解

先编写M文件 curvefun1.m定义函数,代码为

function f=curvefun1(x,tdata)f=x(1)+x(2)*exp(-0.02*x(3)*tdata)

再在命令窗口输入下面的matlab代码:

tdata=100:100:1000cdata=1e-03*[4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.39,6.50,6.59];x0=[0.2,0.05,0.05];x=lsqcurvefit ('curvefun1',x0,tdata,cdata)f= curvefun1(x,tdata)

使用lsqnonlin命令求解

先编写M文件 curvefun2.m定义函数,代码为

curvefun2.mfunction f=curvefun2(x)tdata=100:100:1000;cdata=1e-03*[4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.39,6.50,6.59];f=x(1)+x(2)*exp(-0.02*x(3)*tdata)- cdata

再在命令窗口输入下面的matlab代码:

tdata=100:100:1000cdata=1e-03*[4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.39,6.50,6.59];x0=[0.2,0.05,0.05];x=lsqcurvefit ('curvefun1',x0,tdata,cdata)f= curvefun1(x,tdata)

四.拟合问题实例-给药方案

1.题目

2.模型假设

3.模型建立

4.求解

用线性最小二乘法拟合求解

d=300;t=[0.25 0.5 1 1.5 2 3 4 6 8];c=[19.21 18.15 15.36 14.10 12.89 9.32 7.45 5.24 3.01];y=log(c);a=polyfit(t,y,1)k=-a(1)v=d/exp(a(2))

用非线性最小二乘拟合求解c(t)-用lsqcurvefit

1)先新建curvefun3.m定义函数

function f=curvefun3(x,tdata)d=300f=(x(1)\d)*exp(-x(2)*tdata)

2)命令窗口输入

tdata=[0.25 0.5 1 1.5 2 3 4 6 8];cdata=[19.21 18.15 15.36 14.10 12.89 9.32 7.45 5.24 3.01];x0=[10,0.5];x=lsqcurvefit('curvefun3',x,tdata,cdata);f=curvefun3(x,tdata)

5.给药方案设计

​​返回目录​​

​​下一篇:11.预测方法​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:设置容器的技巧(最佳实践)
下一篇:15.非线性规划(下)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~