用LM方法的matlab求解,matlab中LM算法
syms a b y x real;
f=a*exp(-b*x);
Jsym=jacobian(f,[a b]);
% 拟合用数据。参见《数学试验》,p190,例2
data_1=[0.25 0.5 1 1.5 2 3 4 6 8];
obs_1=[19.21 18.15 15.36 14.10 12.89 9.32 7.45 5.24 3.01];
% 2. LM算法
% 初始猜测s
a0=10; b0=0.5;
y_init = a0*exp(-b0*data_1);
% 数据个数
Ndata=length(obs_1);
% 参数维数
Nparams=2;
% 迭代最大次数
n_iters=50;
% LM算法的阻尼系数初值
lamda=0.01;
% step1: 变量赋值
updateJ=1;
a_est=a0;
b_est=b0;
% step2: 迭代
for it=1:n_iters dg
if updateJ==1
% 根据当前估计值,计算雅克比矩阵
J=zeros(Ndata,Nparams);
for i=1:length(data_1)
J(i,:)=[exp(-b_est*data_1(i)) -a_est*data_1(i)*exp(-b_est*data_1(i))];%
end
% 根据当前参数,得到函数值
y_est = a_est*exp(-b_est*data_1);
% 计算误差
d=obs_1-y_est;
% 计算(拟)海塞矩阵
H=J'*J;
% 若是第一次迭代,计算误差
if it==1
e=dot(d,d);
end
end
% 根据阻尼系数lamda混合得到H矩阵
H_lm=H+(lamda*eye(Nparams,Nparams));
% 计算步长dp,并根据步长计算新的可能的\参数估计值
dp=inv(H_lm)*(J'*d(:));
g = J'*d(:);
a_lm=a_est+dp(1);
b_lm=b_est+dp(2);
% 计算新的可能估计值对应的y和计算残差e
y_est_lm = a_lm*exp(-b_lm*data_1);
d_lm=obs_1-y_est_lm;
e_lm=dot(d_lm,d_lm);
% 根据误差,决定如何更新参数和阻尼系数
if e_lm
lamda=lamda/10;
a_est=a_lm;
b_est=b_lm;
e=e_lm;
disp(e);
updateJ=1;
else
updateJ=0;
lamda=lamda*10;
end
end
%显示优化的结果
a_est
b_est
这是LM算法的例子,我想问一下其中updateJ是什么作用?求讲解一下~~
用LM方法的matlab求解,matlab中LM算法相关推荐
- 使用matlab绘制弧线,MATLAB求解叶型中弧线
MATLAB求解叶型中弧线 MATLAB求解叶型中弧线 对于从事流体力学及相关行业的科研人员来说,中弧线这一名词一定耳熟能详,在日常的科研工作中可能会存在着求解某一特定叶型中弧线的需求.本文就简单介绍 ...
- 用Matlab求解高等数学中的问题(不定积分,定积分,多元微积分,微分方程,级数问题)
用Matlab求解高等数学中的问题 一.求解不定积分 利用matlab符号工具箱中的求积函数int, 可求函数的不定积分,int函数的调用格式如下: int(S) int(S,v) 说明: (1)in ...
- MATLAB求解叶型中弧线
利用等距偏置线求解叶型中弧线 对于从事流体力学及相关行业的科研人员来说,中弧线这一名词一定耳熟能详,在日常的科研工作中可能会存在着求解某一特定叶型中弧线的需求.本文就简单介绍一下通过等距偏置线求解叶型 ...
- simca算法 matlab,SIMCA分类法中主成分分析算法探究.doc
SIMCA分类法中主成分分析算法探究 SIMCA分类法中主成分分析算法探究 摘要:模式识别是研究用计算机模拟人的识别能力,对不同类型形式的数据进行描述.分类.识别等有关的理论和方法.SIMCA方法是基 ...
- 数学建模微分方程导弹问题matlab求解,Matlab建模—导弹追踪问题
数学建模期末复习,撰写博客做总结之用,主要侧重于算例的模型建立与部分代码的实现,其中不足之处望读者多多指正. Matlab微分求解工具箱使用 求数值解 dsolve('方程1','方程2',-,'方程 ...
- 偏微分方程matlab求解,Matlab求解微分方程(2)——偏微分方程的求解
从写完上一篇常微分方程的求解到现在已经很长时间了,这周也一直忙于报到的各种事宜,无暇坐下来写些东西,趁着这个周末,终于完成了这个姊妹篇. 对于偏微分方程的求解,Matlab提供了两种工具.第一种是pd ...
- evalin matlab,求解MATLAB问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这个是代码: syms x y z [deltafd]=xlsread('附件2.xls','FDOA','B2:B290'); [x1]=xlsread ...
- 微分方程求解matlab冲激信号,用Matlab求冲激响应的几种方法
·实验技术与方法· 用 Matlab 求冲激响应的几种方法 贺富堂,应柏青,张 锋,孙 敏 ( 西安交通大学 电工电子教学实验中心,陕西 西安 710049) 摘 要: 用 Matlab 软件求冲激响 ...
- 延迟微分方程(matlab求解)
延迟微分方程数值解(matlab求解) 科学研究中,我们有时会碰到求延迟微分方程数值解的问题,本文探讨了如何用matlab软件求解延迟微分方程. 所谓延迟微分方程,指微分方程中信号不是同时发生的,除了 ...
- LOAM学习-LM方法
LOAM学习-LM方法 前言 一.基本原理 二.计算步骤 结语 前言 在LOAM学习-代码解析(四)特征点运动估计 laserOdometry的3.3中,使用LM方法进行点云配准. 本部分对LM方法进 ...
最新文章
- 输入法图标(语言栏)不见了怎么办
- Linux——关机命令详解
- 淮阴工学院研究生计算机,先鸣论坛第六期/考研加油站(五)|2017届淮阴工学院计算机学院考研最高分王杰和你一起分享他的考研经验...
- Python IDLE启动报错
- java 8 stream中的Spliterator简介
- How to find unit test class by code
- Java 数组转化成集合
- 【转】大话程序猿眼里的高并发
- hadoop实战项目:查找相同字母组成的字谜
- FLOATER:更加灵活的Transformer位置编码!
- 从 Google play 商店直接下载 apk 安装包
- XML解析之 MSXML应用总结 开发篇(上)
- MKV 文件格式解析
- 一段Js代码开启任意网站的匿名在线聊天室
- 有哪些靠谱的淘宝代运营公司?
- WPF界面-手机QQ_DEMO
- Excel制作+导出
- Rancher 磁盘空间不足问题处理
- 谷歌PR权重是什么意思?如何查询网站的谷歌PR权重
- 阿里和云之讯短信发送服务
热门文章
- SpringBoot + iframe 前后端实现简单实用的下载文件、导出excel案例
- 80端口被占用的两种解决方案 - 超详细(已解决)
- 色散方程用matlab编译,急切求助用matlab曲线拟合色散方程 - 程序语言 - 小木虫 - 学术 科研 互动社区...
- 花生壳+FileZilla搭建公网FTP服务器
- DNF私服搭建的利弊关系
- 21天学通C语言-学习笔记(10)
- java如何防止sql注入
- 从PHP门外汉---菜鸟---高手的进阶之路
- 粒子群优化算法python
- 职工信息管理系统C++代码