实验2利用matlab解非线性、微分方程组答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验2 利用matlab解(非)线性、微分方程(组)-答案1、对于下列线性方程组:
(1)请用直接法求解;
(2)请用LU分解方法求解;
(3)请用QR分解方法求解;
(4)请用Cholesky分解方法求解。
(1)
>> A=[2 9 0;3 4 11;2 2 6]
A =
2 9 0
3 4 11
2 2 6
>> B=[13 6 6]'
B =
13
6
6
>> x=inv(A)*B
x =
7.4000
-0.2000
-1.4000
或:
>> X=A\B
X =
7.4000
-0.2000
-1.4000
(2)
>> [L,U]=lu(A);
>> x=U\(L\B)
x =
7.4000
-0.2000
-1.4000
(3)
>> [Q,R]=qr(A);
>> x=R\(Q\B)
x =
7.4000
-0.2000
-1.4000
(4)
>> chol(A)
??? Error using ==> chol
Matrix must be positive definite.
2、设迭代精度为10-6,分别用Jacobi 迭代法、Gauss-Serdel 迭代法求解下列线性方程组,并比较此两种迭代法的收敛速度。
Jacobi 迭代法:
>> A=[10 -1 0;-1 10 -2;0 -2 10];
>> B=[9 7 5]';
>> [x,n]=jacobi(A,B,[0,0,0]',1e-6)
x =
0.9937
0.9368
0.6874
n =
11
Gauss-Serdel 迭代法:
>> A=[10 -1 0;-1 10 -2;0 -2 10];
>> B=[9 7 5]';
>> [x,n]=gauseidel(A,B,[0,0,0]',1e-6)
x =
0.9937
0.9368
0.6874
n =
7
3、求解非线性方程010=-+x xe x 在2附近的根。
首先建立M 文件f.m
function f=f(x)
f=x+x*exp(x)-10;
然后在主窗口调用:
>> x=fzero('f',2)
x =
1.6335
或直接采取以下方法:
x=solve('x+x*exp(x)-10')
x =
1.6335
4、求下列非线性方程组在(0.5,0.5) 附近的数值解。
(1) 建立函数文件f.m 。
function q=f(p)
x=p(1);
y=p(2);
q(1)=cos(x)+y*exp(x)-2;
q(2)=sin(y)+x*exp(y)-2;
(2) 在给定的初值x0=0.5,y0=0.5下,调用fsolve 函数求方程的根。 x=fsolve('f',[0.5,0.5]',optimset('Display','off'))
x =
0.8087
0.5833
或采取以下方法:
>> [x,y]=solve('cos(x)+y*exp(x)-2','sin(y)+x*exp(y)-2')
x =
.
y =
.668096
5、通过画图方法描述某非刚性体的运动方程的微分方程⎪⎩⎪⎨⎧=-==2
1331232151.0y y y y y y
y y y ,其初始条件为⎪⎩⎪⎨⎧===1)0(1)0(0)0(3
21y y y 。
建立ff.m 函数
function dy=ff(t,y)
dy=[y(2)*y(3);-y(1)*y(3);0.51*y(1)*y(2)];
建立调用函数
y0=[0 1 1];
[t,y]=ode45('ff',[0,15],y0)
plot(t,y(:,1),'r-o',t,y(:,2),'b-*',t,y(:,3),'g-v')
legend('y1','y2','y3')
运行结果:
6、求二阶微分方程)2sin(3t y e y t y t =-'+'', 1)0(=y ,1)0(-='y 在20≤≤t 时的数值图解。
令x 1=y , x 2=y'时有
x 1'=x 2,x 2'=3sin(t)-tx 2+e t x 1
建立ff.m 函数
function dx=ff(t,x)
dx=[x(2);3*sin(2*t)-t*x(2)+exp(t)*x(1)];
建立调用函数
x0=[1 -1];
[t,x]=ode45('ff',[0,2],x0)
plot(t,x(:,1),'r-o',t,x(:,2),'b-.*')
legend('x1','x2')