
程序如下:
clear
clc
[x,y]=meshgrid(2:001:6,4:001:7);
f=x^2+2x-3y+y^2;
[m1,r]=min(f);
[m2,c]=min(m1);
m2即所求的最小值,对应的x和y分别为x(r,c)和y(r,c)。
另外你这个方程未免也太简单了吧。。肉眼都看出结果了
还有标题说的是求极值,而事实上问题要求求最值,不太严谨
最小值:
fun=inline('(-153954x(1)+01630x(2)+01133x(3)+01679x(1)^2-00002x(2)^2-00004x(3)^2-00004x(1)^3)'); 定义最小值函数
x =
57775484271854 0935469699107605 0916904439913408
f =
-405911508501718
EXITFLAG =
1
最大值:
fun=inline('-(-153954x(1)+01630x(2)+01133x(3)+01679x(1)^2-00002x(2)^2-00004x(3)^2-00004x(1)^3)') 定义最大值函数
[x,f,EXITFLAG]=fmincon(fun,[1,1,1],[],[],[],[],[rand(),rand(),rand()],[])
x =
0444703364353194 407499611143861 14162469777931
f =
-344210889820753
EXITFLAG =
1
那是你函数输入格式不正确所致的,不过二元函数matlab中写法比较特别,例如要写非f(x,y)=xx+yy 可以写为:f=@(x)x(1)x(1)+x(2)x(2); fminsearch(f,[-1, 2]) 可以用了,哈哈
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)