MATLAB二元函数求极值

MATLAB二元函数求极值,第1张

程序如下:

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]) 可以用了,哈哈

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

原文地址:https://54852.com/langs/12162882.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存