作业帮 > 数学 > 作业

matlab求多元函数的最大值

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/09 01:47:07
matlab求多元函数的最大值
y=f(x1,x2,x3,x4),x1可取16个值,x2可取16个值(与x1 16个值相同相同),x3可取16个值(与x1 16个值相同相同),x4可取16个值(与x1 16个值相同相同),怎样用matlab求y值最大时x1,x2,x3,x4的值
这是一个16*16*16*16的4维解空间,用65536个可行解,全部遍历一般就可以了.
用meshgrid可以帮助生成解空间:
x1 = [...]; % x1定义为所有可能取值组成的向量,x2 x3 x4 都是这么定义
[X1,X2,X3,X4] = meshgrid(x1,x2,x3,x4);
再问: 可以详细一点么??贴一下具体的代码吧!谢谢了!!
再答: 我的方法和楼下的回答没有本质区别,只不过是向量化操作了而已,我就不写代码了。 关于“梯度搜索”,请问您指的是梯度下降法吗?因为不知道f是不是一个凸函数,所以不保证梯度下降法可以找到最优解;实际上,65536个可行解这个空间不算大,如果时间要求允许的话,还是蛮力搜索更可靠。
再问: 你的QQ多少?加一下聊下
再答: 我的邮箱 wm19922009[at]qq.com 发邮件吧。
再问: 梯度搜素的步长和我们的给定的16个值不一样呀
再答: 不明白你说的梯度搜索是什么。
再问: 梯度下降法的搜素的点和我们给定的点不一样
再答: 困难在哪? 1 你的意思是解空间变了,我只能理解为你先扩大了解空间,找到最优解之后,再在原解空间里找最接近的解; 2 你既然扩大了解空间,那么扩大成什么你自己是知道的,梯度下降做就好了,您的问题在哪?