|
<>MATLAB白痴一个就是我,刚学到几页薄薄的资料,不知道下面这个程序错在哪,请帮帮忙,不要丢我砖头,我也知道问了个很没水准的问题,可是我无助,感激不尽[em34]</P>
<>它老说我这个错误</P>
<>Error: Missing variable or function.</P>
<P>g1=[0,0,0];g2=[0,0,0],d=[0,0,0];
a0=0,b0=1000000000,a1=0,b1=0,p=1/4,t=3,e=0.00001;
x2=[0,0,0];H2=[1,0,0;0,1,0;0,0,1];
function [g]=qiu(x)
while(n~=0)
g2(1)=2*x2(1)-2;g2(2)=8*x2(2)+18;g2(3)=18*x2(3);
n=1;
for i=1:1;3
if(g2(i)~=e)
break;
end
end
if(i<3)
d=(-1)*H2*g2;
else
n=0;
end
while(n==1)
n=2;
wa='(x2(1)+a0*d(1))*(x2(1)+a0*d(1))+4*(x2(2)+a0*d(2))*(x2(2)+a0*d(2))+9*(x2(3)+a0*d(3))*(x2(3)+a0*d(3))-2*(x2(1)+a0*d(1))+18*(x2(2)+a0*d(2))';
f0='x2(1)*x2(1)+4*x2(2)*x2(2)+9*x2(3)*x2(3)-2*x2(1)+18*x2(2)';
wa1='2*x2(1)*d(1)+8*x2(2)*d(2)+18*x2(3)*d(3)-2*d(1)+18*d(2)';
switch (n)
{
case 2:
if (wa<=f0+p*a0*wa1)
n=3;
else {
a1=a0;b1=a0;n=4;
}
case 3:
if (wa>=f0+(1-p)*a0*wa1)
break;
else
{
a1=a0;b1=b0;
if(b1<inf)
n=4;
else
{
a1=t*a0;a0=a1;
n=1;break;
}
}
case 4:
a1=(a1+b1)/2;
a0=a1;
n=1;break;
}
end
if(n~=0)
x1=x2;
x2=x2+a0*d;
g1=g2;
g2(1)=2*x2(1)-2;g2(2)=8*x2(2)+18;g2(3)=18*x2(3);
H1=H2;
H2=H2+(x2-x1)*(x2-x1)'/((x2-x1)'*(g2-g1))-H2*(g2-g1)*(g2-g1)'*H2/((g2-g1)'*H2*(g2-g1));
end
end</P>
<P>
</P> |
|