利用Newton Raphson、最陡梯度法求解函数最小值

牛顿法Newton'smethod)又称为牛顿-拉弗森方法Newton-Raphson method),它是一种在实数域和复数域上近似求解方程的方法,迭代的示意图如下:



求解问题:

1.无约束函数f的0点。

2.无约束函数f的最小值,最大值。



2. 利用Newton Raphson、最陡梯度法求解 f(x,y) = (1- x)^2 + 100*(y - x^2)^2 的最小值

(一)利用Newton Raphson方法求解

MATLAB代码如下:

%利用 Newton Raphson 方法求解 f(x,y) = (1 - x)^2 + 100*(y - x^2)^2 的最小值

clc
clear all

a = 0;
b = 0;
u = [a b]';
m = -2;
n = 0;
while abs(m) > 1.0e-5 || abs(n) >1.0e-5
    A = [m    n]';
    B = [2 + 400*(3*a^2 - b)     -400*a; -400*a     200];
    u = u - B\A;
    a = u(1);
    b = u(2);
    m = 2*(a - 1) + 400*(a^3 - a*b) ;
    n = 200*(b - a^2);
end

%最终求得的最小值点
u

(二)利用最陡梯度法求解

MATLAB代码如下:

%利用 最陡梯度法 求解 f(x,y) = (1 - x)^2 + 100*(y - x^2)^2 的最小值

clc
clear all

a = 0;
b = 0;
u = [a   b]';

%此处的h不能取太大,否则震荡发散
h = 0.001;

m = -2;
n = 0;
while  abs(m) > 1.0e-5 || abs(n) > 1.0e-5
    A = [m      n]';
    u = u - h*A;
    a = u(1);
    b = u(2);
    m = 2*(a - 1) + 400*(a^3 - a*b);
    n = 200*(b - a^2);
end

%最终求得的最小值点
u


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值