第二章 解线性方程组的直接方法 matlab用法范文

2020-02-21 00:06

第二章 解线性方程组的直接方法

在这章中我们要学习线性方程组的直接法,特别是适合用数学软件在计算机上求解的方法.

2.1 方程组的逆矩阵解法及其MATLAB程序

2.1.3 线性方程组有解的判定条件及其MATLAB程序 判定线性方程组Am?nX?b是否有解的MATLAB程序

function [RA,RB,n]=jiepb(A,b)

B=[A b];n=length(b); RA=rank(A); RB=rank(B);zhica=RB-RA; if zhica>0,

disp('请注意:因为RA~=RB,所以此方程

组无解.')

return end

if RA==RB if RA==n

disp('请注意:因为RA=RB=n,所以此方

程组有唯一解.')

else

disp('请注意:因为RA=RB

程组有无穷多解.')

end end

例2.1.4 判断下列线性方程组解的情况.如果有唯一解,则用表 3-2方法求解.

(1)

?2x1?3x2?x3?5x4?0,?3x?x?2x?7x?0,?1234??4x1?x2?3x3?6x4?0,??x1?2x2?4x3?7x4?0; (2)

第二章 解线性方程组的直接方法的MATLAB程序

?3x1?4x2?5x3?7x4?0,?2x?3x?3x?2x?0,?1234 ??4x1?11x2?13x3?16x4?0,??7x1?2x2?x3?3x4?0;?4x1?2x2?x3?2,?2x?y?z?w?1,?(3) ?3x1?x2?2x3?10, (4) ??4x?2y?2z?w?2, ?11x?3x?8;?2x?y?z?w?1.?12?

解 在MATLAB工作窗口输入程序

>> A=[2 3 -1 5;3 1 2 -7;4 1 -3 6;1 -2

4 -7];

b=[ 0; 0; 0; 0];

[RA,RB,n]=jiepb(A,b) 运行后输出结果为

请注意:因为RA=RB=n,所以此方程组有唯一

解.

RA = 4,RB =4,n =4 在MATLAB工作窗口输入

>>X=A\\b,

运行后输出结果为 X =(0 0 0 0)’.

(2) 在MATLAB工作窗口输入程序

>> A=[3 4 -5 7;2 -3 3 -2;4 11 -13 16;7 -2 1 3];b=[ 0; 0; 0; 0];

[RA,RB,n]=jiepb(A,b)

运行后输出结果

请注意:因为RA=RB

多解.

RA =2,RB =2,n =4

(3) 在MATLAB工作窗口输入程序

>> A=[4 2 -1;3 -1 2;11 3 0]; b=[2;10;8];

[RA,RB,n]=jiepb(A,B) 运行后输出结果

请注意:因为RA~=RB,所以此方程组无解. RA =2,RB =3,n =3

25.

(4)在MATLAB工作窗口输入程序

>> A=[2 1 -1 1;4 2 -2 1;2 1 -1 -1]; b=[1; 2; 1]; [RA,RB,n]=jiepb(A,b)

运行后输出结果

请注意:因为RA=RB

多解.

RA =2,RB =2,n =3

2.2 三角形方程组的解法及其MATLAB程序

2.2.2 解三角形方程组的MATLAB程序 解上三角形线性方程组AX?b的MATLAB程序

function [RA,RB,n,X]=shangsan(A,b) B=[A b]; n=length(b); RA=rank(A); RB=rank(B);zhica=RB-RA; if zhica>0,

disp('请注意:因为RA~=RB,所以此方程

组无解.')

return end

if RA==RB if RA==n

disp('请注意:因为RA=RB=n,所以此

方程组有唯一解.')

X=zeros(n,1);

X(n)=b(n)/A(n,n);

for k=n-1:-1:1

X(k)=(b(k)-sum(A(k,k+1:n)*X(k+1:n)))/A(k,k);

end else

disp('请注意:因为RA=RB

方程组有无穷多解.')

end end

第二章 解线性方程组的直接方法的MATLAB程序

例2.2.2 用解上三角形线性方程组的MATLAB程序解方程组

?5x1?x2?2x3?3x4?20,??2x?7x?4x??7,?234. ?6x3?5x4?4,??3x4?6.?解 在MATLAB工作窗口输入程序

>>A=[5 -1 2 3;0 -2 7 -4;0 0 6 5;0 0 0

3];

b=[20; -7; 4;6];

[RA,RB,n,X]=shangsan(A,b)

运行后输出结果

请注意:因为RA=RB=n,所以此方程组有唯一

解.

RA = RB =

4, 4,

n =

4,

X =[2.4 -4.0 -1.0 2.0]’

2.3 高斯(Gauss)消元法和列主元消元法及其MATLAB程序

2.3.1 高斯消元法及其MATLAB程序

用高斯消元法解线性方程组AX?b的MATLAB程序

function [RA,RB,n,X]=gaus(A,b)

B=[A b]; n=length(b); RA=rank(A); RB=rank(B);zhica=RB-RA; if zhica>0,

disp('请注意:因为RA~=RB,所以此方程组无解.') return end

if RA==RB if RA==n

disp('请注意:因为RA=RB=n,所以此方程组有唯一解.') X=zeros(n,1); C=zeros(1,n+1); for p= 1:n-1

for k=p+1:n

m= B(k,p)/ B(p,p);

B(k,p:n+1)= B(k,p:n+1)-m* B(p,p:n+1); end end

b=B(1:n,n+1);A=B(1:n,1:n); X(n)=b(n)/A(n,n); for q=n-1:-1:1

X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)))/A(q,q); end

else

27.

disp('请注意:因为RA=RB

例2.3.2 用高斯消元法和MATLAB程序求解下面的非齐次线性方程组,并且用逆矩阵解方程组的方法验证.

?x1?x2?x3?3x4?1,??x2?x3?x4?0, ???2x1?2x2?4x3?6x4??1,??x1?2x2?4x3?x4??1.解 在MATLAB工作窗口输入程序

>> A=[1 -1 1 -3; 0 -1 -1 1;2 -2 -4 6;1 -2 -4 1]; b=[1;0; -1;-1]; [RA,RB,n,X] =gaus (A,b)

运行后输出结果

请注意:因为RA=RB=n,所以此方程组有唯一解. RA =

X = 4

0 RB =

-0.5000 4

0.5000 n =

0 4

2.3.2 列主元消元法及其MATLAB程序

用列主元消元法解线性方程组AX?b的MATLAB程序

function [RA,RB,n,X]=liezhu(A,b)

B=[A b]; n=length(b); RA=rank(A); RB=rank(B);zhica=RB-RA; if zhica>0,

disp('请注意:因为RA~=RB,所以此方程组无解.') return end

if RA==RB if RA==n

disp('请注意:因为RA=RB=n,所以此方程组有唯一解.') X=zeros(n,1); C=zeros(1,n+1); for p= 1:n-1

[Y,j]=max(abs(B(p:n,p))); C=B(p,:); B(p,:)= B(j+p-1,:); B(j+p-1,:)=C; for k=p+1:n

m= B(k,p)/ B(p,p);

B(k,p:n+1)= B(k,p:n+1)-m* B(p,p:n+1); end end

b=B(1:n,n+1);A=B(1:n,1:n); X(n)=b(n)/A(n,n); for q=n-1:-1:1

X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)))/A(q,q); end

else

disp('请注意:因为RA=RB

例2.3.3 用列主元消元法解线性方程组的MATLAB程序解方程组


第二章 解线性方程组的直接方法 matlab用法范文.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:银行招聘:2015中国农业银行北京市分行校园招聘公告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: