One or more output arguments not assigned during call to 'E:\MATLAB7\work\jacdd.m (jacdd)'.t%用雅可比迭代解线性方程组ax=b%输入:A-系数矩阵;b-常系数向量;X0-初始向量;P-泛数的名称;wucha-近似解误差的精度
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/26 15:58:52
One or more output arguments not assigned during call to 'E:\MATLAB7\work\jacdd.m (jacdd)'.t%用雅可比迭代解线性方程组ax=b%输入:A-系数矩阵;b-常系数向量;X0-初始向量;P-泛数的名称;wucha-近似解误差的精度
One or more output arguments not assigned during call to 'E:\MATLAB7\work\jacdd.m (jacdd)'.t
%用雅可比迭代解线性方程组ax=b
%输入:A-系数矩阵;b-常系数向量;X0-初始向量;P-泛数的名称;wucha-近似解误差的精度;
%max1-迭代的最大次数
%输出:系数矩阵A的a=sum(abs(a(1:n,1:(k-1))+abs(a(k,(k+1):n))))-abs(a(1:n,1:n))
function X=jacdd(A,b,X0,P,wucha,max1)
[n,m]=size(A);
for j=1:m
a(j)=sum(abs(A(:,j)))-2*(abs(A(j,j)));
end
for i=1:n
if a(i)>=0
disp('请注意:系数矩阵A不是对角占优的,此雅可比迭代不一定收敛')
return
end
end
if a(i)
运行以后老是出现“?One or more output arguments not assigned during call to 'E:\MATLAB7\work\jacdd.m (jacdd)'.t”,不懂是怎么回事?请高手指教哈
One or more output arguments not assigned during call to 'E:\MATLAB7\work\jacdd.m (jacdd)'.t%用雅可比迭代解线性方程组ax=b%输入:A-系数矩阵;b-常系数向量;X0-初始向量;P-泛数的名称;wucha-近似解误差的精度
这是因为你下面这段函数return了,函数输出X就没有计算,我建议在if分支里加一句,X=NaN
for i=1:n
if a(i)>=0
disp('请注意:系数矩阵A不是对角占优的,此雅可比迭代不一定收敛')
X=NaN
return
end
end
满意请采纳,谢谢!