永发信息网

MATLAB雅可比迭代法运行提示??? Error using ==> mldivide Matrix dimensions must agree.求高人指点~

答案:2  悬赏:0  手机版
解决时间 2021-03-16 17:42
  • 提问者网友:蓝莓格格巫
  • 2021-03-16 14:45
clear all;
clc;
A=[4,-1,0,-1,0,0;-1,4,-1,0,-1,0;0,-1,4,0,0,-1;
-1,0,0,4,-1,0;0,-1,0,-1,4,-1;0,0,-1,0,-1,4]; %输入方程组系数矩阵
b=[0,5,0,6,-2,6]; %输入方程组右端列向量
if (any(diag(A))==0)
error('主对角存在零元素,雅可比迭代无法进行,程序终止')
end
eps=10^-5; %给定误差限
N=10; %给定最大允许的迭代次数
D=diag(diag(A)); %主对角线元素
B=inv(D)*(D-A); %雅可比迭代矩阵
f=inv(D)*b; %迭代列向量
k=0; %给迭代次数计算变量赋初值
x0=zeros(size(b)); %迭代初始向量取与b同型的零向量
while 1
x1=B*x0+f; %雅可比迭代
k=k+1; %迭代次数增1
fprintf('第%2d次迭代的近似解为',k);
disp(x1');
if norm(x1-x0,inf) fprintf('满足精度要求的方程组的近似解为\n');
disp(x1');
break
end
if k>N
fprintf('迭代次数超限\n')
break
end
x0=x1; %为下一次迭代准备初值
end

两个inv底下有波浪线
运行提示??? Error using ==> mldivide
Matrix dimensions must agree.
最佳答案
  • 五星知识达人网友:渡鹤影
  • 2021-03-16 15:52
楼主太坑了,一个死循环,害的我好多原来打开的东西都没有保存,只能强制关掉。

x0和b分别转置就行了
全部回答
  • 1楼网友:拜訪者
  • 2021-03-16 17:10
同问。。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯