2021-01-07 matlab数值分析 线性代数的直接接法 追赶法

matlab数值分析

线性代数的直接接法  追赶法求解线性方程组Ax=b,其中A是三对角方阵


%追赶法求解线性方程组Ax=b,其中A是三对角方阵
function x=tridiagsolver(A,b)
[n,n]=size(A);
for i=1:n
    if(i==1)
        l(i)=A(i,i);
        y(i)=b(i)/l(i);
    else i<n
        l(i)=A(i,i)-A(i,i-1)*u(i-1);          
        y(i)=(b(i)-A(i,i-1)*y(i-1))/l(i);
    end
    if(i<n)
         u(i)=A(i,i+1)/l(i);
    end
end
x(n)=y(n);
for j=n-1:-1:1
    x(j)=y(j)-x(j+1)*u(j);
end

调用程序


clc
clear
A=[2,-1,0,0;-1,3,-2,0;0,-2,4,-3;0,0,-3,5];
b=[6;1;-2;1];
x= tridiagsolver(A,b)

猜你喜欢

转载自blog.csdn.net/qingfengxd1/article/details/112320431