MATLAB使用高斯消元法计算方程组的解

news/2024/10/11 4:29:08/
function X = uptrbk(A,B)
% A,B是系数矩阵和列向量
% 求方阵A 含多少行(列) X是N*1列向量解
[~, N] = size(A);
X = zeros(N,1);
% C一行,N+1列
C = zeros(1,N+1);
% 增广矩阵Aug
Aug = [A,B];
%循环从第一列到倒数第二列
for p=1:N-1[~,j] = max(abs(Aug(p:N,p)));%返回每一列中的绝对值最大的数的索引j,Y是最大值C = Aug(p,:);%把p行所有元素存储到C中,1,2,3,...,N-1.%进行交换Aug(p,:)=Aug(j+(p-1),:); %Aug第p行改为j+p-1行,(相对索引).Aug(j+(p-1),:)=C;if Aug(p,p) == 0   %如果交换后,Aii为0'A was singular. No unique solution';breakend%交换后 进行计算for k = p+1:Nm = Aug(k,p)/Aug(p,p);Aug(k,p:N+1) = Aug(k,p:N+1)-m*Aug(p,p:N+1);end
end
% 通过回代计算方程的解for i = N:-1:1  X(i) = (Aug(i, N+1) - Aug(i, i+1:N) * X(i+1:N)) / Aug(i, i);  end  
end  % function X = uptrbk(A, B)  
%     % uptrbk Solves the linear equation system A*X = B using back substitution  
%     % A: Upper triangular matrix  
%     % B: Column vector  
%     
%     % 获取矩阵 A 的维度  
%     [N, ~] = size(A);  
%     % 初始化解向量 X  
%     X = zeros(N, 1);  
%     % 初始化增广矩阵 Aug  
%     Aug = [A, B];  
%     
%     % 高斯消元过程  
%     for p = 1:N-1  
%         % 寻找列 p 从当前行到最后一行的最大值  
%         [Y, j] = max(abs(Aug(p:N, p)));  
%         
%         % 交换当前行与最大值所在行  
%         if j+p-1 ~= p  
%             Aug([p, j+p-1], :) = Aug([j+p-1, p], :);  % 进行行交换  
%         end  
%         
%         % 检查非零主元  
%         if Aug(p, p) == 0  
%             error('Matrix A is singular. No unique solution exists.');  
%         end  
%         
%         % 消元过程  
%         for k = p+1:N  
%             m = Aug(k, p) / Aug(p, p);  
%             Aug(k, p:N+1) = Aug(k, p:N+1) - m * Aug(p, p:N+1);  
%         end  
%     end  
%     
%     % 回代过程,解出 X  
%     X(N) = Aug(N, N+1) / Aug(N, N);  
%     for i = N-1:-1:1  
%         X(i) = (Aug(i, N+1) - Aug(i, i+1:N) * X(i+1:N)) / Aug(i, i);  
%     end  
% end

其中,A是系数矩阵,B是右边列向量.


http://www.ppmy.cn/news/1537264.html

相关文章

如何免费为域名申请一个企业邮箱

背景 做SEO的是有老是会有一些网站来做验证你的所有权,这个时候,如果你域名对应的企业邮箱就会很方便。zoho为了引导付费,有很多多余的步骤引导,反倒是让不付费的用户有些迷茫,所以会写这个教程,按照教程走…

使用纯CSS和JavaScript来实现一个转盘抽奖效果

使用纯CSS和JavaScript来实现一个转盘抽奖效果,抽到机率相同 <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" />&…

手游和应用出海资讯:字节跳动《Lemon8》在美下载量飙升;美团海外版《Keeta》进军沙特市场

NetMarvel帮助游戏和应用广告主洞察全球市场、获取行业信息&#xff0c;以下为10月第一周资讯&#xff1a; ● OpenAI Sora负责人加盟 Google DeepMind ● 字节跳动《Lemon8》登顶美国App Store排行榜 ● 消息称腾讯与Guillemot家族考虑收购育碧 ● OpenAI官宣获66亿美元融资 ●…

宠物空气净化器哪个牌子吸毛好?希喂、IAM、352真实测评

前段时间忙活了个大工程——热门宠物空气净化器大横评&#xff0c;通过多方位的测试&#xff0c;帮助不少朋友解决了宠物空气净化器的选购难题。 但我们还不局限于此&#xff0c;在从事家电行业这些年间&#xff0c;我们还花费大价钱购置一堆产品实测体验过各类大小家电产品&a…

C++语言学习要点

C11和C20是C语言发展史上的两个重要里程碑&#xff0c;它们引入了许多新特性&#xff0c;极大地丰富了C的功能和表达能力。 C11 的一些值得关注的特性包括&#xff1a; 自动类型推导&#xff08;Auto&#xff09;&#xff1a;允许编译器自动推导变量的类型。decltype&#xf…

光伏开发:一充一放和两充两放是什么意思?

一充一放 一充一放是指储能设备在一次充电过程中充满电&#xff0c;并在一次放电过程中将电能全部释放。这种模式的原理相对简单&#xff0c;充电时电能转化为化学能或其他形式的能量储存&#xff0c;放电时则将这些能量转化回电能供应给负载。一充一放模式适用于对储能设备充…

喜讯!迈威通信TSN产品通过“时间敏感网络(TSN)产业链名录计划”评测,各项指标名列前茅

TSN技术&#xff0c;作为推动企业网络化与智能化转型的关键力量&#xff0c;已成为工业网络迈向下一代演进的共识方向&#xff0c;正加速重构工业网络的技术架构与产业生态。为响应这一趋势&#xff0c;工业互联网产业联盟携手中国信息通信研究院及50余家产学研用单位&#xff…

王道408考研数据结构-图-第六章

6.1 图的基本概念 6.1.1 图的定义 图G由顶点集V和边集 E组成&#xff0c;记为G(V,E),其中 V(G)表示图G中顶点的有限非空集&#xff1b;E(G)表示图G中顶点之间的关系(边)集合。若V{v?,v?,…,vn},则用|M表示图G中顶第6章 点的个数&#xff0c;E{(u,v) | uεV,vεV},用|E|表示图…