求数学高手用matlab写一个题的代码!!!万分感谢
数值分析2X1-X2=1;-X1+2X2-X3=0;-X2+2X3-X4=0;-X3+2X4=0以上四个式子,要求用追赶法,写出代码,求帮助~...
数值分析
2X1-X2=1;-X1+2X2-X3=0;-X2+2X3-X4=0;-X3+2X4=0
以上四个式子,要求用追赶法,写出代码,求帮助~ 展开
2X1-X2=1;-X1+2X2-X3=0;-X2+2X3-X4=0;-X3+2X4=0
以上四个式子,要求用追赶法,写出代码,求帮助~ 展开
1个回答
展开全部
% 说明:
% 追赶法是适用于三对角矩阵的线性方程组求解的方法,并不适用于其他类型矩阵。
% 定义三对角矩阵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.'
% 追赶法是适用于三对角矩阵的线性方程组求解的方法,并不适用于其他类型矩阵。
% 定义三对角矩阵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.'
参考资料: http://zhidao.baidu.com/question/130559960.html
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询