线性方程组求解matlab实现
更新时间:2023-10-01 15:37:01 阅读量: 综合文库 文档下载
3.1 方程组的逆矩阵解法及其MATLAB程序
3.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 例3.1.4 判断下列线性方程组解的情况.如果有唯一解,则用表 3-2方法求解. ?3x1?4x2?5x3?7x4?0,?2x1?3x2?x3?5x4?0,?2x?3x?3x?2x?0,?3x?x?2x?7x?0,1234?1234(1) ? (2) ? ??4x1?11x2?13x3?16x4?0,?4x1?x2?3x3?6x4?0,???7x1?2x2?x3?3x4?0;?x1?2x2?4x3?7x4?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.?2?1 解 在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 (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 (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 3.2 三角形方程组的解法及其MATLAB程序 3.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 例3.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]’ 3.3 高斯(Gauss)消元法和列主元消元法及其MATLAB程序 3.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 disp('请注意:因为RA=RB 例3.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 3.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 例3.3.3 用列主元消元法解线性方程组的MATLAB程序解方程组 ?x2?x3?x4?0,??x?x?x?3x?1,?1234. ??2x1?2x2?4x3?6x4??1,??x1?2x2?4x3?x4??1.解 在MATLAB工作窗口输入程序 >> A=[0 -1 -1 1;1 -1 1 -3;2 -2 -4 6;1 -2 -4 1]; b=[0;1;-1;-1]; [RA,RB,n,X]=liezhu(A,b) 运行后输出结果 请注意:因为RA=RB=n,所以此方程组有唯一解. RA = 4,RB = 4,n = 4,X =[0 -0.5 0.5 0]’ 3.4 LU分解法及其MATLAB程序 3.4.1判断矩阵LU分解的充要条件及其MATLAB程序 判断矩阵A能否进行LU分解的MATLAB程序 function hl=pdLUfj(A) [n n] =size(A); RA=rank(A); if RA~=n disp('请注意:因为A的n阶行列式hl等于零,所以A不能进行LU分解.A的秩 RA如下:'), RA,hl=det(A); return end if RA==n for p=1:n,h(p)=det(A(1:p, 1:p));, end hl=h(1:n); for i=1:n if h(1,i)==0 disp('请注意:因为A的r阶主子式等于零,所以A不能进行LU分解.A 的秩RA和各阶顺序主子式值hl依次如下:'),hl;RA,return end end if h(1,i)~=0 disp('请注意:因为A的各阶主子式都不等于零,所以A能进行LU分解.A 的秩RA和各阶顺序主子式值hl依次如下:') hl;RA end end 例3.4.1 判断下列矩阵能否进行LU分解,并求矩阵的秩. ?123??123??123????. ??(1)?1127?;(2)?127?;(3)?123???456??456??456???????解 (1)在MATLAB工作窗口输入程序 >> A=[1 2 3;1 12 7;4 5 6];hl=pdLUfj(A) 运行后输出结果为 请注意:因为A的各阶主子式都不等于零,所以A能进行LU分解.A的秩RA和各阶 顺序主子式值hl依次如下: RA = 3, hl = 1 10 -48 (2)在MATLAB工作窗口输入程序 >> A=[1 2 3;1 2 7;4 5 6];hl=pdLUfj(A) 运行后输出结果为 请注意:因为A的r阶主子式等于零,所以A不能进行LU分解.A的秩RA和各阶顺 序主子式值hl依次如下: RA = 3, hl =1 0 12 (3)在MATLAB工作窗口输入程序 >> A=[1 2 3;1 2 3;4 5 6];hl=pdLUfj(A) 运行后输出结果为 请注意:因为A的n阶行列式hl等于零,所以A不能进行LU分解.A的秩RA如下 RA = 2, hl = 0 3.4.2 直接LU分解法及其MATLAB程序 将矩阵A进行直接LU分解的MATLAB程序 function hl=zhjLU(A) [n n] =size(A); RA=rank(A); if RA~=n disp('请注意:因为A的n阶行列式hl等于零,所以A不能进行LU分解.A 的秩RA如下:'), RA,hl=det(A); return end if RA==n for p=1:n h(p)=det(A(1:p, 1:p)); end hl=h(1:n); for i=1:n if h(1,i)==0 disp('请注意:因为A的r阶主子式等于零,所以A不能进行LU分解.A 的秩RA和各阶顺序主子式值hl依次如下:'), hl;RA return end end if h(1,i)~=0 disp('请注意:因为A的各阶主子式都不等于零,所以A能进行LU分解.A的 秩RA和各阶顺序主子式值hl依次如下:') for j=1:n U(1,j)=A(1,j); end for k=2:n for i=2:n for j=2:n
正在阅读:
线性方程组求解matlab实现10-01
张家口火车站调研报告12-15
居住证申请书03-31
电商仓库外包管理分享06-04
慧云智慧农业方案及成功案例05-26
浙江省司法鉴定机构09-04
2016年汽车维修行业现状及发展趋势分析11-23
xx区民政局2021年上半年工作总结和下半年工作计划范文08-03
美丽的绿珊瑚作文600字07-10
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 方程组
- 求解
- 线性
- 实现
- matlab
- 镁合金压铸手册
- 如何以实际行动争取早日入党
- 黄厚江《谏太宗十思疏》教学实录及点评
- 2013年人大经济类考研经验
- 代几综合
- 2019高考总复习优化设计1轮文科数学人教A课时规范练52 古典概型(附答案)
- 中考英语专题复习九:定语从句的考点讲解和训练
- 从《光的折射》一节课谈物理探究性教学实施方法
- 助理金融分析师复习题(1)
- 区市政园林局加强干部职工队伍建设实施方案
- 遵义专版2018年秋九年级化学上册第2章身边的化学物质2.1性质活泼的氧气第1课时氧气的性质和用途教案沪教版
- 金华十校2015—2016学年第二学期高二地理(2016年6月14日)
- 2018-2024年中国金属炊具市场深度调查与市场年度调研报告(目录) - 图文
- 十八奤村五年规划
- 国家安全生产方针
- 建筑节能门窗工程技术规范
- 我国合作社的发展历程与趋势
- 9月总结
- 福建安溪海峡茶博园策划
- 内科选择题