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

原创 2015年11月05日 11:48:53
函数主体部分编程算法  参考 数值分析 第四版 颜庆津 P27
运行结果截图:

%追赶法求解三对角线性方程组,Ax=b,A用一维数组a,c,d存储。
function [L,U,x]=crout(a,c,d,b)%数组a存储三角矩阵A的主对角线元素,c、d存储主对角线上边下边带宽为1的元素
    n=length(a);
    n1=length(c);
    n2=length(d);
    %错误检查
    if n1~=n2%存储矩阵的数组维数错误
        error('MATLAB:Crout:不是三对角矩阵,参数数组中元素个数错误.');
    elseif n~=n1+1
        error('MATLAB:Crout:不是三对角矩阵,参数数组中元素个数错误.');
    end
   
    %初始化
    L=zeros(n);%生成n*n的全零矩阵
    U=zeros(n);
    p=1:n;
    q=1:n-1;
    x=1:n;
    y=1:n;
   
    %追赶法程序主体
    p(1)=a(1);
    for i=1:n-1
        q(i)=c(i)/p(i);
        p(i+1)=a(i+1)-d(i)*q(i);%d的下标改为1到n-1
    end
    %正解y
    y(1)=b(1)/p(1);%用x存储y
    for i=2:n
        y(i)=(b(i)-d(i-1)*y(i-1))/p(i);
    end
    %倒解x
    x(n)=y(n);
    for i=(n-1):-1:1
        x(i)=y(i)-q(i)*x(i+1);
    end
    %L,U矩阵
    for i=1:n
        L(i,i)=p(i);
        U(i,i)=1;
    end
    for i=1:n-1
        L(i+1,i)=d(i);
        U(i,i+1)=q(i);
end %end of function

相关文章推荐

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

clear all;clc; fprintf('输入n:(10,20,30)\n'); n=input(''); n a=zeros(1,n);b=zeros(1,n);c=zeros(1,n...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

追赶法解三对角线性方程组(Matlab)

%追赶法解三对角线性方程组 clear;clc A=[1,2,0,0,0;2,3,1,0,0;   0,-3,4,2,0;0,0,4,7,1;0,0,0,-5,6]; d=[5 9 2 19 ...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Gauss消去法解线性方程组(Matlab)

clear;clc; % Gauss消去法解线性方程组 A=[3 -5 6 4 -2 -3 8;        1 1 -9 15 1 -9 2;     2 -1 7 5 -1 6 11;...

Python中的Numpy入门教程

转自 http://www.jb51.net/article/49397.htm ----------------------------------------------------------...

Introduction of CFD(计算流体力学概述)

计算流体力学概述11.1计算流体力学计算流体力学( Computational Fluid Dynamics,简称 CFD)是以计算机作为模拟手段, 运用一定的计算技术寻求流体力学各种复杂问题的离散...

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

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

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

算法参考数值分析第四版 颜庆津 P23 (选主元的doolittle分解法算法) 运行结果截图:输入矩阵A,b。输出QA=LU的分解矩阵和Ax=b的解。 A=[1 8 2 3;-6 -3 8 1;2...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数值分析 追赶法求解三对角线性方程组 MATLAB实现
举报原因:
原因补充:

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