matlab:出现错误Function definitions are not permitted in this co

学习 时间:2026-04-02 06:23:42 阅读:8075
matlab:出现错误Function definitions are not permitted in this context怎么回事?坐标轮换法的matlab程序[转]用坐标轮换法求最优解:y=x1^2+x2^2-x1*x2-10*x1-4*x2+60的最优解,初始点为:[0;0],精度为0.01%总程序x0=[0,0];x=getx(x0);s0=gets(x,x0);s=s0;while s>0.01x0=x;s0=s;x=getx(x0);s=gets(x,x0);endfprintf('最优解为x1=%d,x2=%d,目标函数f=%d',x0(1),x0(2),getf(x0));function x=getx(x0)%--------------------------------------------------%用成功--失败法求一维搜索的最小值%--------------------------------------------------%计算第一个变量x1方向h=3;x1=x0;f0=getf(x0);while abs(h)>1e-5x=[x1(1)+h,x1(2)];f=getf(x);if f<f0h=h*2;x1=x;f0=f; elseh=-h/4; endend%计算第二个变量x2方向h=3;x2=x1;f1=getf(x2);while abs(h)>1e-5x=[x2(1),x2(2)+h];f=getf(x);if f<f1h=h*2;x2=x;f1=f; elseh=-h/4; endend%返回结果x=x2;function s=gets(x,x0)%------------------------------%计算最近最优解和上一个最优解的距离%------------------------------s=sqrt((x(1)-x0(1))^2+(x(2)-x0(2))^2);endfunction f=getf(x);%------------------------------%计算函数值%------------------------------x1=x(1);x2=x(2);f=x1^2+x2^2-x1*x2-10*x1-4*x2+60;end这个第15行出现错误,..

最佳回答

害羞的鼠标

狂野的板栗

2026-04-02 06:23:42

把函数写到另一个文件里就行了~ 再问: 大神,什么意思,本人菜鸟,求手把手教,万分感谢啊。。。 再答: 在文件那里右键新建一个Function。然后把你从15以后的内容全都剪切过去再问: 大神,还是不会啊,能不能帮我直接写个能用的程序啊,可以追加高分。。。谢啦 再答: 解压运行untitled。m就行再问: 用坐标轮换法啊!!!大神加个球球详聊呗~~~我私密你 再答: 用的就是坐标轮换法。我只不过是把你的一个文件分成了好几个文件而已,代码一个字也没动。。

最新回答共有2条回答

  • 想人陪的蜗牛
    回复
    2026-04-02 06:23:42

    把函数写到另一个文件里就行了~ 再问: 大神,什么意思,本人菜鸟,求手把手教,万分感谢啊。。。 再答: 在文件那里右键新建一个Function。然后把你从15以后的内容全都剪切过去再问: 大神,还是不会啊,能不能帮我直接写个能用的程序啊,可以追加高分。。。谢啦 再答: 解压运行untitled。m就行再问: 用坐标轮换法啊!!!大神加个球球详聊呗~~~我私密你 再答: 用的就是坐标轮换法。我只不过是把你的一个文件分成了好几个文件而已,代码一个字也没动。。

上一篇 完型填空The best way of learning English is buy---it and talking

下一篇 自吹自擂的意思是什么?