无约束多元函数求极值

求多元函数f(x,y)=x3-y3+3x2+3y2-9x的极值

%%
clear
f=@(x)x(1)^3-x(2)^3+3*x(1)^2+3*x(2)^2-9*x(1);

g=@(x)-f(x);
[xmin,ymin]=fminunc(f,rand(2,1))   %求极小值点
[xmax,ymax]=fminsearch(g,rand(2,1)) %求极大值点
>>>>>>>>>>>>结果>>>>>>>>>>>
xmin =
    1.0000
   -0.0000
ymin =
   -5.0000
xmax =

   -3.0000
    2.0000
ymax =

  -31.0000    %这是-f(x)的最小值,即f(x)的最大值为31

下面给出验证f(x)的极小值的过程

%%
x=[-2:0.01:2;-2:0.01:2];
[x,y]=meshgrid(x(1,:),x(2,:));      
%在三维空间坐标系中先构建xy平面,
... x刻画的是x轴的范围-2~2,y刻画的是y轴范围-2~2,形成很多网格坐标
f=x.^3-y.^3+3*(x.^2)+3*(y.^2)-9*x;     %这里注意是 .^
mesh(x,y,f)

>>>>>>>>>>>>>下面我们来找f的最小值>>>>>>>>>>>>
>> min(min(f))
ans =

    -5                      %f的最小值是-5
>> [row,column]=find(f==-5)

row =
   201
                      %最小值在f矩阵的(201,301)位置
column =
   301
   
>> xpois=x(201,301)  
%x行数是可以任意的,因为其值由列的位置决定
xpois =

     1

>> ypois=y(201,301)
%y列数是可以任意的,因为其值由行的位置决定
ypois =

     0

函数 f 的图像
在这里插入图片描述

%%
x=[-2:0.1:2;-2:0.1:2];
[x,y]=meshgrid(x(1,:),x(2,:));      
%在三维空间坐标系中先构建xy平面,
... x刻画的是x轴的范围-2~2,y刻画的是y轴范围-2~2,形成很多网格坐标
f=x.^3-y.^3+3*(x.^2)+3*(y.^2)-9*x;   %这里注意是 .^
minval=min(min(f))
[row,column]=find(f==-5)
mesh(x,y,f)
text(x(row,column),y(row,column),minval,'最小值','Fontsize',20,'color','r');

在这里插入图片描述

L = length(X)
返回 X 中最大数组维度的长度,返回的是一个数。对于向量,长度仅仅是元素数量。
对于具有更多维度的数据,长度为 max(size(X))。空数组的长度为零。

X = rand 返回一个在区间 (0,1) 内均匀分布的随机数.
X = rand(n) 返回一个 n×n 的随机数矩阵。

整数:
X = randi(imax) 返回一个介于 1 和 imax 之间的伪随机整数
X =randi(imax,n) 返回 n×n 矩阵,其中包含从区间 [1,imax] 的均匀离散分布中得到的伪随机整数。
r = randi([-5,5],10,1) 生成一个由样本区间 [-5,5] 中均匀分布的随机整数组成的 10×1 列向量

size(x)
返回一个行向量,其元素是 A 的相应维度的长度。例如,
如果 A 是一个 3×4 矩阵,则 size(A) 返回行向量
[3 4]
如果 A 是一个 1x4 矩阵,则 size(A) 返回行向量
[1 4]

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值