该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
给定一个n阶线性方程组Ax=b,其中A的元素aij(i,j,=1,…,n)与阶数为:aij=(i+j-1)2, n=3,4,5,…,9;
这是我所编的程序
n=input('请输入系数矩阵的维数n')
for i=1:1:n
for j=1:1:n
A(i,j)=(i+j-1)^2;
end
end
A
b=sum(A,2)
fprintf('增广矩阵为\n')
disp([A,b])
for k=1:n-1
c=A(k,k);
p=k;
for u=k+1:n
if abs©
c=A(u,k);
p=u;
end
end
if c==0
error('第%1d列主元为零,高斯列主元消去法无法进行\n',k)
end
if p~=k
t=b(k);
b(k)=b(p);
b(p)=t;
for v=1:n
t=A(k,v);
A(k,v)=A(p,v);
A(p,v)=t;
end
end
for u=k+1:n
l(u,k)=A(u,k)/A(k,k);
for v=k:n
A(u,v)=A(u,v)-l(u,k)*A(k,v);
end
b(u)=b(u)-l(u,k)*b(k);
end
fprintf('第%1d次消元后的增广矩阵为\n',k)
disp([A,b])
end
if A(n,n)==0
if b(n)~=0
fprintf('系数矩阵与增广矩阵不等秩,方程组无解\n')
else
fprintf('方程组的解不唯一\n')
end
break
end
x(n)=b(n)/A(n,n);
fprintf('线性方程组的解为\n')
fprintf('x(%1d)=%10.5f\n',n,x(n))
for u=n-1:-1:1
x(u)=b(u);
for v=u+1:n
x(u)=x(u)-A(u,v)*x(v);
end
x(u)=x(u)/A(u,u);
fprintf('x(%1d)=%10.5f\n',u,x(u))
end
运行的时候总是这样提示 Error: A BREAK statement appeared outside of a loop. Use RETURN instead.
请问到底该怎样中断呢?