Matlab数值分析:三对角方程组的追赶法‌

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补充:

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空