资源简介
程序内是牛顿法,阻尼牛顿法和改进的阻尼牛顿法,采用matlab编程实现
代码片段和文件信息
%阻尼newton法,f为函数x为变量init_val为初始值以列向量给出
function [x_newfval]=damp_newton(fxinit_val)
if(nargin==2)
init_val=rand(length(x)1);
end
iteration=100;
threshold=1e-12;
x_new=init_val;
syms lambda
for i=1:iteration
delta_f=jacobian(f);
hessen_f=jacobian(delta_f);
delta_f=subs(delta_fxx_new);
hessen_f=subs(hessen_fxx_new);
if(norm(delta_f)) break
end
d=inv(hessen_f)*delta_f‘;
f_lambda=subs(fxx_new+lambda*d); %进行一维搜索
[lambda_k~]=newton(f_lambdalambdarand); %寻找最优阻尼系数,若无则为
x_new=x_new+lambda_k*d; %一般的newton法
end
fval=subs(fxx_new);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 719 2015-04-02 15:24 newton\damp_newton.m
文件 136 2015-04-02 15:18 newton\main.asv
文件 314 2015-04-02 15:27 newton\main.m
文件 603 2015-04-02 15:23 newton\modified_newton.asv
文件 643 2015-04-02 15:28 newton\modified_newton.m
文件 459 2015-04-02 15:28 newton\newton.asv
文件 461 2015-04-02 15:06 newton\newton.m
目录 0 2015-04-02 15:13 newton
----------- --------- ---------- ----- ----
3335 8
评论
共有 条评论