您的位置:首页 > 编程语言 > MATLAB

追赶法求解三对角线性方程组的MATLAB程序

2012-07-16 20:42 651 查看
function [M] = after_method(a,b,c,g,tolerance)

%% 追赶法求解三对角矩阵
% a为三对角矩阵左下对角线上的值
% b为三对角矩阵中间对角线上的值
% c为三对角矩阵右上对角线上的值
% g为方程组右端常数项的值
%%
% M为求解的结果
%%
[m,n] = size(g);
if abs(b(1)) < tolerance
disp('除数为0,停止计算');
return;
else
c(1) = c(1) / b(1);
end
%%
for i = 2:n-1
b(i) = b(i) - a(i-1) * c(i-1);
if abs(b(i)) < tolerance
disp('除数为0,停止计算');
return;
else
c(i) = c(i) / b(i);
end
end
b(n)=b(n)-a(n-1)*c(n-1);
%%
g(1) = g(1) / b(1);
for i = 2:n
g(i) = (g(i) - a(i-1) * g(i-1)) / b(i);
end
%%
M(n) = g(n);
for i=n-1:-1:1
M(i) = g(i) - c(i) * M(i+1);
end
end
%%
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MATLAB 追赶法 三对角