求教Matlab二元函数求解最小值

求教Matlab二元函数求解最小值,第1张

用Matlab求解二元函数的最小值,一般可以用fminsearch()求解。例如

求二元函数f(x,y)=x^2+2y^2在[0;1]点附近的极小值。

fun=@(x)x(1)^2 + 2x(2)^2;

[x,fval,exitflag]=fminsearch(fun,[0;1])

运行结果

解:先对方程求偏导数,即首先将X2看作常数,将X1看作自变量求导数得:

Y'(X1)=693569-225646X1(1)

然后将X1看作常数,将X2看作自变量求导数得:

Y'(X2)=155-2017X2(2)

当Y'(X1)=0时,代入(1)解得:X1=13522;

当Y'(X1)=0时,代入(2)解得:X2=45588

显然两个自变量的数值都在规定范围内,且Y'(X1)的值随X1增大而减小,Y'(X2)的值X2增大而减小,故原方程有最大值。将两值代入原方程得最大值:

Ymax=-3856444+9378440+706614-4689230+353305

=1892685

显然长宽相等,否则可使用更少的材料制造出相同容积的箱盒

记边长为x,高y

则x^2 y=100, y>=5;

材料 f(x,y)=4xy+x^2=400/x+x^2

因x不大于根号20,上述值在x取根号20时 最小 ,此时y等于5

求极值问题,首先,必须编写有函数表达式或目标函数的m文件;其次,还要编写有有约束函数(条件)和非约束函数(条件)的m文件;再次,编写求函数极值的m文件。求解方法: 1、求f1(X)=(x(1)3200+x(2)4045+x(3)5900-x(4)5800的最优解; 2、求f2(X)=(x(1)+x(2)+x(3)-x(4)的最优解; 3、构造统一的目标函数f(X)=(f1(X)-fval1)/fval1)2+(f2(X)-fval2)/fval2)2,利用fmincon()求解。 4、得到f1(X)、f2(X)

你是不是把这段代码写在一个M文件里了?

应该是前两行存为文件funm,后两句

x0=[5,275,6,27,60] %起始点

[x,fval]=fminunc(@fun,x0)

在命令窗口里调用。

从你的表达式看,五个变元之间没有耦合,可以分开来求,很容易可以判断,函数最小值应该发生在x1、x2、x3=inf,x4、x5=-inf处。

1某工厂要制作一个容积为100立方米的无盖长方体容器,问:怎样制作材料最省?

function f=fun0618(x);

f=x(1)x(2)+200/x(1)/x(2)(x(1)+x(2));

>> x0=[5,10];

>> x=fminunc('fun0618',x0)

x =

58480 58480

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

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

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-09-01
下一篇2025-09-01

发表评论

登录后才能评论

评论列表(0条)

    保存