数值计算-线性方程组求解(2)-追赶法解三对角矩阵-MATLAB实现
来源:互联网 发布:北京sql培训班 编辑:程序博客网 时间:2024/05/16 12:21
问题描述1
在用差分法求解二阶常微分方程的边值问题、热传导问题及三次样条插值函数的求解问题中,都会遇到下面形式的阶数较高的三对角方程组
其中系数矩阵
此处,可以将
由矩阵乘法原则可解出待定数
由上式可知
并且只要算出了
算法归纳
1∘ 实现A=LU 分解,即按照上述递推算式计算β1,β2,⋯βn ;
2∘ 求解方程组LY=f ,相应的递推算式是{y1=f1/b1,yi=(fi−aiyi−1)/(bi−aiβi−1)(i=2,3,⋯,n)
3∘ 求解方程组UX=Y ,相应的递推算式是{xn=fn,xi=yi−βixi+1(i=n−1,n−2,⋯,2,1)
由于计算
算法实现
% FILENAME: Chase.mfunction X = Chase( A, f )% here A must be a tridiagonal matrix [N, ~] = size(A); a = zeros(N-1); b = zeros(N); c = zeros(N-1); % Step 1 for i = 1 : N for j = 1 : N if i == j b(i) = A(i, i); elseif i == j - 1 c(i) = A(i, j); elseif i == j + 1 a(i) = A(i, j); end end end Beta = zeros(N-1, 1); Beta(1) = c(1)/b(1); for i = 2 : (N-1) Beta(i) = c(i) / (b(i)-a(i) * Beta(i-1)); end % Step 2 Y = zeros(N, 1); Y(1) = f(1) / b(1); for i = 2 : N Y(i) = (f(i) -a(i)*Y(i-1)) / (b(i)-a(i)*Beta(i-1)); end % Step 3 X = zeros(N, 1); X(N) = Y(N); for i = (N-1):-1:1 X(i) = Y(i) - Beta(i) * X(i + 1); endend
% FILENAME: Chase_Run.mA = [2 1 0 0; 1/2 2 1/2 0; 0 1/2 2 1/2; 0 0 1 2];b = [-1/2 0 0 0]';fprintf('A = \n');disp(A);fprintf('b = \n');disp(b);X = Chase(A, b); % here A must be a tridiagonal matrixfprintf('X = \n');disp(X);
测试结果展示
>> Chase_RunA = 2.0000 1.0000 0 0 0.5000 2.0000 0.5000 0 0 0.5000 2.0000 0.5000 0 0 1.0000 2.0000b = -0.5000 0 0 0X = -0.2889 0.0778 -0.0222 0.0111>> A*X % A*X==bans = -0.5000 0.0000 0.0000 0
- 问题描述完全参考于《数值计算方法(第三版)》 ↩
阅读全文
0 0
- 数值计算-线性方程组求解(2)-追赶法解三对角矩阵-MATLAB实现
- 数值分析 追赶法求解三对角线性方程组 MATLAB实现
- 追赶法解三对角线性方程组(Matlab)
- 数值计算-线性方程组求解(1)-LU分解-MATLAB实现
- 数值计算线性方程组求解实现
- 求解三对角方程组的追赶法(Matlab程序)
- 数值计算-线性方程组求解(0)
- 数值分析 jacobi迭代法求解线性方程组 MATLAB程序实现
- 数值分析 Gauss-Seidel迭代法求解线性方程组 MATLAB程序实现
- 求解线性方程组--追赶法
- 追赶法求解三对角方程组
- 追赶法求解三对角方程组
- 矩阵的LU分解求解线性方程组(C++实现)
- 追赶法解三对角阵方程组
- Matlab实现——严格对角占优三对角方程组求解(高斯赛尔德Gauss-Seidel迭代、超松弛)
- 数值计算 && 实验8 && Gauss-Seidel迭代法求解线性方程组
- Matlab对角矩阵
- 采用GAUSS列主消元法求解线性方程组(MATLAB)
- jdk安装步骤
- 彩票
- 实验四 顺序栈
- 文件下载与应用更新系列博客一:基本功能实现
- JavaSE面向对象小测试
- 数值计算-线性方程组求解(2)-追赶法解三对角矩阵-MATLAB实现
- Git 将本地项目推送到Github
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建
- php记录所有post,get,cookie以及IP地址,来路,访问网址
- cs:app学习笔记(1):show-bytes
- Tomcat:Request header is too large
- 使用Glide加载GIF图时遇上的问题
- Android中ANR产生的原因以及定位分析和检测
- Android单元测试