Matlab 数值分析 三对角方程组的追赶法
function [X]=Thomas(A,B)
%追赶法也叫Thomas方法
%输入三对角系数矩阵A和列向量B
%输出该方程组的解X
[n,~]=size(A); %获取A矩阵的维度大小n
%P146公式(5.42)
L=eye(n); %A=LU中的L,建立L,顺便给对角线赋值
U=zeros(n); %A=LU中的U,建立U
U(1,1)=A(1,1); %P147公式(5.43)第一行
%P147公式(5.44)
Y=zeros(n,1); %建立列向量Y
Y(1)=B(1); %P147公式(5.44)第一行
for i=2:n
U(i-1,i)=A(i-1,i); %给U中的c1到cn赋值
L(i,i-1)=A(i,i-1)/U(i-1,i-1); %P147公式(5.43)第二行
U(i,i)=A(i,i)-L(i,i-1)*U(i-1,i); %P147公式(5.43)第三行
Y(i)=B(i)-L(i,i-1)*Y(i-1); %P147公式(5.44)第二行
end
%147公式(5.45)
X(n)=Y(n)/U(n,n); %147公式(5.45)第一行
for i=n-1:-1:1
X(i)=(Y(i)-U(i,i+1)*X(i+1))/U(i,i);%147公式(5.45)第二行
end
end
function [X]=Thomas(A,B)
%追赶法也叫Thomas方法
%输入三对角系数矩阵A和列向量B
%输出该方程组的解X
[n,~]=size(A); %获取A矩阵的维度大小n
%P146公式(5.42)
L=eye(n); %A=LU中的L,建立L,顺便给对角线赋值
U=zeros(n); %A=LU中的U,建立U
U(1,1)=A(1,1); %P147公式(5.43)第一行
%P147公式(5.44)
Y=zeros(n,1); %建立列向量Y
Y(1)=B(1); %P147公式(5.44)第一行
for i=2:n
U(i-1,i)=A(i-1,i); %给U中的c1到cn赋值
L(i,i-1)=A(i,i-1)/U(i-1,i-1); %P147公式(5.43)第二行
U(i,i)=A(i,i)-L(i,i-1)*U(i-1,i); %P147公式(5.43)第三行
Y(i)=B(i)-L(i,i-1)*Y(i-1); %P147公式(5.44)第二行
end
%147公式(5.45)
X(n)=Y(n)/U(n,n); %147公式(5.45)第一行
for i=n-1:-1:1
X(i)=(Y(i)-U(i,i+1)*X(i+1))/U(i,i);%147公式(5.45)第二行
end
end
=============================================
2022.11.10补充:
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks ,Hyperworks, Protel,CAXA,OpenWorks LandMark,MATLAB,Enovia,Winchill,TeamCenter,MathCAD,Ansys, Abaqus,ls-dyna, Fluent, MSC,Bentley,License,UG,ug,catia,Dassault Systèmes,AutoDesk,Altair,autocad,PTC,SolidWorks,Ansys,Siemens PLM Software,Paradigm,Mathworks,Borland,AVEVA,ESRI,hP,Solibri,Progman,Leica,Cadence,IBM,SIMULIA,Citrix,Sybase,Schlumberger,MSC Products...