云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 解线性方程组的直接解法

解线性方程组的直接解法

  • 62 次阅读
  • 3 次下载
  • 2025/6/1 12:52:36

解线性方程组的直接解法

一、实验目的及要求

关于线性方程组的数值解法一般分为两大类:直接法与迭代法。直接法是在没有舍入误差的情况下,通过有限步运算来求方程组解的方法。通过本次试验的学习,应该掌握各种直接法,如:高斯列主元消去法,LU分解法和平方根法等算法的基本思想和原理,了解它们各自的优缺点及适用范围。 二、相关理论知识

求解线性方程组的直接方法有以下几种: 1、利用左除运算符直接求解

线性方程组为Ax?b,则输入x?A\\b即可。 2、列主元的高斯消元法 程序流程图:

输入系数矩阵A,向量b,输出线性方程组的解x。

根据矩阵的秩判断是否有解,若无解停止;否则,顺序进行; 对于p?1:n?1

选择第p列中最大元,并且交换行; 消元计算;

回代求解。(此部分可以参看课本第150页相关算法) 3、利用矩阵的分解求解线性方程组 (1)LU分解

调用matlab中的函数lu即可,调用格式如下:

[L,U]=lu(A)

注意:L往往不是一个下三角,但是可以经过行的变换化为单位下三

角。

(2)平方根法

调用matlab中的函数chol即可,调用格式如下:

R=chol(A)

输出的是一个上三角矩阵R,使得A?RTR。

三、研究、解答以下问题

问题1、先将矩阵A进行楚列斯基分解,然后解方程组Ax?b(即利用平方根

法求解线性方程组,直接调用函数):

1??12?32?6??????323?7?33????, A??b????2?799?6?16?????1?3?619??7?????解答: 程序:

A=[12 -3 2 1;-3 23 -7 -3;2 -7 99 -6;1 -3 -6 19]; R=chol(A) b=[6 3 -16 7]'; y=inv(R')*b%y=R'\\b x=inv(R)*y%x=R\\y

结果:

R =3.4641 -0.8660 0.5774 0.2887 0 4.7170 -1.3780 -0.5830 0 0 9.8371 -0.7085 0 0 0 4.2514 y =1.7321 0.9540 -1.5945 1.3940 x =0.5463 0.2023 -0.1385 0.3279

问题 2、先将矩阵A进行LU分解,然后解方程组Ax?b(直接调用函数):

3?1?276?4?31?30?7?3A??560?13??2165?78?23765162???5?????89??,b???13???15???81???2??5??2?3? ?51?5??71?解答: 程序:

A=[1/3 -2 76 3/4 5;3 1/sqrt(3) 0 -7 89;56 0 -1 3 13;21 65 -7 8 15;23 76 51 62 81];

b=[2/sqrt(5);-2;3;51;5/sqrt(71)]; [L,U]=lu(A) y=inv(L)*b x=inv(U)*y

结果:

L = 0.0060 -0.0263 1.0000 0 0 0.0536 0.0076 -0.0044 0.1747 1.0000 1.0000 0 0 0 0 0.3750 0.8553 -0.6540 1.0000 0 0.4107 1.0000 0 0 0 U =56.0000 0 -1.0000 3.0000 13.0000 0 76.0000 51.4107 60.7679 75.6607 0 0 77.3589 2.3313 6.9137 0 0 0 -43.5728 -50.0631 0 0 0 0 96.5050 y =3.0000 -0.6388 0.8598 50.9836 -11.0590 x =0.1367 0.9004 0.0526 -1.0384 -0.1146

问题3、利用列主元的高斯消去法,求解下列方程组:??x1?20x2?x3?0.001x4?0??2x1?5x2?30x3?0.1x4?1?5x1?x2?100x 3?10x4?0??2x1?100x2?x3?x4?0解答:

程序:

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('??×¢òa£oRA~=RB£??ùò?′?·?3ì×é?T?a?£') return end

if RA==RB if RA==n

disp('??×¢òa£oòò?aRA=RB=n,?ùò?′?·?3ì×éóD?¨ò??a?£') 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,:); 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('??×¢òa£oòò?aRA=RB?′n£??ùò?′?·?3ìóD?T???à?a?£') end end

键入

A=[1 20 -1 0.001 2 -5 30 -0.1 5 1 -100 -10 2 -100 -1 1]; b=[0;1;0;0];

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

结果:

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

B = 1.0000 20.0000 -1.0000 0.0010 0 0 -45.0000 32.0000 -0.1020 1.0000 5.0000 1.0000 -100.0000 -10.0000 0 2.0000 -100.0000 -1.0000 1.0000 0 B = 1.0000 20.0000 -1.0000 0.0010 0 0 -45.0000 32.0000 -0.1020 1.0000 0 -99.0000 -95.0000 -10.0050 0 2.0000 -100.0000 -1.0000 1.0000 0 B = 1.0000 20.0000 -1.0000 0.0010 0 0 -45.0000 32.0000 -0.1020 1.0000 0 -99.0000 -95.0000 -10.0050 0 0 -140.0000 1.0000 0.9980 0 B = 1.0000 20.0000 -1.0000 0.0010 0 0 -45.0000 32.0000 -0.1020 1.0000 0 0.0000 -165.4000 -9.7806 -2.2000 0 -140.0000 1.0000 0.9980 0

搜索更多关于: 解线性方程组的直接解法 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

解线性方程组的直接解法 一、实验目的及要求 关于线性方程组的数值解法一般分为两大类:直接法与迭代法。直接法是在没有舍入误差的情况下,通过有限步运算来求方程组解的方法。通过本次试验的学习,应该掌握各种直接法,如:高斯列主元消去法,LU分解法和平方根法等算法的基本思想和原理,了解它们各自的优缺点及适用范围。 二、相关理论知识 求解线性方程组的直接方法有以下几种: 1、利用左除运算符直接求解 线性方程组为Ax?b,则输入x?A\\b即可。 2、列主元的高斯消元法 程序流程图: 输入系数矩阵A,向量b,输出线性方程组的解x。 根据矩阵的秩判断是否有解,若无解停止;否则,顺序进行; 对于p?1:n?1 选择第p列中最大元,并且交换行; 消元计算; 回代求解。(此部分可以参看课

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com