一个追赶法问题~忘高人解答!
function x=zhuiganfa1(A,d)
%首先说明:追赶法是适用于三对角矩阵的线性方程组求解的方法,并不适用于其他类型矩阵。
%定义三对角矩阵A的各组成单元。方程为Ax=d
% b为A的对角线元素(1~n),a为-1对角线元素(1~n-1),c为+1对角线元素(1~n-1)。
% A=[2 -1 0 0
% -1 3 -2 0
% 0 -2 4 -3
% 0 0 -3 5]
a=diag(A,-1); c=diag(A,1); b=diag(A); n=size(A);
%“追”的过程
y(1)=d(1)/b(1); w(1)=c(1)/b(1);
for i=2:(n-1)
y(i)=(d(i)-a(i-1)*y(i-1))/(b(i)-a(i-1)*w(i-1))
w(i)=c(i)/(b(i)-a(i-1)*w(i-1))
end
y(n)=(d(n)-a(n-1)*y(n-1))/(b(n)-a(n-1)*w(n-1));
%“赶”的过程
x(n)=y(n);
for i=(n-1):-1:1
x(i)=y(i)-w(i)*x(i+1);
end
??? Error using ==> minus
Matrix dimensions must agree.
Error in ==> zhuiganfa1 at 18
y(n)=(d(n)-a(n-1)*y(n-1))/(b(n)-a(n-1)*w(n-1));
我用的矩阵的一个元素,怎么会说维数不一样呢?
谢谢大家~~问题解决了:size函数的用法没有理解好!!!谢谢大家的围观。。。。。。