牛顿法(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