1、普通方程和微分方程方程组的求解1、线性方程组的解法(1 ) 、直接法使用“/”和“”:a=magic(5)b=diag(ones(5)ab使用 lu 分解X=3 7 7;1 7 0;2 3 5L U=lu(X)b=1 2 3Y1=Lby=UY1(2 ) 、迭代法Jacobi 迭代法:jacobi.m%该函数用 Jacobi 迭代法求解线性方程组%用户需要输入 3 个参数%再设 A*y=b,用户输入矩阵 A 和 b%再输入一个初始向量 x0%使用格式为 y=jacobi(A,b,x0)function y=jacobi(A,b,x0)D=diag(diag(A);U=triu(A,1);L=tr
2、il(A,-1);B=-D(L+U);f=Db;y=B*x0+f;n=1;while norm(y-x0)=1.0e-6b=x(2);c=x(3);f(1)=a2+b+sin(c);f(2)=a*b+c;f(3)=cos(a)+b2+2*c;end在 command window 输入:x0=1 1 1;f=fsolve(feixianxing,x0)微分方程的求解1、常微分方程的数值求解ode solvers:ode23、ode45、ode113、ode15s、ode23S、ode23t 和 ode23tb参数选择函数:odeset、odeget输出函数:odeplot、odephas2、o
3、dephas3 和 pdeprint结果评估函数:devalode 示例:rigidode 、ballode 和 orbitodeodeset 函数用于创建和更改 Solver 选项odeget 函数用于读取 Solver 的设置值odeplot 函数用于输出 ode 的时间序列图odephas2 函数用于输出 ode 的二维相平面图odephas3 函数用于输出 ode 的三维相平面图odeprint 在命令窗口输出结果(1 ) 、普通 2-3 阶法解 ode(普通 2-3 阶 Runge-Kutta 法)t,y=ode23(odefun,tspan,y0):返回一个列向量,对微分方程 y=
4、f(t,y)在 tspan 区域内积分,tspan=t0,tfinal,当 tspan=t0,t1,tfinal时,他可以是一些离散点t,y=ode23(odefun,tspan,y0,options):options 为积分参数,包括相对误差和绝对误差t,y=ode23(odefun,tspan,y0,options,p1,p2,):p1 和 p2 等可传递给函数 odefunt,y,te,ye,ie=ode23(odefun,tspan,y0,options,):必须设置 options 中的事件属性为 on,输出向量 te 为列向量,代表自变量点,ye 为行向量,为对应点上的解, ie
5、代表解的索引odeliyi.mfunction f=odeliyi(x,y)f=-y+x2+4*x+1;end在 command window 输入:x,y=ode23(odeliyi,1,4,1);xy(2 ) 、普通 4-5 阶法解 odet y=ode45(vdp1,0 20,2 0);plot(t,y(:,1)2、偏微分方程的数值求解sol=pdepe(m,pdefun,icfun,bcfun,xmesh,ispan):求解一维的抛物线椭圆的初始边界值问题,该问题有一个空间变量 x 和一个时间变量 tpdeval 求解 pdepe 得到的解的值(对这个解进行差值)x=linspace(0,1,20);t=0 0.5 1 1.5 2;sol=pdepe(0,pdex1pde,pdex1ic,pdex1bc,x,t);ul=sol(:,:,1)surf(x,t,ul)