r语言写内曼最优分配_R中最优化函数optim

本文介绍了如何使用R语言的optim函数进行最优化,以目标函数$(1-x_1)^2+100(x_2-x_1^2)^2$为例,详细讲解了优化过程和不同优化方法,如单纯型法、共轭梯度法、拟牛顿法等,以及参数设置和梯度计算。
摘要由CSDN通过智能技术生成

最优化函数optim

目标函数:

$$f(x_1,x_2)=(1-x_1)^2+100(x_2-x_1^2)^2$$

该函数全局最小值在($x_1=1,x_2=1$)时取到。

下面这种写法是因为有多个自变量函数,传入一个参数x,每个自变量用向量x的分量来表示,从而定义出目标函数。

obj

x1

x2

y

return(y)

}

x1梯度:$-400*x_1*(x_2-x_1^2)-2*(1-x_1)$

x2梯度:$200*(x_2-x_1^2)$

梯度:

gradient

x1

x2

c(x1_gradient = -400*x1*(x2-x1^2)-2*(1-x1),

x2_gradient =200*(x2-x1^2))

}

tip:对于多元函数,需要用向量的形式来输出各个变量上的梯度。

下面以$x_1=0,x_2=3$作为起始点,其他参数采用默认设置,梯度也不输入。(默认时优化算法为单纯型法)

optim(par = c(0,3),fn=obj)

par元素表示最优解取值

value值表示目标函数值

counts代表调用目标函数与梯度函数的数目,可认为是迭代数目

convergence是收敛的代码

0表示成功完成了优化任务

1表示达到了达到了迭代上限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值