请教一个分段函数求最大值的问题
mathematica吧
全部回复
仅看楼主
level 7
如题,我想求一个分段函数的最大值。分段函数定义如下:
f[x_, y_, k_] :=
Piecewise[{{y (-x^2 y - (x ((3 - 3 y)/(1 - x y))^(k/(-1 + k)))/(
3 k) + ((3 - 3 y)/(1 - x y))^(1/(-1 + k))),
0 <= x < 1 &&
0 <= y <=
1 && -3 x^2 y - (x ((3 - 3 y)/(1 - x y))^(k/(-1 + k)))/(
3 k) + ((3 - 3 y)/(1 - x y))^(1/(-1 + k)) - (
3 (-1 + x)^2 y ((3 - 3 y)/(1 - x y))^((
2 - k)/(-1 + k)))/((-1 + k) (1 - x y)^3) ==
0}, {y ((k - 1)/k*3^(1/(k - 1)) - y), x == 1 && 0 <= y <= 1}}];
然后我想要求出 k 取不同数值时,函数 f[x, y, k] 在 0<=x<=1, 0<=y<=1 的区域内的最大值,我写的代码如下:
NMaximize[{f[x, y, 2], 0 <= x <= 1, 0 <= y <= 1}, {x, y}]
NMaximize[{f[x, y, 3], 0 <= x <= 1, 0 <= y <= 1}, {x, y}]
NMaximize[{f[x, y, 3/2], 0 <= x <= 1, 0 <= y <= 1}, {x, y}]
NMaximize[{f[x, y, 4/5], 0 <= x <= 1, 0 <= y <= 1}, {x, y}]
但是发现MMA 始终都是输出 f[1, 1, k] 的值或者直接输出最大值为0,这显然都是错的。但是我不知道问题出在哪儿。请吧里高手指教
正确的
代码,谢谢!
运行结果的截图如下:
2022年10月02日 03点10分 1
level 4
写约束条件 两个分开
2022年10月02日 09点10分 2
能说具体点么?怎么分开写阿
2022年10月02日 10点10分
level 9
不说别的,你在mma吧待的时间好长啊,都快赶上吧主了
2022年10月02日 10点10分 4
不是吧 我在这个吧也就3年多
2022年10月02日 10点10分
level 7
自己顶一个,求高手帮忙看看[托腮]
2022年10月03日 07点10分 5
吧务
level 10
你那个函数的图画出来就这个样子
具体原因懒得细看,你先自己Plot3D感受一下
2022年10月03日 12点10分 6
1