✅ 操作成功!

二元函数求极值

发布时间:2023-06-04 作者:admin 来源:文学

二元函数求极值

二元函数求极值

-关于理想的名言名句

2023年2月15日发(作者:听证的适用范围及程序)

MATLAB求解⼆元(多元)函数极值

版权声明:本⽂为Cantjie原创⽂章,转载需获得博主许可/cantjie/article/details/70476022

matlab求解⼆元函数极值

依然是机房中的R2010a版本

命令:

1、x=fminsearch(fun,x0)或x=fminunc(fun,x0)求极⼩值点x,初值选为x0

2、[x,fmin]=fminsearch(fun,x0)或[x,fmin]=fminunc(fun,x0)

3、fminsearch采⽤单纯形法,fminunc采⽤⽜顿法

除了fminsearch和fminunc这两种命令外,建⽴函数还可以⽤不同的⽅法:

建⽴函数的⽅法

以p191task2_2为例⼦,采⽤字符串建⽴函数

然⽽此题的问题在于,⽆法找到合适的初值,初值每变动⼀次,fmin也随之变动。

为此,画出函数图像:

补充:contour为画等⾼线命令

contour(x,y,z,n)n为等⾼线条数;

%p191task2_2

%求min(f(x))=(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1)*exp(x(1))

clc,clear

f='(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1)*exp(x(1))';

digits15

x0=[0,0];

[x,fmin]=fminsearch(f,x0);

vpa(x,15)

vpa(fmin,15)

[x,y]=meshgrid(-30:0.3:-10,-30:0.3:-10);

f=(4*x.^2+2*y.^2+4.*x.*y+2.*y+1).*exp(x);

figure(1)

surf(x,y,f)

figure(2)

contour(x,y,f,100)

由图可以⼤致得到,函数在所选区域内全部为正,最⼩值接近0,在另外选择的若⼲区域中,结果类似,看出最⼩值⼤概是0。

以p191task2_3为例⼦,⽤.m⽂件建⽴函数

先创建.m函数

再在同⼀个⽬录下写

结果:

%p192task2_3fun

%fun2_3.m

functionf=fun2_3(x)

f=4*x(1)^2+5*x(1)*x(2)+2*x(2)^2;

%p191task2_3.m

clc,clear

[x,y]=meshgrid(-10:0.3:10,-10:0.3:10);

z=4*x.^2+5*x.*y+2*y.^2;

figure(1)

surf(x,y,z)

figure(2)

contour(x,y,z)

x0=[-3,-3];

%[x,fmin]=fminsearch(@fun2_3,x0)

[x,fmin]=fminunc(@fun2_3,x0)

👁️ 阅读量:0