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))
中的错误。它表示矩阵尺寸误差。
答案 0 :(得分:0)
出现错误时f(x,landa)
和f1(x)
的维度是多少?您既可以设置断点,也可以告诉调试器停止错误,并检查两个函数的输出大小。
我怀疑你可能想要按元素划分(./
)而不是矩阵划分(/
)。无论哪种方式,使用断点和/或调试器都可以帮助你。