如何用matlab求多元函式的極值

2021-08-19 06:01:15 字數 1680 閱讀 5473

1樓:扈多綦祖

on來求解。寫成向量形式,約束a*x<=b,初始值x0附近可以搜出出區域性極小值。輸入:

z=@(x)7.2*sqrt(25+(15-x(1))^2)+(7.2+(107/(20-x(1))))*sqrt((8-x(2))^2+(20-x(1))^2)+7.2*x(2);

a=[1,0;0,1];

b=[15;8];

x0=[1;1];

[x,feval]=fmincon(z,x0,a,b)得到區域性極小值的座標和函式值:x=

15.0000

6.6994

feval

=231.9944

2樓:匿名使用者

當x=pi/3 y=pi/3 z有極大值 3/8*3^(1/2) %定義二元函式

clc;clear;

syms x y;

z=sin(x)*sin(y)*sin(x+y);

ezsurf(x,y,z,[0,pi/2,0,pi/2]);

%求解駐點

dzx=diff(z,x)

dzy=diff(z,y)

[xx,yy]=solve('cos(x)*sin(y)*sin(x+y)+sin(x)*sin(y)*cos(x+y)=0',...

'sin(x)*cos(y)*sin(x+y)+sin(x)*sin(y)*cos(x+y)=0','x','y')

%對於定義域內的駐點求解二階偏導函式

a=diff(z,x,2);

b=diff(diff(z,x),y);

c=diff(z,y,2);

d=a*c-b^2;

%判別極大值點

d1=subs(subs(d,'x',xx(1)),'y',yy(1))

a1=subs(subs(a,'x',xx(1)),'y',yy(1))

d2=subs(subs(d,'x',xx(2)),'y',yy(2))

a2=subs(subs(a,'x',xx(2)),'y',yy(2))

%極大值點和極大值

[xx(2) yy(2)]

jdz=subs(subs(z,'x',xx(2)),'y',yy(2)) 程式執行結果ans =

[ 1/3*pi, 1/3*pi]

jdz =

3/8*3^(1/2)

matlab多元函式條件極值 fmincon 5

3樓:heart浩皛

求極值問題,首先,必須編寫有函式表示式或目標函式的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)

在matlab中,如何求多元函式在一個區域內的極值?

4樓:小恭

函式有表示式麼?如果有表示式的話可以直接求出解析解,如果函式太複雜,那可能得用優化演算法了,粒子群應該可以用

matlab如何用inpolygon函式判斷點是否在園內

如果說是範圍的話應該是滿足與三角形三條邊直線方程有關的不等式組但是如果你有三版點a x1,y1 b x2,y2 c x3,y3 組成三角形權想知道某點 x,y 是否在三角型裡面可以用matlab函式 in on inpolygon x,y,x1 x2 x3 y1 y2 y3 返回的in和on都是邏輯...

如何用matlab求兩個函式的卷積

function convolution t 4 0.001 4 e rectpuls t 0.25,1.5 plot t,e pause h tripuls t 1,2,1 plot t,h pause s 8 0.001 8 f conv e,h plot s,f 卷積後訊號就變長了,如果不想改...

如何用MATLAB畫周期函式,如何用MATLAB畫周期函式?

n0 1 n1 200 取最左邊的一個週期的邊界t0 200 週期for i 0 4 5個週期t n0 0.1 n1 y 0.002 1.0191 t t0 i 表示式 plot t,y hold on n0 n0 t0 左邊界右移一個週期n1 n1 t0 右邊界右移一個週期end 第6個週期 t ...