(追赶法求三对角矩阵、LU分解)

应用场景

数模中的微分方程问题中偶尔回涉及到使用向后差分法求解问题,不论是六点法向后差分还是四点法向后差分都会涉及到求解三对角矩阵的情况。

以四点法向后差分为例

四点法得到的代数矩阵为三对角线性方程组AU=b,一般可以用matlab求逆命令求解U,但因本题中系数矩阵规模较大,且主对角线和两个次对角线之外,其余元素均为0,因而求逆解方程组会导致浪费内存、程序运行缓慢。因此本文利用追赶法求解三对角线性方程组。三对角线性方程组的追赶法求解过程如下图。

计算过程

三对角矩阵的形式如下:

需要将三对角阵分解成如下的形式:

求解Ax=d等价于求解Ly=d和Ux=y.

因而经过推导得到解三对角线性方程组的追赶法公式.

matlab代码如下

% x为待求系数向量,d为右端已知常量向量,长度为n
% a为-1对角向量,b为对角向量,c为1对角向量,ac长度为n-1,b长度为n
function x=machase(d,n,a,b,c)
y=zeros(n,1);
x=zeros(n,1);
alpha=ones(n,1);
beta=ones(n-1,1);
alpha(1)=b(1);beta(1)=c(1)/b(1);
for i=2:n-1alpha(i)=b(i)-a(i-1)*beta(i-1);beta(i)=c(i)/alpha(i);
end
alpha(n)=b(n)-a(n-1)*beta(n-1);
y(1)=d(1)/b(1);
for i=2:ny(i)=(d(i)-a(i-1)*y(i-1))/alpha(i);
end
x(n)=y(n);
for i=(n-1):-1:1 x(i)=y(i)-beta(i)*x(i+1);
end
end

测试命令

a=-1*ones(4,1);
b=2*ones(5,1);
d=[1 0 0 0 0];
machase(d,5,a,b,a)

结果

    0.83330.66670.50000.33330.1667

(追赶法求三对角矩阵、LU分解)相关推荐

  1. 怎样用matlab做矩阵的LU分解,矩阵LU分解程序实现(Matlab)

    n=4;%确定需要LU分解的矩阵维数 %A=zeros(n,n); L=eye(n,n);P=eye(n,n);U=zeros(n,n);%初始化矩阵 tempU=zeros(1,n);tempP=z ...

  2. Gauss 消元法矩阵LU分解

    (13)Gauss 消元法矩阵LU分解

  3. c语言10 u0010求余怎么求,矩阵LU分解求逆详细分析与C语言实现.docx

    题目要求 给定一个多维矩阵,实现该矩阵的求逆运算. 1.理论分析 矩阵的一种有效而广泛应用的分解方法是矩阵的LU三角分解,将 一个n阶矩阵A分解为一个下三角矩阵L和一个上三角矩阵U的乘积.所 以首先对 ...

  4. 矩阵LU分解分块算法实现

    本文主要描述实现LU分解算法过程中遇到的问题及解决方案,并给出了全部源代码. 1. 什么是LU分解? 矩阵的LU分解源于线性方程组的高斯消元过程.对于一个含有N个变量的N个线性方程组,总可以用高斯消去 ...

  5. c# lu分解的代码_矩阵LU分解分块算法实现

    本文主要描述实现LU分解算法过程中遇到的问题及解决方案,并给出了全部源代码. 1. 什么是LU分解? 矩阵的LU分解源于线性方程组的高斯消元过程.对于一个含有N个变量的N个线性方程组,总可以用高斯消去 ...

  6. 7.8 更多矩阵LU分解相关话题-对角矩阵 置换矩阵

    矩阵的LU分解 ==> A = 单位下三角矩阵 * 上三角矩阵 将矩阵的LU分解用于非方阵 ==> 在另一个情况下 ,如果A是6x4的矩阵==> 处理方法一致. 举例 ==> ...

  7. 高斯消元法对矩阵LU分解的影响

    ** 欢迎大家到Matlab与线性代数专栏中查看相关图文. ** 本文详细介绍了Matlab进行lu分解操作时l不为三角形的原理.

  8. 用MATLAB实现plu分解,编制计算给定矩阵 A 的 LU 分解和 PLU 分解的通用程序

    用VB编写一个程序,计算出给定的10*10矩阵(存放在二维数组A中)每行元素的最大值和每列元素的最小值 ModuleModule1SubMain()DimA(,)AsInteger={{1,2,3,4 ...

  9. 对矩阵分解的粗浅理解之LU分解

    ** 欢迎大家到Matlab与线性代数专栏中查看相关图文. ** 本图文从行列式计算出发引出了对矩阵LU分解的粗浅理解,希望对正在学习线性代数的同学有所帮助.

  10. Matlab与线性代数--矩阵的LU分解

    本图文详细介绍了Matlab中有关矩阵LU分解的操作.

最新文章

  1. 【转】svn的安装及与redmine的整合
  2. mysql数据库未启动失败_mysql数据库启动失败
  3. 阿里巴巴对Java编程【命名风格】的规约
  4. jboss eap_HawtIO在JBoss EAP上(第二部分)
  5. python 漂亮界面demo_在这个什么都看脸的时代,如何用 GUI 提高 python 程序的颜值?...
  6. ROS中阶笔记(七):机器人SLAM与自主导航—SLAM功能包的使用
  7. 如何在Pr中应用混合模式合成影片中的剪辑?
  8. 怎么调用html调色板,JS实现仿PS的调色板效果完整实例
  9. Xcode 9: An error occurred uploading to the iTunes Store. iTunes Store Operation Failed
  10. 2、RH850外设时钟选择及配置
  11. web安全与渗透测试培训全套视频
  12. Word2016任意页开始设置页码
  13. 我国第一部机载脉冲火控雷达研制历程
  14. 没有文件夹则创建文件夹
  15. cas4.2登出后,跳转指定链接
  16. android数据线投屏电视机,手机投屏电视的几种方式点评
  17. uniapp引入字体文件
  18. 计算机专业大创要求,“大创项目”推动计算机专业学生创新实践能力的提高
  19. 来一次云台山,感受春天的温柔、夏日的魅力
  20. 网易云音乐与阿里音乐牵手!后版权时代,在线音乐拼什么?

热门文章

  1. 爬虫使用分享:风云2号卫星气象照片
  2. 计算机局域网硬件维护与网络安全的分析
  3. macOS 10.15 Catalina 获取App Store下载的安装包
  4. [领域]javascript hacking guide 第5部分
  5. android绘制矢量图地图,Android 高级 UI 进阶之路 (七) SVG 基础使用 + 绘制中国地图...
  6. 七夕王者服务器维护,七夕主题华裳上架、职业平衡来了!8月7日服务器例行维护公告...
  7. Ubuntu 18.04 安装 NVIDIA 显卡驱动超详细步骤
  8. [Linux]关于Transmission下载服务器的搭建与配置
  9. 百度日语输入法快捷键(baidu type)
  10. 面向图形可扩展矢量图形规范:SVG