2*pi
5. (广义积分)计算广义积分
1sinx1tan(x)?exp(?x2)???1?x4dx,?0xdx,?01?x2dx 程序: clear;syms x y z; y=int((exp(-x.^2))/(1+x^4),-inf,inf); z=vpa(y,10)
y=int((tan(x))/sqrt(x),0,1); z=vpa(y,10)
y=int(sin(x)/sqrt(1-x^2),0,1);z=vpa(y,10)
结果:
z =
1.434846558 z =
0.7968288892 z =
0.8932437408
实验五 matlab求解多项式(常微分方程)
一、实验目的
1、了解MATLAB中主要用dsolve求符号解析解,ode45,ode23,ode15s求数值解。
注释:s=dsolve(‘方程1’, ‘方程2’,…,’初始条件1’,’初始条件2’ …,’自变量’)
用字符串方程表示,自变量缺省值为t。导数用D表示,2阶导数用D2表示,以此类推。S返回解析解。在方程组情形,s为一个符号结构。
[tout,yout]=ode45(‘yprime’,[t0,tf],y0) 采用变步长四阶Runge-Kutta法和五阶Runge-Kutta-Felhberg法求数值解,yprime是用以表示f(t,y)的M文件名,t0表示自变量的初始值,tf表示自变量的终值,y0表示初始向量值。输出向量tout表示节点(t0,t1, …,tn)T,输出矩阵yout表
南昌大学教务处
示数值解,每一列对应y的一个分量。若无输出参数,则自动作出图形。
ode45是最常用的求解微分方程数值解的命令,对于刚性方程组不宜采用。ode23与ode45类似,只是精度低一些。ode12s用来求解刚性方程组,是用格式同ode45。可以用help dsolve, help ode45查阅有关这些命令的详细信息.
二、实验要求(选作下列习题)
1.求下列微分方程的解析解
程序: syms x y a;
s1=dsolve('D2y+Dy*2-3*y=exp(-3*x)','x') s2=dsolve('D2y-3*Dy=2*sin(x)*exp(2*x)','x')
南昌大学教务处
s3=dsolve('D2y+y*a^2=sin(x)','x') s4=dsolve('D2y*y-Dy*Dy-1=0','x')
s5=dsolve('Dy=y^3./(2*(x*y^2-x^2))','y(1)=1','x') s6=dsolve('D2y+Dy+y=cos(x)','y(0)=0,Dy(0)=1.5','x') s7=dsolve('D2y+y=exp(x)+cos(x)','y(0)=1,Dy(0)=1','x') s8=dsolve('D3y+2*D2y+Dy=0','y(0)=2,Dy(0)=0,D2y(0)=-1','x')
结果: s1 =
exp(x)*C2+exp(-3*x)*C1-1/4*x*exp(-3*x) s2 =
-1/5*cos(x)*exp(2*x)-3/5*sin(x)*exp(2*x)+1/3*exp(3*x)*C1+C2 s3 =
sin(a*x)*C2+cos(a*x)*C1+sin(x)/(a^2-1) s4 =
1/2*C1*(1/exp(1/C1*x)^2/exp(1/C1*C2)^2+1)*exp(1/C1*x)*exp(1/C1*C2)
1/2*C1*(exp(1/C1*x)^2*exp(1/C1*C2)^2+1)/exp(1/C1*x)/exp(1/C1*C2)
南昌大学教务处
s5 =
exp(-1/2*lambertw(-exp(-1)/x)-1/2) s6 =
1/3*exp(-1/2*x)*sin(1/2*3^(1/2)*x)*3^(1/2)+sin(x) s7 =
1/2*sin(x)+1/2*exp(x)+1/2*cos(x)+1/2*sin(x)*x s8 =
1+exp(-x)+exp(-x)*x >>
22.求方程 (1?x)y\?2xy',y(0)?1,y'(0)?3 的解析解和数值解,并进行比较
解方程程序:
syms x y;
y=dsolve('D2y*(1+x^2)=2*x*Dy','y(0)=1,Dy(0)=3','x') 结果: y =
1+3*x+x^3
a.程序建立函数文件fun.m function f=fun(x,y) f=y-x^3+3*x^2-3*x+2;
b.主程序:
南昌大学教务处
[x,y]=ode45('fun',[0,1],1); plot(x,y1,'rp') hold on x=0:0.1:1; y2=1+x.^3+3*x; plot(x,y2,'b') 结果;
南昌大学教务处