我编的matlab程序 哪有问题?

来源:百度知道 编辑:UC知道 时间:2024/05/11 12:28:43
不需要全部看 看看哪有很明显的错误
n=100;
x(1)=1;
for k=1:n
{
x1=Log(6-2^(-x(k))-2*cos(x(k)));
x2=Log(6-2^(x1)-2*cos(x1));
x(k+1)=x(k)-(x1-x(k))^2/(x2-2*x1+x(k));
if (abs(x(k+1)-x(k))<=10^(-5)) break;
}
steff=k;
ans1=x(k+1);
z(1)=1;
z(2)=2;
z(3)=3;
for i=1:3
{
y(i)=2^(-z(i))+exp(z(i))+2*cos(z(i))-6;
}
for k=3:n
{
lamga=(z(k)-z(k-1))/(z(k-1)-z(k-2));
deta=1+lamga;
a=y(k-2)*lamga^2-y(k-1)*lamga*deta+y(k)*lamga;
b=y(k-2)*lamga^2-y(k-1)*deta^2+y(k)*(lamga+deta);
c=y(k)*deta;
beta=-2*c/(b+sign(b)*sqrt(b^2-4*a*c));
z(k+1)=z(k)+beta*(z(k)-z(k-1));
y(k+1)=2^(-z(k+1))+exp(z(k+1))+2*cos(z(k+1))-6;
if (abs(z(k+1)-z(k))<=10^(-5)) break;
}
muller=k-2;
ans2=z(k+1);
plot(ans1,steff,ans2,muller);

Log改为log
for循环没有{}
使用格式
for ……
……
end
同样
if……
……
end

你改一下,我的结果
n=100;
x(1)=1;
for k=1:n

x1=log(6-2^(-x(k))-2*cos(x(k)));
x2=log(6-2^(x1)-2*cos(x1));
x(k+1)=x(k)-(x1-x(k))^2/(x2-2*x1+x(k));
if (abs(x(k+1)-x(k))<=10^(-5)) break;
end
end
steff=k;
ans1=x(k+1);
z(1)=1;
z(2)=2;
z(3)=3;
for i=1:3

y(i)=2^(-z(i))+exp(z(i))+2*cos(z(i))-6;
end
for k=3:n

lamga=(z(k)-z(k-1))/(z(k-1)-z(k-2));
deta=1+lamga;
a=y(k-2)*lamga^2-y(k-1)*lamga*deta+y(k)*lamga;
b=y(k-2)*lamga^2-y(k-1)*deta^2+y(k)*(lamga+deta);
c=y(k)*deta;
beta=-2*c/(b+sign(b)*sqrt(b^2-4*a*c));
z(k+1)=z(k)+beta*(z(k)-z(k-1));
y(k+1)=2^(-z(k+1))+exp(z(k+1))+2*cos(z(k+1))-6;
if (abs(z(k+1)-z(k))<=10^(-5)) break;
end