随机梯度辨识方法

Matlab
利用随机梯度方法进行辨识的举例,可以结合不同情况进行优化处理(例如需要复现文献中结果)

Matlab代码如下:

clc;clear;close; format short g;
M = 'Stochastic gradient method';
sigma = 0.5;    % Noise standard deviation
FF = 0.88;      % Forgetting factor
PlotLength = 3000; length1 = PlotLength + 200;  
na = 4; nb = 4; n = na + nb;    % order
alp = [1, 0, -0.96, 0, 0.64]; bet = [0.412, 0.9682, 0.824, 0.2472]; d = [1];
par0 = [alp(2 : na + 1), bet(1 : nb)]';
p0 = 1e6; P = eye(n) * p0; r = 1;   % initial value
par1 = ones(n, 1) * 1e-6;sy = f_integral(alp, bet); sv = f_integral(alp, d); % the complex integral 
delta_ns = sqrt(sv / sy) * 100 * sigma; % the noise to signal ratio
[sy, sv, delta_ns];u = normrnd(0, 1, length1, 1);
v = normrnd(0, sigma, length1, 1);
Gz = tf(bet, alp, 1);
Gn = tf(d, alp, 1);
y = lsim(Gz, u) + lsim(Gn, v);%% Stochastic gradient
jj = 0; j1 = 0;
for k = 20 : length1jj = jj + 1;varphi = [-y(k - 1: -1: k - na); u(k - 1: -1: k - nb)]; r = FF * r + varphi' * varphi;  % SGpar1 = par1 + varphi / r * (y(k) - varphi' * par1); %L = P * varphi / (FF + varphi' * P *varphi);   % RLS%P = P - L * varphi' * P;%par1 = par1 + L * (y(k) - varphi' * par1);delta = norm(par1 - par0) / norm(par0);sg(jj, :) = [jj, par1', delta];if (jj == 100) | (jj == 200) | (jj == 500) | mod(jj, 1000) == 0j1 = j1 + 1;sg_100(j1, :) = [jj, par1', delta * 100];endif jj == PlotLengthbreakend
end
sg_100(j1 + 1, :) = [0, par0', 0];%fprintf('\n', 't & \t a_1 & \t a_2 & \t b_1 & \t b_2 & \delta');
fprintf('%6d & %6.3f & %6.3f & %6.3f & %6.3f & %6.3f & %6.3f & %6.3f & %6.3f & %6.3f \\\\ \n', sg_100');
figure(1)
jk = (19: 10: PlotLength - 1)';
plot(sg(jk, 1), sg(jk, n + 2));xlabel('\it       k'); ylabel('{\it         \delta}');

仿真结果图:
在这里插入图片描述
随着迭代次数的增加,可见误差越来越小,命令行窗口输出如下:
在这里插入图片描述
尝试修改参数加深理解~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/580322.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

asp.net core 教程

asp.net core 教程 写在前面新建项目Get和PostGETPOST MVC-模型控制视图如何通俗理解MVCMVC架构---文件夹详解Connected ServicesPropertieswwwroot依赖项ControllersModelsViews 代码实例 API模型(前后端分离)前端代码后端代码 文件配置优先级优先级顺序…

YOLOv5改进 | 主干篇 | 利用MobileNetV3替换Backbone(轻量化网络结构)

一、本文介绍 本文给大家带来的改进机制是MobileNetV3,其主要改进思想集中在结合硬件感知的网络架构搜索(NAS)和NetAdapt算法,以优化移动设备CPU上的性能。它采用了新颖的架构设计,包括反转残差结构和线性瓶颈层&…

dev express 15.2图表绘制性能问题(dotnet绘图表)

dev express 15.2 绘制曲线 前端代码 <dxc:ChartControl Grid.Row"1"><dxc:XYDiagram2D EnableAxisXNavigation"True"><dxc:LineSeries2D x:Name"series" CrosshairLabelPattern"{}{A} : {V:F2}"/></dxc:XYDi…

嵌入式-stm32-SR04超声波测距介绍及实战

一&#xff1a;超声波传感器介绍 1.1、SR04超声波测距硬件模块 1.2、SR04的四个IO口 vcc:提供电源5V gnd:接地 Trig:是**发送**声波信号的触发器 Echo:是**接收**回波信号的引脚 当TRIG信号被触发时&#xff0c;传感器会发送一定频率的声波信号&#xff0c;该信号被反射后&am…

Android中_Service生命周期和AMS流程的创建

Service生命周期可以结合Android生命周期分析。 Service生命周期可以从两种启动Service的模式开始讲起&#xff0c;分别是context.startService()和context.bindService()。 Service的生命周期与启动和绑定状态相关。当调用startService()方法启动服务时&#xff0c;会执行onS…

【DeepLearning】Deep Residual Learning for Image Recognition恺神大作学习

[TOC] Deep Residual Learning for Image Recognition 论文 1. 文章主要想解决什么问题&#xff0c;用了什么方法 深度神经网络在训练过程中的3个关键问题&#xff1a; 梯度消失/爆炸问题&#xff1a;随着网络层数的增加&#xff0c;梯度在反向传播过程中可能会变得非常小&a…

Hooked协议掀起WEB3新浪潮

随着区块链技术和加密货币的兴起&#xff0c;币圈已经成为全球范围内的一个热门领域。在这个充满机遇与挑战的行业中&#xff0c;Hook机制正逐渐成为一种重要的技术手段&#xff0c;为投资者、开发者以及相关机构提供了更多的选择和可能性。本文将详细介绍币圈中的Hook机制&…

腾讯云4核8G服务器三年优惠价格表

腾讯云轻量服务器4核8G12M有三年优惠价吗&#xff1f;有&#xff0c;但是不怎么优势&#xff0c;相对于云轻量2核2G4M带宽三年价格是540元、2核4G5M带宽3年优惠价756元&#xff0c;4核8G12M轻量应用服务器三年价格是5292元&#xff0c;怎么样&#xff1f;还想买吗&#xff1f;阿…

python3下载手机安卓版,python下载手机版最新

大家好&#xff0c;小编为大家解答python3下载手机安卓版的问题。很多人还不知道python下载手机版最新&#xff0c;现在让我们一起来看看吧&#xff01; 1、先去python官网下载python3的源码包&#xff0c;网址&#xff1a;https://www.python.org/ 1)进去之后点击导航栏的Down…

ansible 备忘清单(一)

笔者&#xff1a; 把以前的手写笔记电子化吧&#xff0c;顺便当作复习。 基础命令 命令 参数 备注 ansible --version 查看版本号 ansible-doc --help 查看帮助信息 -l &#xff5c;--list 查看所有模块 -s 查看模块摘要 Ansible servers -I &#xff5c;-…

浅谈数据仓库运营

一、背景 企业每天都会产生大量的数据&#xff0c;随着时间增长&#xff0c;数据会呈现几何增长&#xff0c;尤其在系统基建基础好的公司。好的数据仓库需要提前规划和好的运营&#xff0c;才能支持企业的发展&#xff0c;为企业提供数据分析基础。 二、目标 提高数据仓库存储…

前端发展趋势:WebAssembly、PWA 和响应式设计

目录 前言 WebAssembly&#xff1a;超越JavaScript的性能 渐进式Web应用&#xff08;PWA&#xff09;&#xff1a;离线可用和更好的用户体验 响应式设计&#xff1a;适应多种设备 总结 作者简介&#xff1a; 懒大王敲代码&#xff0c;计算机专业应届生 今天给大家聊聊前端…

iOS - 钥匙串(keychain)中的证书没有右三角,无法导出p12文件

如下图&#xff0c;证书左侧没有小三角形&#xff0c;无法导出 .p12文件 我遇到的问题是&#xff0c;因为CSR文件有问题&#xff0c;只需要重新在钥匙串上重新导出一个CSR文件&#xff0c;然后再重新制作证书即可

web前端html笔记2

新增状态标签<meter><progress> <meter> 属性 值 描述 high 数值 规定高值 low 数值 规定低值 max 数值 规定最大值 min 数值 规定最小值 optimum 数值 规定最优值 value 数值 规定当前值 <body> <meter high"50" …

论文降重隐藏字符怎么识别 papergpt

大家好&#xff0c;今天来聊聊论文降重隐藏字符怎么识别&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff0c;可以借助此类工具&#xff1a; 论文降重隐藏字符的识别方法 一、引言 在论文降重过程中&#xff…

实战10 角色管理

目录 1、角色后端接口 2、角色列表查询 2.1 效果图 2.2页面原型代码 2.3 角色api代码 role.js 2.4 查询角色列表代码 4、 新增和编辑角色 5、删除角色 6、分配权限 6.1 分配权限思路 6.2 分配权限回显接口 6.3 分配权限回显前端实现 6.4分配权限后端接口 6.4.1 R…

重定向和转发的区别

重定向 1、定义 用户通过浏览器发送一个请求&#xff0c;Tomcat服务器接收这个请求&#xff0c;会给浏览器发送一个状态码302&#xff0c;并设置一个重定向的路径&#xff0c;浏览器如果接收到了这个302的状态码以后&#xff0c;就会去自动加载服务器设置的路径 一个页面跳转…

矢量(向量)数据库 Top 5

矢量数据库的前景&#xff08;图片来源&#xff09; 在人工智能领域&#xff0c;大量的数据需要有效的处理和处理。随着我们深入研究更高级的人工智能应用&#xff0c;如图像识别、语音搜索或推荐引擎&#xff0c;数据的性质变得更加复杂。这就是矢量数据库发挥作用的地方。与…

深入探索Spring Boot的核心功能:快速构建原生程序响应式处理数据(文末送书)

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《linux深造日志》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 写在前面参与规则 ✅参与方式&#xff1a;关注博主、点赞、收藏、评论&#xff0c;任意评论&#xff08;每人最多评论…

【MYSQL】MYSQL 的学习教程(八)之 12 种慢 SQL 查询原因

日常开发中&#xff0c;我们经常会遇到数据库慢查询。那么导致数据慢查询都有哪些常见的原因呢&#xff1f;今天就跟大家聊聊导致 MySQL 慢查询的 12 个常见原因&#xff0c;以及对应的解决方法&#xff1a; SQL 没加索引SQL 索引失效limit 深分页问题单表数据量太大join 或者…