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

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)x05当难以求得微分方程的解析解时,可以求其数值解.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:

    x05function dy=fun(x,y)

    x05dy = - 2*y/x+4*x;

    x05(2)再输入命令

    x05[X,Y]=ode45('fun',[1 3],2);

    plot(X,Y,'-')

    你要么留个邮箱 发给我,我们学过一点这个课,我把资料发给你,这样看不大清楚的