Matlab 高斯全主元解线性方程组function [x XA]=GaussXQAllMain(A,b)N=size(A);n=N(1);index_l=0;index_r=0;order=1:n;for i=1:(n-1)me=max(abs(A(i:n,i:n)));for k=i:nfor r=i:nif (abs(A(k,r)==me))index_l=k;index_r=r;break;endendtemp=A(i,1:n);A(i,1:n
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 13:31:26
Matlab 高斯全主元解线性方程组function [x XA]=GaussXQAllMain(A,b)N=size(A);n=N(1);index_l=0;index_r=0;order=1:n;for i=1:(n-1)me=max(abs(A(i:n,i:n)));for k=i:nfor r=i:nif (abs(A(k,r)==me))index_l=k;index_r=r;break;endendtemp=A(i,1:n);A(i,1:n
Matlab 高斯全主元解线性方程组
function [x XA]=GaussXQAllMain(A,b)
N=size(A);
n=N(1);
index_l=0;
index_r=0;
order=1:n;
for i=1:(n-1)
me=max(abs(A(i:n,i:n)));
for k=i:n
for r=i:n
if (abs(A(k,r)==me))
index_l=k;
index_r=r;
break;
end
end
temp=A(i,1:n);
A(i,1:n)=A(index_l,1:n);
A(index_l,1:n)=temp;
bb=b(i);
b(i)=b(index_l);
b(index_l)=bb;
temp=A(1:n,i);
A(1:n,i)=A(1:n,index_r);
A(1:n,index_r)=temp;
pos=order(i);
order(i)=order(index_r);
order(index_r)=pos;
for j=(i+1):n
if (A(i,i)==0)
disp('对角元素为0!');
return;
end
l=A(j,i);
m=A(i,i);
A(j,1:n)=A(j,1:n)-A(i,1:n)*l/m;
b(j)=b(j)-b(i)*l/m;
end
end
x=SolveUpTriangle(A,b);
y=zeros(n,1);
for i=1:n
for j=1:n
if (order(j)==i)
y(i)=x(j);
end
end
end
x=y;
XA=A;
end
运行时候为什么会
[x XA]=GaussXQAllMain(A,b)
Subscript indices must either be real positive integers or logicals.
Error in ==> GaussXQAllMain at 18
A(i,1:n)=A(index_l,1:n);
Matlab 高斯全主元解线性方程组function [x XA]=GaussXQAllMain(A,b)N=size(A);n=N(1);index_l=0;index_r=0;order=1:n;for i=1:(n-1)me=max(abs(A(i:n,i:n)));for k=i:nfor r=i:nif (abs(A(k,r)==me))index_l=k;index_r=r;break;endendtemp=A(i,1:n);A(i,1:n
matlab 数组和矩阵的下标都是从1开始的
index_l=0;
index_r=0;
这种赋值是不行的
”。他