美赛建模需要matlab吗,美赛(matlab自学)之微分方程建模

人口模型

malthus模型

57f8563cced2d1a834a7e65362670930.png

befc5fad7bd34a66891736c257f2a137.png

美国人口的预报模型

1aaa0f52766d8e8a0b1c42e150bf67a5.png

建模与求解

58fbd84cd2bd2042957520a9761e6ee6.png

参数估计

(1)非线性最小二乘估计

clc, clear

a = textread('data4.txt'); %把原始数据保存在纯文本文件data4 .txt中

x=a([2:2:6],:)';%提出人口数据

x = nonzeros(x);%去掉后面的0,并变成列向量

t =[1790:10 :2000]';

t0 =t(1); x0 =x(1);

fun=@ (cs,td)cs(1)./1 +(cs(1)/x0 -1) *exp( -cs(2) * (td-t0)));%cs(1) =xm,cs(2) =r

cs = lsqcurvefit( fun, rand(2,1) ,t(2:end) ,x(2 :end) , zeros(2,1))

xhat = fun(cs,[t;2010])%预测已知年代和2010年的人口

(2)线性最小二乘法

clc, clear

a = textread( 'data4.txt');%把原始数据保存在纯文本文件data4.txt中

x=a([2:2:6],:)'; x = nonzeros(x);

t =[1790:10 :2000]';

a=[ones(21,1),-x(2:end)];

b=diff(x) ./x(2 :end) /10;

cs =a\b;

r =cs(1), xm=r/cs(2)

matlab求微分方程

4e7b38a15f31edaa8dadb7c1c7fdd8f2.png

微分方程通解

1e4be92b5fc807f50e0ef977304ed90a.png

syms y(x)

dsolve(x^2+y+(x-2*y)*diff(y)==0)

运行结果:

0da928ced3add23ff66b17ac48d935ab.png

微分方程的初边值问题

3cb871f70fc824d4c6dcfe7d7c1397a4.png

9df256b4010058e1aedbad6345e6d58c.png

求解微分方程组

求解方程组:

8871f88f828277948301f9697ae92077.png

clc, clear

syms f(x) g(x)%定义符号变量

df =diff(f);%定义f的一阶导数,用于初值或边值条件的赋值

[ f1,g1] =dsolve(diff(f,2) +3 *g= =sin(x),diff(g) +df= =cos(x))%求通解

f1 =simplify(f1), g1 =simplify(g1)%对符号解进行化简

[f2 ,g2] =dsolve(diff(f,2) +3 *g= =sin(x),diff(g) +df= =cos(x),df(2)= =0,f(3) = =3,g(5) = =1)

f2 =simplify(f2), g2 =simplify(g2)%对符号解进行化简

求解线性微分方程组

齐次线性微分方程组

3501e9c6bef837a3a5a61bcd15beaed1.png

clc,clear

syms x(t) y(t) z(t)

X=[x;y;z];

A=[2 1 3;0 2 -1;0 0 2];

B=[1 2 1]';

[x,y,z]=dsolve(diff(X)==A*X,X(0)==B)

3101708c53b66e524d4f26a4113ba38e.png

非齐次线性微分方程组

4f2ff2f9fb0f9690e7e7e8f92a37eab7.png

clc,clear

syms x(t) y(t) z(t) %定义符号变量

X=[x;y;z];

A=[1,0,0;2,1,-2;3,2,1];B=[0;0;exp(t) *cos(2*t)];

X0=[0;1;1];%初值条件

X =dsolve(diff(X)==A*X +B,X(0)==X0)%求符号解

X=simplify([X.x;X.y;X.z])%显示解的各个分量

pretty(x)%分数线居中的显示方式

633de045f2ff5f1eb01a52f732fd5e02.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值