实验25求解常微分方程的初值问题 例方法1初值问题求解: x(t)+x(t)+2x(t)=10·sin(2t) = 将微分方程改写为一阶微分方程组 令 0(t)=x(t) xl(t)=二x0(t) 则 xo(t)=xl(t) d xI(t 10-sin(2-0)e-3.t xl(t)-2.x0(t) 1(0) t0:=0tl:=40 解区间端点 初值条件向量 N:=100 在区间[t0,t上的解值数量 导函数:DX1[0m2e-x-2 解矩阵= rkfixed(v,o,t,N,D)注:函数 rkfixed也可以调用 Readapt 或 Bulstoer来代替 自变量值向量 1) 解函数值向量 X1:=S 解函数的一阶导数值向量
解区间端点 v 0 1 æ ç è ö ÷ ø := 初值条件向量 N := 100 在区间 [t0, t1]上的解值数量 导函数: D(t,X) X 1 1 5 10×sin(2t) (e) - 3t × X1 - 2 X0 - × é ë ù û × é ê ê ê ë ù ú ú ú û := 解矩阵 S := rkfixed(v,t0,t1,N,D) 注: 函数rkfixed 也可以调用Rkadapt 或 Bulstoer 来代替 T S á0ñ := 自变量值向量 X S á1ñ := 解函数值向量 X1 S á2ñ := 解函数的一阶导数值向量 0 10 20 30 40 1 1 2 X X1 T 实验25 求解常微分方程的初值问题 例 方法1 初值问题求解: 5 2 t x(t) d d 2 × t x(t) d d + + 2×x(t) 10×sin(2t) e - 3t = × x(0) = 0 x'(0) = 1 将微分方程改写为一阶微分方程组: 令 x0(t) = x(t) x1(t) t x0(t) d d = 则 t x0(t) d d = x1(t) t x1(t) d d 1 5 10×sin(2×t) e - 3×t = ×( × - x1(t) - 2×x0(t)) x0(0) x1(0) æ ç è ö ÷ ø 0 1 æ ç è ö ÷ ø = t0 := 0 t1 := 40 1
0 11030.975078405270252-00160.263-0474064 15731425 -0.2630474-064 方法2使用 laplace变换求解这个微分方程初值问题 5;x(t)+x(t)+2x(t)-10.sm(2)e~3t (0)= 5-s(Ss-laplace(x(D (s+3) 5·s(sX-0)-5·1+sx-0+2.x- (17+2+6) solve,x→5 将初始条件代入上式,解出x s(17+32+ 执行 SymbolicslTransformlnverse Laplace命令可以得到 +6s+13s+2+5 197p(-3t)cos(2*197xp(-3t)in(20-29 39t 857 10 此式为满足初始条件的特解. x(D):29 197 exp(-3 t)cos(2.t)+ n(2.t )exp(-3t) 39·t 857 39 39t 2561(10
X1T 0 1 2 3 4 5 6 7 8 9 0 1 1.03 0.975 0.784 0.527 0.252 -0.016 -0.263 -0.474 -0.64 = S T 0 1 2 3 4 5 6 7 8 9 0 1 2 0 0.4 0.8 1.2 1.6 2 2.4 2.8 3.2 3.6 0 0.403 0.809 1.164 1.428 1.584 1.63 1.573 1.425 1.2 1 1.03 0.975 0.784 0.527 0.252 -0.016 -0.263 -0.474 -0.64 = 方法2 使用laplace变换求解这个微分方程初值问题. 5 2 t x(t) d d 2 × t x(t) d d + + 2×x(t) 10×sin(2t) e - 3t - × x(0) = 0 x'(0) = 1 5×s×(s×laplace(x(t),t,s) - x(0)) 5 t ¬ 0 t x(t) d d - × + s×laplace(x(t), t,s) - x(0) 2×laplace(x(t), t,s) 20 (s + 3) 2 + 4 é ë ù û + - 5×s×(s×x - 0) - 5×1 + s×x - 0 + 2×x 20 (s + 3) 2 + 4 é ë ù û - solve, x 5 17 s 2 ( + + 6×s) s 2 ( + 6×s + 13) s + 2 5 s 2 ×( + × ) ® × 将初始条件代入上式 , 解出x 5 17 s 2 ( + + 6×s) s 2 ( + 6×s + 13) s + 2 5 s 2 ×( + × ) 执行 Symbolics\Transform\Inverse Laplace命令可以得到: 29 197 ×exp(-3×t)×cos(2×t) 12 197 + ×exp(-3×t)×sin(2×t) 29 197 exp -1 10 ×t æ ç è ö ÷ ø × cos 1 10 × 39×t æ ç è ö ÷ ø - × 857 2561 exp -1 10 ×t æ ç è ö ÷ ø × × 39 sin 1 10 × 39×t æ ç è ö ÷ ø + × ... 此式为满足初始条件的特解. x(t) 29 197 ×exp(-3×t) cos(2×t) 12 197 + ×sin(2×t)×exp(-3×t) 29 197 exp -1 10 ×t æ ç è ö ÷ ø × cos 1 10 × 39×t æ ç è ö ÷ ø - × æ ç è ö ÷ ø × 857 2561 exp -1 10 ×t æ ç è ö ÷ ø × × 39 sin 1 10 × 39×t æ ç è ö ÷ ø + × := ... 0 10 20 30 40 1 1 2 x(t) t 2
方法3使用Giⅳven. Resolve求解模块: Given t)+2.x(t)-10.sin( x(0)=0x(0) x: =Odesolve(t, 40, 100) 第三种方法最为简洁 x(t) +λ+2 solve,λ→
方法3 使用Given...Odesolve求解模块: Given x(0) = 0 x'(0) = 1 5 2 t x(t) d d 2 × t x(t) d d + + 2×x(t) 10×sin(2t) e - 3t - × = 0 x := Odesolve(t, 40, 100) 第三种方法最为简洁. 0 10 20 30 40 1 1 2 x(t) t 5l 2 + l + 2 solve, l -1 10 1 10 + ×i× 39 -1 10 1 10 - ×i× 39 æ ç ç ç è ö ÷ ÷ ÷ ø ® 3