当前位置:文档之家› matlab编程及其应用

matlab编程及其应用


0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1/7
1
0
1
1/8
1
0
1
1/9
(2) :实验结果为:
A=
Columns 1 through 6
1/2
1/3
1/4
1/7
1/3
1/4
1/5
1/8
1/4
1/5
1/6
1/9
1/5
1/6
1/7
1/10
1/6
1/7
1/8
1/11
1/7
1/8
1/9
1/12
0
0
0
0
0
0
0
0
0 0 0 0 0 0 0 0 1
fprintf('给定的向量组是线性无关的。\n') else
fprintf('\n') fprintf('给定的向量组是线性相关的。\n')
fprintf('\n') fprintf('给定的向量组的秩为%d。\n',r) fprintf('\n') fprintf('给定的向量组的一个极大线性无关组为:\n') for i=1:r
X=null(A,'r') format end end
5、 实验结果与讨论、
1、 (1) :实验结果为 A=
Columns 1 through 6
1 0
1 0
0 0
0 0
0 1
0 1/6
1
0
0
0
1/2
1
0
0
1
1/3
1
0
0
1
1/4
1
0
0
1
1/5
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
Columns 7 through 10
A(k,l)=8; elseif k+l==14
A(k,l)=7; elseif k+l==15
A(k,l)=6; elseif k+l==16
A(k,l)=5; elseif k+l==17
A(k,l)=4; elseif k+l==18
A(k,l)=3; elseif k+l==19
A(k,l)=2; elseif k+l==20
fprintf('a%d',S(i)) A(:,S(i))' fprintf('\n') end b=1:n; for i=1:r b(S(i))=0; B=find(b); end for j=1:(n-r) fprintf('a%d=',B(j)) T=R(:,B(j)); for i=1:r fprintf('%d*a%d + ',T(i),S(i)) end fprintf('\b\b\n') end end 4、 clc clear A=[1,1,1,0,0;1,1,-1,-1,-2;2,2,0,-1,-2;5,5,-3,-4,-8]; b=[0;1;1;4] r1=rank(A); r2=rank([A,b]); n=size(A,2); if r1==r2 fprintf('原方程无解\n') else if r1==n fprintf('原方程有唯一解:\n') format rat
0 1 1 4
原方程无解
6、 总结
(1) :在编程中常常会把end给漏掉; (2) :对于高代中的知识点总是记得不是太清楚,导致判断最大线性 无关和秩等都不太会做。
1/5 1/6 1/7 1/8 1/9 1/10
1/6 1/7 1/8 1/9 1/10 1/11
1/8 1/13
1/9 1/14
1/10 1/15
1/11 1/16
1/9 1/10 1/11 1/12
Columns 7 through 10
1/8
1/9
1/9
1/10
1/10
1/11
1/11
1/12
x0=A\b format else fprintf('原方程有无穷多个解\n') fprintf('其中原方程的一个特解为:\n') [R,S]=rref([A,b]); X0=zeros(size(A,2),1); T=R(:,end); for k=1:length(S)
X0(S(k))=T(k); end format rat X0 fprintf('原方程组对应的齐次线性方程组的基础解系为:\n')
1/12
1/13
1/13
1/14
1/14
1/15
1/15
1/16
1/16
1/17
1/17
1/18
(3) 实验结果为:
A=
2004
20
0
2004
0
0
0
0
0
0
(4) :实验结果为:
A=
Columns 1 through 6
0
0
0
0
0
1/10 1/11 1/12 1/13
1/10 1/11 1/12 1/13 1/14 1/15 1/16 1/17 1/18 1/19
exp(x)*sin(2*x)*C2+exp(x)*cos(2*x)*C1+1/3*exp(x)*sin(x)
(3)实验结果为:x =
(1/2-1/4*2^(1/2))*exp(2^(1/2)*t)+
(1/2+1/4*2^(1/2))*exp(-2^(1/2)*t)
y= -(1/2-1/4*2^(1/2))*2^(1/2)*exp(2^(1/2)*t)+ (1/2+1/4*2^(1/2))*2^(1/2)*exp(-2^(1/2)*t)-(1/21/4*2^(1/2))*exp(2^(1/2)*t)(1/2+1/4*2^(1/2))*exp(-2^(1/2)*t)
6. 试说明下面两段程序的功能,最后两个 x 值为多少?
x=1; while x+x>x, x=x/2; end
x=1; while x+x>x, x=2*x; end
7. 已知 sin(x) 的幂级数展开公式为 试利用这个公式和第 5 题中的技巧,计算 sin(/2)和 sin(31/2) 的值,并与 Matlab 自带的 sin 函数比较,误差分别多大?为什么?
3、 A=
1 -1 2 4
0
3
3
0
1
7
2
14
2
1
1
-1
5
2
6
0
给定的向量组是线性相关的。 给定的向量组的秩为3。 给定的向量组的一个极大线性无关组为: a1 ans =
1
-1
2
4
a2 ans =
0
3
1
2
a4 ans =
2
1
5
6
a3=3*a1 + 1*a2 + 0*a4
a5=-1*a1 + -1*a2 + 1*a4 4、 b=
A(k,l)=1; else A(k,l)=0 end end end A 2、 (1) syms x y y=dsolve('(x*x-1)*Dy+2*x*y-sin(x)=0','x')
(2) syms x y y=dsolve('D2y-2*Dy+5*y=exp(x)*sin(x)','x') (3) clear clc syms x y t [x,y]=dsolve('Dx+x+y=0,Dy+x-y=0','x(0)=1,y(0)=0','t') ezplot(x,y) 3、 clc clear a1=input('请输入第1个向量a1='); a2=input('请输入第2个向量a2='); a3=input('请输入第3个向量a3='); a4=input('请输入第4个向量a4='); a5=input('请输入第5个向量a5='); A=[a1',a2',a3',a4',a5'] [R,S]=rref(A); [m,n]=size(A); r=length(S); if n==r
三、实验环境
(1)硬件:PC机 (2)软件:Windows 操作系统、matlab7.0
四、实验步骤:
1、(1)clear clc format rat for k=1:10
for l=1:10 if k==l A(k,l)=1/k; elseif k==l+1 A(k,l)=1; elseif l==k+1 A(k,l)=1; else A(k,l)=0; end
2、求微分方程的通解或特解 P97,1—3
3、用编程方法求向量组的秩、一个极大线性无关组,并将其余的向量 用极大无关组来线性表示:a1=[1,-1,2,4]
a2=[0,3,1,2] a3=[3,0,7,14] a4=[2,1,5,6] a5=[1,-1,2,0]
相关主题