资源简介
该算法是自己编的一个lm算法,是基于MATLAB的程序
代码片段和文件信息
%%%%%%%%%函数等式为%%%%%%%%
syms a b x f;
%%%f=a*cos(b*x) + b*sin(a*x);
%%%%%下面出现J表示的是Jacobian matrix%%%%%%%%
%1,需要拟合的数据%%%%%%%%%%%
data_0=[0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4 4.6 4.8 5.0 5.2 5.4 5.6 5.8 6.0 6.2];
obs_0=[102.225 99.815 -21.585 -35.099 2.523 -38.865 -39.020 89.147 125.249 -63.405 -183.606 -11.287 197.627 98.355 -131.977 -129.887 52.596 101.193 5.412 -20.805 6.549 -40.176 -71.425 57.366 153.032 5.301 -183.830 -84.612 159.602 155.021 -73.318 -146.955];
% 2. LM算法
%对 a b 赋初始值
%a0=50;b0=50;
for a0=91:120
for b0=91:120
% a_est=zeros(3030);
% b_est=zeros(3030);
% a_lm=zeros(3030);
% b_lm=zeros(3030);
%f0=a0*cos(b0*data_0)+b0*sin(a0*data_0);
% 数据个数
Ndata=length(obs_0);
% 参数维数
Nparams=2;
% 迭代最大次数
n_iters=50;
% LM算法的阻尼系数初值
lamda=0.01;
% step1: 变量赋值
updateJ=1;
a_est(a0-90b0-90)=a0;
b_est(a0-90b0-90)=b0;
% step2: 迭代
for it=1:n_iters
if updateJ==1
% 根据当前估计值,计算雅克比矩阵
J=zeros(NdataNparams);
for i=1:length(data_0)
J(i:)=[cos(b_est(a0-90b0-90)*data_0(i))+data_0(i)*b_est(a0-90b0-90)*cos(a_est(a0-90b0-90)*data_0(i)) sin(a_est(a0-90b0-90)*data_0(i))-a_est(a0-90b0-90)*data_0(i)*sin(b_est(a0-90b0-90)*data_0(i))];
end
% 根据当前参数,得到函数值
f_est =a_est(a0-90b0-90)*cos(b_est(a0-90b0-90)*data_0) + b_est(a0-90b0-90)*sin(a_est(a0-90b0-90)*data_0);
% 计算误差
相关资源
- matlab 图像形状识别
- 太阳板光照强度与板倾斜角和方位角
- matlab官方的arrow.m
- Matlab中LMI(线性矩阵不等式)工具箱
- 基于MATLAB的时域采样定理演示系统
- 完全自主研发的粒子群算法来求解约
- Matlab2014_(32and64).txt
- 惯性导航 MATLAB程序
- 基于卡尔曼滤波的目标跟踪matlab经典
- crc32的matlab程序
- 云模型的matlab实现
- matlab实现jpeg压缩过程_MATLAB程序
- Shape Context(matlab)
- lorenz混沌系统 MATLAB仿真
- 《无人驾驶车辆模型预测控制》书中
- 产生4FSK的matlab程序
- 基于MATLAB的SADSSD模板匹配算法
- 支持向量机matlab代码
- DOA与频率联合估计算法的MATLAB仿真
- 三维重建程序 MATLAB语言
- MATLAB代码最小风险贝叶斯决策
- CEEMD代码,matlab亲测可用
- MATLAB实现AM调制
- 太阳能电池matlabm模型
-
LQG主动悬架 maltab simuli
nk实现 - 双门限法语音信号端点检测matlab可实
- 基于遗传神经网络的图像分割MATLAB源
- 用MATLAB生成OFDM信号
- matlab生日祝福音乐动画
- 浮点转定点原理及Matlab例码
评论
共有 条评论