作业4新

  • 格式:doc
  • 大小:78.50 KB
  • 文档页数:8
A=[12 -3 3 4;-18 3 -1 -1;1 1 1 1;3 1 -1 1];b=[15;-15;6;2]; B=[A,b]; for k=1:3 if B(k,k)==0 disp return end for i=k+1:4 m=B(i,k)/B(k,k) B(i,k:5)=B(i,k:5)-m*B(k,k:5) end end m= -1.5000 B= 12.0000 -3.0000 3.0000 4.0000 15.0000 0 -1.5000 3.5000 5.0000 7.5000 1.0000 1.0000 1.0000 1.0000 6.0000 3.0000 1.0000 -1.0000 1.0000 2.0000 m= 0.0833 B= 12.0000 -3.0000 3.0000 4.0000 15.0000 0 -1.5000 3.5000 5.0000 7.5000 0 1.2500 0.7500 0.6667 4.7500 3.0000 1.0000 -1.0000 1.0000 2.0000 m= 0.2500 B= 12.0000 -3.0000 3.0000 4.0000 15.0000 0 -1.5000 3.5000 5.0000 7.5000 0 1.2500 0.7500 0.6667 4.7500 0 1.7500 -1.7500 0 -1.7500 m= -0.8333 B= 12.0000 -3.0000 3.0000 4.0000 15.0000 0 -1.5000 3.5000 5.0000 7.5000 0 0 3.6667 4.8333 11.0000 0 1.7500 -1.7500 0 -1.7500 m= -1.1667 B= 12.0000 0 0 0 m= 0.6364 B= 12.0000 0 0 0
end >> X X= 9.6923 -16.3846 -6.6923 3.0769 >> A=[2 1 0 0;1 2 -3 0;0 3 -7 4;0 0 2 5]; >> A*X' ans = 3.0000 -3.0000 10.0000 2.0000
14.用 LU 分解法解线性方程组
12 3 3 4 x1 15 18 3 1 1 x 15 2 1 1 1 1 x3 6 1 1 1 x4 2 3
(3) A=[4 0 -1;2 1 -2;0 3 2];c=[7;-1;4]; B=[A,c]; for k=1:2 [n, p]=max(abs(B(k:3,k))); if n==0; disp('A 奇异'), return; end if p+k-1>k C(k:4)=B(k,k:4);B(k,k:4)=B(p+k-1,k:4); B(p+k-1,k:4)= C(k:4); end for i=k+1:3 m=B(i,k)/B(k,k) B(i,k:4)=B(i,k:4)-m*B(k,k:4) end end m= 0.5000 B= 4.0000 0 -1.0000 7.0000 0 1.0000 -1.5000 -4.5000 0 3.0000 2.0000 4.0000 m= 0 B= 4.0000 0 -1.0000 7.0000 0 1.0000 -1.5000 -4.5000 0 3.0000 2.0000 4.0000 m= 0.3333 B= 4.0000 0 -1.0000 7.0000 0 3.0000 2.0000 4.0000 0 0 -2.1667 -5.8333 >> X(3)=B(3,4)/B(3,3); for i=3:-1:1 X(i)=(B(i,4)-B(i,i+1:3)*X(i+1:3)')/B(i,i) end X= 0 0 2.6923 X= 0 -0.4615 2.6923 X= 2.4231 -0.4615 2.6923 >> A*X' ans = 7.0000 -1.0000 4.0000
ቤተ መጻሕፍቲ ባይዱ
要求给出程序和运行结果。
clear A=[12 -3 3 4;-18 3 -1 -1;1 1 1 1;3 1 -1 1];b=[15;-15;6;2]; L=eye(4);U(1,:)=A(1,:); for k=2:4 if U(k-1,k-1)==0 disp('分解失败'); return end L(k:4,k-1)=A(k:4,k-1)/U(k-1,k-1); U(k,k:4)=A(k,k:4)-L(k,1:k-1)*U(1:k-1,k:4); if k<4 A(k+1:4,k)=A(k+1:4,k)-L(k+1:4,1:k-1)*U(1:k-1,k); end end Y(1)=b(1); for i=2:4 Y(i)=b(i)-L(i,1:i-1)*Y(1:i-1)'; end X(4)=Y(4)/U(4,4); for i=3:-1:1 X(i)=(Y(i)-U(i,i+1:4)*X(i+1:4)')/U(i,i); end L,U,X L= 1.0000 0 0 0 -1.5000 1.0000 0 0 0.0833 -0.8333 1.0000 0 0.2500 -1.1667 0.6364 1.0000 U= 12.0000 -3.0000 3.0000 4.0000 0 -1.5000 3.5000 5.0000 0 0 3.6667 4.8333 0 0 0 2.7576 X= 1.0000 2.0000 3.0000 -0.0000 >> L*U ans = 12.0000 -3.0000 3.0000 4.0000 -18.0000 3.0000 -1.0000 -1.0000 1.0000 1.0000 1.0000 1.0000 3.0000 1.0000 -1.0000 1.0000
>> X(4)=B(4,5)/B(4,4); for i=3:-1:1 X(i)=(B(i,5)-B(i,i+1:4)*X(i+1:4)')/B(i,i); end >> X X= 1.0000 2.0000 3.0000 -0.0000
11. 用列主元 Gauss 消去法求解以下三个线性方程组
Ax a, Ay b, Az c
其中
4 0 1 0 0 7 A 2 1 2 , a 1 , b 0 , c 1 0 3 2 4 4 4
(1) clear A=[4 0 -1;2 1 -2;0 3 2];a=[0;1;4]; B=[A,a]; for k=1:2 [n, p]=max(abs(B(k:3,k))); if n==0; disp('A 奇异'), return; end if p+k-1>k C(k:4)=B(k,k:4);B(k,k:4)=B(p+k-1,k:4); B(p+k-1,k:4)= C(k:4); end for i=k+1:3 m=B(i,k)/B(k,k) B(i,k:4)=B(i,k:4)-m*B(k,k:4) end end m= 0.5000 B= 4.0000 0 -1.0000 0 0 1.0000 -1.5000 1.0000 0 3.0000 2.0000 4.0000 m= 0 B= 4.0000 0 -1.0000 0 0 1.0000 -1.5000 1.0000 0 3.0000 2.0000 4.0000 m= 0.3333 B= 4.0000 0 0 0 3.0000 0 -1.0000 2.0000 -2.1667 0 4.0000 -0.3333 >> X(3)=B(3,4)/B(3,3); for i=3:-1:1 X(i)=(B(i,4)-B(i,i+1:3)*X(i+1:3)')/B(i,i) end X= 0 0 0.1538 X= 0 1.2308 0.1538 X= 0.0385 1.2308 0.1538 >> A*X' ans = 0 1 4
13. 用追赶法解线性方程组
2 x1 x2 3 x 2 x 3 x 3 1 2 3 3 x2 7 x3 4 x4 = 10 2 x 3 5 x4 2
要求给出程序和运行结果。 clear a=[0,1,3,2];b=[2,2,-7,5];c=[1,-3,4];d=[3;-3;10;2]; for i=2:4 if b(i-1)==0 disp('追赶法失败'); return end a(i)=a(i)/b(i-1) b(i)=b(i)-c(i-1)*a(i) d(i)=d(i)-a(i)*d(i-1) end a= 0 0.5000 3.0000 2.0000 b= 2.0000 1.5000 -7.0000 5.0000 d= 3.0000 -4.5000 10.0000 2.0000 a= 0 0.5000 2.0000 2.0000 b= 2.0000 1.5000 -1.0000 5.0000 d= 3.0000 -4.5000 19.0000 2.0000 a= 0 b= 2.0000 d= 3.0000 -4.5000 19.0000 40.0000 >> X(4)=d(4)/b(4); >> for i=3:-1:1 X(i)=(d(i)-c(i)*X(i+1))/b(i); 1.5000 -1.0000 13.0000 0.5000 2.0000 -2.0000
-3.0000 -1.5000 0 0
3.0000 3.5000 3.6667 2.3333