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求兩個函式的卷積
雙槍老椰子 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對這個函式進行積分
1 雙擊matlab軟體圖示,開啟matlab軟體,如下圖所示。2 使用syms命令,建立七個符號變數a b c d x y z,如下圖所示。3 這裡進行乙個較為複雜的積分舉例,使用符號變數a b x y z,建立多元函式a,其中a 32 a b 5 sin 7 z x y,如下圖所示。4 使用函式...
如何用matlab求逆矩陣,如何用MATLAB求逆矩陣
白鯨 第一步 啟動matlab。第二步 輸入 clear 和 clc 清屏 第三步 根據你的需求設定一個矩陣。圖中示例設定為矩陣a 1 2 3 4 a 可以定義為你需要的任何字母 第四步 用 b inv a b 可以定義為你需要的其他字母,inv 裡的字母為你需要求逆的矩陣。第五步 驗證自己求解的逆...