我正在尝试按照我的老师模型做一个简单的错误位置代码,但无法让它真正起作用。不确定我的 if-else 是否正确,或者它只说什么,Method Failed
但我知道应该有P=3.0571
and的答案i=16
。对编程和 matlab 来说是全新的,因此任何帮助都会受到极大的重视。谢谢
%False Position
%(x^2-4x+4-lnx=0 for 2<=x<=4)
p0=2; p1=4; TOL=10^-6; N=100;
q0=p0^2-4*p0+4-log(p0);
q1=p1^2-4*p1+4-log(p1);
i=2;
while i<=N
p=p1-q1*(p1-p0)/(q1-q0);
if abs(p-p1)<TOL
disp('False Position')
p
i
break
end
i=i+1;
q=p^2-4*p+4-log(p);
if q*q1<0
p0=p1;
q0=q1;
else
p1=p;
q1=q;
end
end
if i>=N disp('Method Failed')
end