如何解决在 MATLAB
我正在处理的问题是我有一个测量了 versines 的数组:
EV = [0 2 -2 6 2 8 4 8 6 4 8 10 10 6 8 10 4 18 0 6 4 8 9 4 -4 6 16 4 -2 -2 -4 -6 -14 1 2 -2 -12 -8 -10 -14 -14 -18];
并且我需要优化这个数组以产生一个更平滑的结果,而尖峰更少,这将是第二个数组。然而,这第二个数组需要有一定的规则,只是随机地使它更平滑是行不通的,因为以下方程控制着由此计算的其他参数:
d(1,1) = 0;
ED(1,1) = 0;
M(1,1) = 0;
S(1,1) = 0;
d(1,i) = DV(1,i)-EV(1,i);
ED(1,i) = ED(1,i-1) + d(1,i-1);
M(1,i) + M(1,i-1);
S(1,i) = -2*(ED(1,i-1)+DV(1,i-1)-EV(1,i-1)+M(1,i-1));
DV 是我需要创建的第二个(优化/平滑)数组,它必须由整数组成。各个参数的结果取决于先前的值。例如:
ED(1,2) = ED(1,1) + d(1,1)
M(1,2) + M(1,1)
S(1,2) = -2*(ED(1,1)+DV(1,1)-EV(1,1)+M(1,1))
而且我需要创建第二个数组,使 S 的最后两个值为 0,因此: S(1,42) = 0 && S(1,41) = 0;
我首先尝试通过计算不同的排列来解决这个问题,但由于元素数量众多,这是不可能的。 Mathworks 的一位研究员使用 MATLAB 优化工具箱提出了一个解决方案。但是,如果我按照他的建议设置方程,它不会平滑原始数据,并且它们有很多尖峰。另一种解决方案是使用最小二乘法,但这种方法以及实际上的第一种方法不会产生整数,这是一个问题。有没有办法做到这一点?
非常感谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。