[数学建模]微分方程与差分方程

微分方程的解

解析解

需要用到的函数:

diff(f,x,n)  % 求f关于变量x的n阶导数,一元函数x可省略,一阶导数n可省略
dsolve(eqns, conds)  % eqns是微分方程,conds是初值条件
% 司守奎例6.6
syms x(t) [3,1];
a = [3,-1,1;
     2,0,-1;
     1,-1,2];
[s1, s2, s3] = dsolve(diff(x,t) == a*x(t), x(0) == ones(3,1))

s 1 = 4   e 3   t 3 − e 2   t 2 + 1 6 s_1 = \frac{4\,{\mathrm{e}}^{3\,t} }{3}-\frac{{\mathrm{e}}^{2\,t} }{2}+\frac{1}{6} s1=34e3t2e2t+61

s 2 = 2   e 3   t 3 − e 2   t 2 + 5 6 s_2 = \frac{2\,{\mathrm{e}}^{3\,t} }{3}-\frac{{\mathrm{e}}^{2\,t} }{2}+\frac{5}{6} s2=32e3t2e2t+65

s 3 = 2   e 3   t 3 + 1 3 s_3 = \frac{2\,{\mathrm{e}}^{3\,t} }{3}+\frac{1}{3} s3=32e3t+31

数值解:ode45

一般情况,微分方程形式如下:
{ y ′ = f ( x , y ) y ( x 0 ) = y 0 \begin{cases} y'=f(x,y)\\ y(x_0)=y_0 \end{cases} {y=f(x,y)y(x0)=y0
再套函数:

[x,y] = ode45(func, span, y0)
s = ode45(func, span, y0)
% [x,y]: 方程解曲线的横坐标和纵坐标
% s:与解相关的结构数组
% func:f(x,y),可以用m文件函数和匿名函数
% span:求解区间
% y0: 初值y0

y = deval(s,x)  % y在x处的值

对于微分方程组,相关参数稍有变化,例如:

对于大于一阶的常微分方程,需要通过变量代换转变为微分方程组,这时候func参数也是以方程组的形式,例如:

莱斯利种群模型

% 司守奎例8.6
L = [0,4,3;
     0.5,0,0;
     0,0.25,0];
x0 = [500,1000,500]';
[V,D] = eig(L)
lambda = eig(L)
k = 100;
xk = V*D^k*inv(V)*x0
V = 3×3
    0.9474   -0.9320    0.2259
    0.3158    0.3560   -0.5914
    0.0526   -0.0680    0.7741
D = 3×3
    1.5000         0         0
         0   -1.3090         0
         0         0   -0.1910
lambda = 3×1
    1.5000
   -1.3090
   -0.1910
xk = 3×1
1020 ×
    8.6662
    2.8887
    0.4815
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值