matlab 三对角矩阵 追赶法,追赶法求解三对角方程及其算例.doc
追赶法求解三对角方程及其算例
追赶法求解三对角方程组
要求:对于给定的三对角系数矩阵和右端项,可以求解线性代数方程组
追赶法的数学理论
设系数矩阵为三对角矩阵
则方程组Ax=f称为三对角方程组。
设矩阵A非奇异,A有Crout分解A=LU,其中L为下三角矩阵,U为单位上三角矩阵,记
可先依次求出L,U中的元素后,令Ux=y,先求解下三角方程组Ly=f得出y,再求解上三角方程组Ux=y。
事实上,求解三对角方程组的2追赶法将矩阵三角分解的计算与求解两个三角方程组的计算放在一起,使算法更为紧凑。其计算公式为:
(*)
追赶法的算法和流程图
1.预处理
生成方程组的系数及其除数,事实上,按式(*)可交替生成与:
→→→…→→
其计算公式为
2.追的过程
顺序生成方程组右端:
→→…→
据式(*)的计算公式为
3.赶的过程
逆序得出方程组的解:
→→…→
其计算公式按式为
追赶法的Matlab实现
function x=chase(a,b,c,f)
%求解线性方程组Ax=f,其中A是三对角阵
%a是矩阵A的下对角线元素a(1)=0
%b是矩阵A的对角线元素
%c是矩阵A的上对角线元素c(N)=0
%f是方程组的右端向量
N=length(f);
x=zeros(1,N);y=zeros(1,N);
d=zeros(1,N);u= zeros(1,N);
%预处理
d(1)=b(1);
for i=1:N-1
u(i)=c(i)/d(i);
d(i+1)=b(i+1)-a(i+1)*u(i);
end
%追的过程
y(1)=f(1)/d(1);
for i=2:N
y(i)=(f(i)-a(i)*y(i-1))/d(i);
end
%赶的过程
x(N)=y(N);
for i=N-1:-1:1
x(i)=y(i)-u(i)*x(i+1);
end
追赶法的算例实现
算例 用追赶法求解方程组
解答
令a=[0,-1,-1,-3]; b=[2,3,2,5]; c=[-1,-2,-1,0];
f=[6,1,0,1];
在命令窗口运行语句 x=chase(a,b,c,f)
得结果为
x=
5 4 3 2
matlab 三对角矩阵 追赶法,追赶法求解三对角方程及其算例.doc相关推荐
- 【Matlab】矩阵三角分解法求解方程组
%直接三角分解法 function my_LU(a, b)n = length(a);l = zeros(n, n);%初始化u = zeros(n, n);for i=1:nl(i,i) = 1;e ...
- 数学建模常用算法:蚁群算法求解tsp问题+att48算例测试【java实现--详细注释】
代码 蚂蚁类 package com.dam.heuristic.aco.test;import java.util.*;public class Ant {//蚂蚁所走的城市序列private Li ...
- 数据结构与算法-三对角矩阵的压缩公式推导
数据结构与算法-三对角矩阵的压缩公式推导 三对角矩阵 压缩公式推导 (1)考虑a[i,j]处在第2到第n-1行之间: 我们可以看到,从第二行开始,元素的个数都为3个.对于a[i,j]将要存储的数组下标 ...
- 追赶法求解三对角线性方程组的MATLAB程序
function [M] = after_method(a,b,c,g,tolerance) %% 追赶法求解三对角矩阵 % a为三对角矩阵左下对角线上的值 % b为三对角矩阵中间对角线上的值 % c ...
- 追赶法求解三对角方程组
1. 来源和背景 对于一个(主)三对角方程组,我们常用"追赶法"来进行求解. 而三对角方程组常常出现于微分方程的数值求解,例如热传导方程的边值问题 {y′′(x)=f(x,y,y′ ...
- 用追赶法求方程组c语言程序,数值计算——追赶法求解三对角方程组(附代码)...
目录 追赶法基础理论 追赶法c++程序代码 程序运行结果 源码文件下载地址 追赶法基础理论 在数值计算中,对三次样条曲线插值和用差分方法求解常微分方程边值问题时,通常会遇到Ax=d三对角形式的方程组: ...
- Python解线性方程组的直接法(6)————求解三对角方程组的追赶法
求解三对角方程组的追赶法 import numpy as npdef zuiganfa(A, d):n = A.shape[0]l = np.mat(np.zeros(n, dtype=float
- 解三对角线性方程组的追赶法
function [x,y]=after_method() %数组a存储三角矩阵A的主对角线元素,c.d存储主对角线上边下边带宽为1的元素 %追赶法a=[2,2,2,2,2];c=[-1,-1,-1, ...
- G-S迭代求解线性方程,以及三对角矩阵求解
G-S迭代 代码最少可以这么写: def GS(A,b,X,N):X_old = X.copy()n = X.shape[0]for k in range(N):X[0,0] = (b[0,0] - ...
- 三对角线性方程组的追赶法
提出背景: 在一些实际问题中,例如解常微分方程边值问题.求热传导方程及三次样条插值函数等,都会遇到系数矩阵是三对角矩阵的方程组对于这种特殊的方程组,若还用原有的一般方法来求解,势必造成存储和计算的浪费 ...
最新文章
- NBT:Rob Knight-微生物组数据降维新方法
- jQuery之表格变色
- equals方法中变量在前和在后的区别
- 5种改善服务器日志记录的技术
- mysql blob取值_MySQL 数据类型:
- 论文浅尝 | 用于低资源条件下知识图谱补全的关系对抗网络
- JDBC通过Mysql驱动包连接数据库
- 华为S6720系列万兆交换机光模块解决方案
- Canceled future for execute_request message before replies were done The Kernel crashed while execut
- python散点图圆形区域_python – Matplotlib;散点图标记,圆内点
- Springboot毕设项目基于批示的督查督办管理系统c6m0djava+VUE+Mybatis+Maven+Mysql+sprnig)
- SAP MM 固定资产采购订单
- python用户管理系统
- java 随机发牌_java实现扑克牌发牌器
- 2013再见,2014,在路上
- 一头牛,3年后生了一头小牛(第4年开始),之后每年生一头
- Android Adapter适配器
- 设计模式之15 - 解释器模式Interpreter
- 从前端到CTO——程序员的成长之路
- php 屏蔽字符串,PHP屏蔽用户名称的部分字符