用matlab或者mathematica求积分解微分方程

2024-12-27 12:45:54
推荐回答(1个)
回答1:

(1)积分函数int
int(s,v)格式,表示以v为自变量,对被积函数或符号表达式s求一阶不定积分.
int(s ,v, a,b),表示求函数f的定积分或广义积分;a、b分别表示定积分的下限和上限。
例子:求定积分和广义积分
syms x
I2=int(1/(3+2*x+x^2),x,0,1)
I3=int(1/(3+2*x+x^2),x,-inf,inf)
(2) 当难以求得微分方程的解析解时,可以求其数值解. Matlab中求微分方程数值解的函数有五个:ode45, ode23, ode113, ode15s, ode23s.
用法为:[t,x] = solver(‘f’, ts, x0, options)
solver取以上五个函数之一,不同的函数代表不同的内部算法。一般常用函数ode45
f 是由待解方程写成的m文件名;
ts = [ t0, tf ], t0、tf 分别初始时间和终止时间;
x0 为函数的初值;
options用于设定误差限(可以缺省,缺省时设定为相对误差10-3, 绝对误差10-6),格式为:
options = odeset(‘reltol’, rt, ‘abstol’, at )
这里rt, at 分别为设定的相对误差和绝对误差.
在解n 个未知函数的方程组时,x0 和 x 均为 n 维向量,m 文件中的待解方程组应以 x 的分量形式写成.
例子:例1:求微分方程初值问题在[1,3]区间内的数值解
解: (1)建立一个该函数的m文件fun.m:
function dy=fun(x,y)
dy = - 2*y/x+4*x;
(2)再输入命令
[X,Y]=ode45('fun', [1 3], 2);
plot(X,Y,'-')
你要么留个邮箱 发给我,我们学过一点这个课,我把资料发给你,这样看不大清楚的