最优梯度法matlab,最优化牛顿法最速下降法共轭梯度法matlab代码

牛顿法

迭代公式:(1)2()1()[()]()k k k k x x f x f x +-=-??

Matlab 代码:

function [x1,k] =newton(x1,eps)

hs=inline('(x-1)^4+y^2'); 写入函数

ezcontour(hs,[-10 10 -10 10]); 建立坐标系

hold on; 显示图像

syms x y 定义变量

f=(x-1)^4+y^2; 定义函数

grad1=jacobian(f,[x,y]); 求f 的一阶梯度

grad2=jacobian(grad1,[x,y]); 求f 的二阶梯度

k=0; 迭代初始值

while 1 循环

grad1z=subs(subs(grad1,x,x1(1)),y,x1(2)); 给f 一阶梯度赋初值 grad2z=subs(subs(grad2,x,x1(1)),y,x1(2)); 给f 二阶梯度赋初值 x2=x1-inv(grad2z)*(grad1z)'; 核心迭代公式

if norm(x1-x2)break;

else

plot([x1(1),x2(1)],[x1(2),x2(2)],'-r*'); 画图

k=k+1; 迭代继续

x1=x2; 赋值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值