ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

如何做仿真——检查自己算法的有效性???

2021-09-29 16:01:51  阅读:184  来源: 互联网

标签:仿真 num 算法 noice 参数 未知 有效性 输入


近期二郎在做一个项目,也写出来代码了,但是现有数据量不足,不能很好地验证算法是否成立,因此二郎要去做一个仿真,来验证算法地有效性。

仿真=解决问题的逆。
解决问题需要有输入,然后得到对应的输出

一般情况下,解决问题 :
利用真实的输入和输出,解出系统的未知参数。
仿真:
设定输入,设定未知参数,产生理想的输出。
为输入和输出添加随机噪声(添加一个按照精度设置的随机变量,用于表示测量的不确定性)。
然后,用解决问题的方法,求未知参数,看求出的未知参数和原设置的未知参数是否一致。

例如:

系统的方程:y=kx;
未知参数:k;

仿真

%matlab code
clear 
clc

x = (0:1:300);%设置输入
k = 6;%假定参数
y = k*x;%计算出输出

[~,num] = size(x);

x_noice = x + 0.1*rand(1,num);%为x添加噪声
y_noice = y + 0.1*rand(1,num);%为y添加噪声
 
k_noice = y_noice*x_noice'*inv(x_noice*x_noice');%矩阵形式的最小二乘法

结果
在这里插入图片描述
可以看到,我们求出的带噪声的k_noice是接近我们设定的真实值的,证明我们的方法是有效的。

标签:仿真,num,算法,noice,参数,未知,有效性,输入
来源: https://blog.csdn.net/a6333230/article/details/120549826

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有