求数学高手用matlab写一个题的代码!

问题描述:

求数学高手用matlab写一个题的代码!
数值分析
2X1-X2=1;-X1+2X2-X3=0;-X2+2X3-X4=0;-X3+2X4=0
以上四个式子,要求用追赶法,写出代码,
1个回答 分类:数学 2014-09-23

问题解答:

我来补答
% 说明:
% 追赶法是适用于三对角矩阵的线性方程组求解的方法,并不适用于其他类型矩阵.
% 定义三对角矩阵A的各组成单元.方程为Ax=d
% b为A的对角线元素(1~n),a为-1对角线元素(2~n),c为+1对角线元素(1~n-1).
% A=[2 -1 0 0
% -1 2 -1 0
% 0 -1 2 -1
% 0 0 -1 2]
b = [2 2 2 2];
a = [0 -1 -1 -1];
c = [-1 -1 -1];
d = [1 0 0 0];
n = length(b);
u0 = 0;
y0 = 0;
%“追”的过程
L(1)=b(1)-a(1)*u0;
y(1)=(d(1)-y0*a(1))/L(1);
u(1)=c(1)/L(1);
for i=2:(n-1)
L(i)=b(i)-a(i)*u(i-1);
y(i)=(d(i)-y(i-1)*a(i))/L(i);
u(i)=c(i)/L(i);
end
L(n)=b(n)-a(n)*u(n-1);
y(n)=(d(n)-y(n-1)*a(n))/L(n);
%“赶”的过程
x(n)=y(n);
for i=(n-1):-1:1
x(i)=y(i)-u(i)*x(i+1);
end
x
% 检验:直接用矩阵左除求解
A=diag(b);
for i=1:3,A(i+1,i)=a(i+1);end
for i=1:3,A(i,i+1)=c(i);end
A\d.'
 
 
展开全文阅读
剩余:2000
下一页:请说清为什么