求助!!!---MATLAB求解分段函数最小值的问题---谢谢!!!

发布网友 发布时间:2024-10-23 17:20

我来回答

1个回答

热心网友 时间:2024-10-29 07:56

你的错误系统写的很清楚了。函数句柄是不能和另一个实体变量相加的,matlab语法错误。
g=g + @(x) 100*(x(i)-5)^4*(5<=x(i) & x(i)<=-5)+ 0*(-5<=x(i)& x(i)<=5);
就是这个加号出错了。g是个变量 而@(x)是个函数句柄,这两个东西没法相加。
不仅这句错了,下句也错了。同样的毛病。只不过到这里程序就终止了。

这个程序这么做比较好:
分段函数u,你做成一个单独的函数。不用匿名函数。追问可是需要和前面的函数一起,然后求他们的极小值

热心网友 时间:2024-10-29 07:56

你的错误系统写的很清楚了。函数句柄是不能和另一个实体变量相加的,matlab语法错误。
g=g + @(x) 100*(x(i)-5)^4*(5<=x(i) & x(i)<=-5)+ 0*(-5<=x(i)& x(i)<=5);
就是这个加号出错了。g是个变量 而@(x)是个函数句柄,这两个东西没法相加。
不仅这句错了,下句也错了。同样的毛病。只不过到这里程序就终止了。

这个程序这么做比较好:
分段函数u,你做成一个单独的函数。不用匿名函数。追问可是需要和前面的函数一起,然后求他们的极小值

热心网友 时间:2024-10-29 07:57

你的错误系统写的很清楚了。函数句柄是不能和另一个实体变量相加的,matlab语法错误。
g=g + @(x) 100*(x(i)-5)^4*(5<=x(i) & x(i)<=-5)+ 0*(-5<=x(i)& x(i)<=5);
就是这个加号出错了。g是个变量 而@(x)是个函数句柄,这两个东西没法相加。
不仅这句错了,下句也错了。同样的毛病。只不过到这里程序就终止了。

这个程序这么做比较好:
分段函数u,你做成一个单独的函数。不用匿名函数。追问可是需要和前面的函数一起,然后求他们的极小值

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com