如何做仿真——检查自己算法的有效性???
作者:互联网
近期二郎在做一个项目,也写出来代码了,但是现有数据量不足,不能很好地验证算法是否成立,因此二郎要去做一个仿真,来验证算法地有效性。
仿真=解决问题的逆。
解决问题需要有输入,然后得到对应的输出
一般情况下,解决问题 :
利用真实的输入和输出,解出系统的未知参数。
仿真:
设定输入,设定未知参数,产生理想的输出。
为输入和输出添加随机噪声(添加一个按照精度设置的随机变量,用于表示测量的不确定性)。
然后,用解决问题的方法,求未知参数,看求出的未知参数和原设置的未知参数是否一致。
例如:
系统的方程: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