MATLAB實現追趕法

2021-09-25 21:27:31 字數 760 閱讀 4230

function [ x ] = chase_method( a, b )

%chase method 追趕法求三對角矩陣的解

% a為三對角矩陣的係數,b為等式右端的常數項,返回值x即為最終的解

% 注:a盡量為方陣,b一定要為列向量

%% 求追趕法所需l及u

t = a;

for i = 2 : size(t,1)

t(i,i-1) = t(i,i-1)/t(i-1,i-1);

t(i,i) = t(i,i) - t(i-1,i) * t(i,i-1);

endl = zeros(size(t));

l(logical(eye(size(t)))) = 1; %對角線賦值1

for i = 2:size(t,1)

for j = i-1:size(t,1)

l(i,j) = t(i,j);

break;

endendu = zeros(size(t));

u(logical(eye(size(t)))) = t(logical(eye(size(t))));

for i = 1:size(t,1)

for j = i+1:size(t,1)

u(i,j) = t(i,j);

break;

endend%% 利用matlab解矩陣方程的遍歷直接求解

y = l\b;

x = u\y;

end

MATLAB 與C語言實現追趕法 (托馬斯演算法)

演算法的原理就是類似於lu分解,然後求解線性方程組。具體可以參考 方法一a 0,1,1,1 b 4,4,4,4 c 1,1,1 x 1,1,1,0 m zeros 3,1 n 4 c 1 c 1 b 1 x 1 x 1 b 1 for i 2 n 1 c i c i b i c i 1 a i en...

追趕法解方程

演算法 詳情見追趕法公式 這個部落格只是用來儲存。package 計算方法大作業 public class zhuiganfa double b double c double b2 儲存貝塔 double y 儲存y double f 獲取所有的貝塔 for i 1 i 3 i else 獲取所有...

數值分析2 2 追趕法

追趕法比較特殊,比前面的演算法實現起來都要簡單,唯一要注意的是gamma的座標從1開始 程式分別用3個陣列存放三條對角線 如下 對於係數矩陣是三對角矩陣的方程組可以用追趕法 include include include using namespace std const int maxn 1000...