全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
1288 3
2015-03-26

我知道了微分方程 11.jpg

MATLAB中,方程可以通过以下求出:

>>x=dsolve('Dx=r*x*(1-log(x)/log(xm))','x(0)=x0','t')

x =

exp(-exp(-r/log(xm)*t+log(log(xm/x0))))*xm

所以方程的解为 22.jpg

                    

rlogxm进行非线性拟合,根据云南省1960——2010年的人口数据预测未来人口

function f=xt(g)

t=0:10;

x=[1894.6 2160.4 2503.32884.3 3173.4 3418.1 3730.6 3989.6 4240.8 4450.4 4601.6];

f=x-g(1).*exp(-exp(-g(2)./log(xm).*t)+log.*(log(xm)./1894.6));

g0=[5000,0.4];

g=lsqnonlin('xt',g0)

t=0:10;

y=1960+5.*t

f=x-g(1).*exp(-exp(-g(2)./log(xm).*t)+log.*(log(xm)./1894.6))


请大神帮忙看看,程序中的哪里出了问题,为什么出不来结果?


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-3-26 02:24:02
我是来挽尊的 一楼沙发
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-26 20:58:45
(1)原始的微分方程所求得的解析解,也许不对?它貌似如附件1所示;
(2)在拟合求参数时,没有把x0当作是已知的,即,把它也当作一个参数。求得的拟合方程见附件2;
(3)化简后的拟合方程见附件3。
附件列表
1.jpg

原图尺寸 6.81 KB

1.jpg

2.jpg

原图尺寸 15.22 KB

2.jpg

3.jpg

原图尺寸 7.54 KB

3.jpg

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-26 21:46:33
不过,从拟合效果来看,并不好。于是,用Origin来处理,发现效果很不错哟
附件列表
4.jpg

原图尺寸 68.61 KB

4.jpg

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群