怎么用matlab求二元函数的最大值

怎么用matlab求二元函数的最大值,第1张

f = @(x) -5-1350(1-x(1))^(29)-1350x(1)^3((1-x(2))^(29)-(1-x(1))^(29))-135x(2)^3(1-10(1-x(2)^(29)))

lb = [08; 06]; % x y的下限

ub = [1; 08] ; % x y的上限

x0 = [05;06]; % Starting guess at the solution

[x1,fval1] = fmincon(f,x0,[],[],[],[],lb,ub);

xmax2 = x1(1) % 极值点x的值

ymax2 = x1(2) % 极值点y的值

zmax2 = -fval1 % Z的最大值

计算结果:

xmax2 = 1

ymax2 = 06

zmax2 = -964625

2z=2x^2 2xy 2Y^2-2x-2y=(x^2 2xy y^2) (x^2-2x) (y^2-2y) 2z 2=(x^2 2xy y^2) (x^2-2x 1) (y^2-2y 1)=(x y)^2 (x-1)^2 (y-1)^2 所以,2z 2≥0, 所以,z≥-1;即,z的最小值是-1 因为x^2 y^2≤1, 所以,当x=y=-(根号2)/2时,2z 2取得最大值,此时,z取得最大值, 即当x=y=-(根号2)/2时,函数取得最大值,最大值为3/2 根号2 解毕 不明再问 再说一下最小值的问题 2z 2=(x^2 2xy y^2) (x^2-2x 1) (y^2-2y 1)=(x y)^2 (x-1)^2 (y-1)^2 因为,x^2 y^2≤1,所以x,y不能同时取1,所以最小值应该是当x=y=(根号2)/2时取得; 将x=y=(根号2)/2代入原函数,得:1/2-根号2 最小值是1/2-根号2 这次ok了

在内部可能有驻点:az/ax=2x=0,az/ay=-2y=0,解得x=y=0,此时z=0。

在边界上,y^2=(4-x^2)/4,-2<=x<=2,代入得

z=x^2-1+x^2/4=5x^2/4-1,-2<=x<=2,

此时最小值在x=0达到z=-1,最大值在x=2和-2达到z=4,比较知道

最大值在(2,0)和(-2,0)达到,zmax=4,

最小值在(0,1)和(0,-1)达到,zmin=-1。

多元函数的最优化问题可不是简简单单就能写出来的。

本身MATLAB就不适合用来做优化,建议使用lingo,1stopt等工具。

以下是使用1stopt工具做出来的结果:

代码:

Parameters x=[18,2,2],y=[46,90];

Minimum;

Function (-256926x+57213)(y(0867+0037y+005x)252-17784y);

结果:

迭代数: 25

计算用时(时:分:秒:毫秒): 00:00:00:141

计算中止原因: 达到收敛判定标准

优化算法: 共扼梯度法 + 通用全局优化法

函数表达式: (-256926x+57213)(y(0867+0037y+005x)252-17784y)

目标函数值(最小): 61708801616352

x: 2

y: 046

首先,二元函数是平面上许多点的集合,不是平面上两点

如 y=x+1, 就是一条直线, 这条直线是由众多的个点构成的,这些点的坐标都符合y=x+1

有些二元函数的图象是曲线(如二次函数y=-x²+2x-1), 当横从标x持续变化时,纵坐标y也会相应发生变化,当x到了某一点比如x=1时, 此时纵坐标处在极大值y=0的位置,这是因为无论接下来无论x做增做减的变化,就是x>1或x<1时,都有y<0, 所以称函数y=-x²+2x-1在x=1时取得极大值 这个极大值是函数在某一点的值相对于它临近点函数值的大小而定的

还有一些函数有多个极值(其中有极大值也有极小值), 这是因为函数有多个拐点形成多个波浪形起伏状, 此时这些个极值中相比较也有大小之分,最高波浪上的顶点也是几个极值中y的最大者,此时称此点函数取得最大值, 相反,在最低谷底的极值点, 函数取得最小值

1先求偏导z_x, z_y。

2让z_x=0,z_y=0解出坐标点(x,y)。

3把2中求的坐标点代入表达式z=f(x,y)中。求值。

4计算有界闭区域D边界上z=f(x,y)的最大值。

5比较步骤3和步骤4中的值,取最大的,即为z=f(x,y)的最大值。

求最小值步骤同最大值。只需把上述步骤的最大改为最小即可。

笑年1977用的是配方法,

如果用公式法,则

∵a=-1, b=3, c=0

∴-b/(2a)

=-3/[2×(-1)]

=3/2,

(4ac-b²)/(4a)

=[4×(-1)×0-3²]/[4×(-1)]

=-9/(-4)

=9/4

∴二元函数y=-x^2+3x的顶点坐标是(3/2, 9/4),

由于a=-1, 则二次函数有最大值,最大值是9/4

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12163001.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存