求解三对角方程组的追赶法(Matlab程序)

原创 2012年03月30日 18:43:49

clear all;clc;
fprintf('输入n:(10,20,30)\n');
n=input('');
n
a=zeros(1,n);b=zeros(1,n);c=zeros(1,n-1);
A=zeros(n,n);
for i=1:n
    for j=1:n
        if j==i
            A(i,j)=2;
        elseif (j-i==-1)||(j-i==1)
            A(i,j)=1;
        else
            A(i,j)=0;
        end
    end
end
fprintf('系数矩阵:');A
fprintf('主对角线元素:');b=diag(A)'
fprintf('第1条对角线元素:');c=diag(A,1)'
fprintf('第-1条对角线元素:');a(2:n)=c
d=zeros(1,n);d(1)=1;d(n)=((-1)^(n+1));
fprintf('给定的系数矩阵(转置后):');d
y=zeros(n,1);x=y;
u=zeros(1,n);l=u;%u矩阵U的主对角线元素,l矩阵L的第-1条对角线元素
%---------追过程--------
u(1)=b(1);y(1)=d(1);
for i=2:n
    l(i)=a(i)/u(i-1);
    u(i)=b(i)-l(i)*c(i-1);
    y(i)=d(i)-l(i)*y(i-1);
end
fprintf('中间解向量:');y
fprintf('单位下三角阵L的第-1条对角线元素:');l
fprintf('上三角阵U的主对角线元素:');u  
U=zeros(n);
L=eye(n);
for i=1:n-1
    L(i+1,i)=l(i+1);
end
fprintf('单位下三角阵:');L    %单位下三角阵

for i=1:n-1
    U(i,i)=u(i);
    U(i,i+1)=c(i);
end
U(n,n)=u(n);
fprintf('上三角阵:');U    %上三角阵
%---------赶过程--------
x(n)=y(n)/u(n);
for i=n-1:-1:1
    x(i)=(y(i)-c(i)*x(i+1))/u(i);
end
fprintf('解向量:');x                                                     

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

数值分析 追赶法求解三对角线性方程组 MATLAB实现

函数主体部分编程算法  参考 数值分析 第四版 颜庆津 P27 运行结果截图: %追赶法求解三对角线性方程组,Ax=b,A用一维数组a,c,d存储。 function [L,U,x]=cr...

追赶法求解三对角方程组

在这篇文章里,我们介绍追赶法的基本原理,以及用追赶法求解三对角方程组的算法.

选主元doolittle分解法求解n元线性方程组 MATLAB实现

算法参考数值分析第四版 颜庆津 P23 (选主元的doolittle分解法算法) 运行结果截图:输入矩阵A,b。输出QA=LU的分解矩阵和Ax=b的解。 A=[1 8 2 3;-6 -3 8 ...

Matlab实现——严格对角占优三对角方程组求解(高斯赛尔德Gauss-Seidel迭代、超松弛)

严格对角占优三对角方程组求解 对中等规模的n阶的(n)线性方程组,直接法的准确性和可靠性,所以常采用直接法 对于较高阶的方程组,特别是地于某些偏微分方程离散化后得到的大型稀疏方程组(系统矩 阵绝...

追赶法解三对角方程组

数值分析 Gauss-Seidel迭代法求解线性方程组 MATLAB程序实现

Gauss-Seidel迭代法 参考数值分析第四版 颜庆津著 P39 运行输入 运行结果 函数内容(保存为gauss.m文件,在MATLAB中运行) %Gauss-Seidel迭代法求解线性方程组。迭...

追赶法求解三对角矩阵

  • 2013-06-18 21:12
  • 431B
  • 下载

三对角阵的LU分解和三对角方程组的求解(C语言)

/*三对角阵的LU分解和三对角方程组的求解 -------------A=LU的分解算法------- 参考教材:《数值分析》李乃成,梅立泉,科学出版社     《计算方法教程》第二版 凌永...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)