error mldivide Matrix维度必须一致

时间:2012-03-17 21:17:28

标签: matlab matlab-deployment

format long
syms x landa
eps=10^-6; %we bound the error to closer to the exact solution
e=exp(1); % e number e=2.7
f=inline('x+1.0000e-006*exp(80*x)-5*landa','x','landa');% this is f(x,landa) function
ff=subs(x+1.0000e-006*exp(80*x)-5*landa',{x,landa}); 
dif_f=diff(ff); % to get the derivative
f1=inline(dif_f);%this is our f'(x) funciton
landa=linspace(0,1,101);
%landa=0.01;
deltalanda=0.01;

x0=0;
x=x0;
while landa<1
  for k=0:1000
    y=x;
    x=y-(f(x,landa)/f1(x))
    kk=f(x,landa)
    if f(x,landa)<=eps % we continue to find the x if it is found break the iteration 
       break
       landa=landa+deltalanda;
       deltalanda=deltalanda*2;
    end
  end
    deltalanda=deltalanda/2;
    landa=landa+deltalanda;
    landaa=landa;
    ff=subs(f,landa,landaa);
    dif_f=diff(ff);
    f1=inline(dif_f);
    x=0;
end

任何人都可以告诉我为什么我收到此行x=y-(f(x,landa)/f1(x))中的错误。它表示矩阵尺寸误差。

1 个答案:

答案 0 :(得分:0)

出现错误时f(x,landa)f1(x)的维度是多少?您既可以设置断点,也可以告诉调试器停止错误,并检查两个函数的输出大小。

我怀疑你可能想要按元素划分(./)而不是矩阵划分(/)。无论哪种方式,使用断点和/或调试器都可以帮助你。