9.1常微分方程(组)的MATLAB符号求解9.1.1用MATLAB求常微分方程(组)的通解调用格式一:S=dsolve('eqn','var')调用格式二:S=dsolve('eqn1','eqn2',...,'eqnm','var')9.1.2用MATLAB求常微分方程(组)的特解调用格式三:S=dsolve('eqn','condition1',…,'conditionn','var')调用格式四:S=dsolve('eqn1','eqn2',...,'eqnm','condition1','condition2',…,'var')9.1.3线性常微分方程组的解法求解齐次线性常微分方程组的MATLAB主程序名为qcxxcwz.m的求解齐次线性常微分方程组的MATLAB主程序如下:function[X,E,V]=qcxxcwz(A)symsxE=eig(A);[V,n]=eig(A);X=exp(E*x)'*V;9.2欧拉(Euler)方法的MATLAB程序9.2.1向前欧拉公式及其误差估计例9.2.1用欧拉方法求初值问题的数值解,分别取,并计算误差,画出精确解和数值解的图形.解编写并保存名为Eulerli1.m的MATLAB计算和画图的主程序如下functionP=Eulerli1(x0,y0,b,h)n=(b-x0)/h;X=zeros(n,1);Y=zeros(n,1);k=1;X(k)=x0;Y(k)=y0;fork=1:nX(k+1)=X(k)+h;Y(k+1)=Y(k)+h*(X(k)-Y(k));k=k+1;endy=X-1+2*exp(-X);plot(X,Y,'mp',X,y,'b-')gridxlabel('自变量X'),ylabel('因变量Y')title('用向前欧拉公式求dy/dx=x-y,y(0)=1在[0,1]上的数值解和精确解y=x-1+2exp(-x)')legend('h=0.075时,dy/dx=x-y,y(0)=1在[0,1]上的数值解','精确解y=x-1+2exp(-x)')jwY=y-Y;xwY=jwY./y;k1=1:n;k=[0,k1];170.P=[k',X,Y,y,jwY,xwY];在MATLAB工作窗口输入下面的程序>>x0=0;y0=1;b=1;h=0.0750;P=Eulerli1(x0,y0,b,h)在MATLAB工作窗口输入下面的程序>>h1=0.0075;P1=Eulerli1(x0,y0,b,h1)legend('h1=0.0075时,dy/dx=x-y,y(0)=1在[0,1]上的数值解','精确解y=x-1+2exp(-x)')9.2.2向前欧拉方法的兩种MATLAB程序(一)向前欧拉公式的MATLAB主程序1用向前欧拉公式求解常微分方程初值问题的数值解及其截断误差公式的MATLAB主程序1function[h,k,X,Y,P,REn]=Qeuler1(funfcn,x0,y0,b,n,tol)x=x0;h=(b-x)/n;X=zeros(n,1);y=y0;Y=zeros(n,1);k=1;X(k)=x;Y(k)=y';fork=2:n+1fxy=feval(funfcn,x,y);delta=norm(h*fxy,'inf');wucha=tol*max(norm(y,'inf'),1.0);ifdelta>=wuchax=x+h;y=y+h*fxy;X(k)=x;Y(k)=y';endplot(X,Y,'rp')gridlabel('自变量X'),ylabel('因变量Y')title('用向前欧拉(Euler)公式计算dy/dx=f(x,y),y(x0)=y0在[x0,b]上的数值解')endP=[X,Y];symsdy2,REn=0.5*dy2*h^2;例9.2.2用向前欧拉公式求解初值问题,分别取...