【发布时间】:2009-05-21 06:29:24
【问题描述】:
想象一个围绕零线振荡的正弦波。我的任务是使用相当粗略的 x 轴刻度计算沿波浪的几个随机点的斜率。 (是的,这有一个真正的应用)
当波浪在 +ve 区域(零线以上)时,斜率可以通过以下公式计算:
Slope = (y(n) / y(n-1)) - 1
这会产生 +ve 倾斜值向上和 -ve 向下倾斜。
问题在于,当我们处于 -ve 区域时必须切换它,然后当其中一个值为零时需要另外两个表达式,总共四个表达式必须使用条件语句以编程方式选择。
我想找到一个涵盖所有四个条件的表达式,因为这是一个频繁使用的算法和时钟计数的中心!
我相信这对于数学天才来说是一个微不足道的解决方案,但对于这些疲惫的眼睛来说,它让我望而却步......
添加:
“正弦波”实际上是源自金融市场(随机)价格行为的 MACD 指标。这里有一个例子:
http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:moving_average_conve
斜率(例如下图中的粗黑线)是我需要计算的,这里定义为向上或向下(向上是+ve)
问题是 +ve 和 -ve 斜率都可能出现在零之上和之下。使用越过零线和零线的增量也可能会发生斜率计算。
如果能找到一个不涉及大量 IF 语句的解决方案,那就太好了……例如,将所有 y 值移动一个固定量,使它们变为 +ve,然后计算 +ve 区域中的斜率。我需要选择一个历史上 y 从未低于过的数字,例如几个数量级 (99),然后我可以执行 offest 和一个斜率计算?
【问题讨论】:
-
该函数不计算斜率,这就是为什么您遇到问题的原因...您是否特别需要斜率,或者上升或下降是否足够?还是您真的想要这个比率,这就是您从方程式中得到的?
-
斯托博刚刚问了什么。我也想知道这个正弦波是否有一个已知的方程,在这种情况下这甚至不是问题,因为你可以在任何给定的时刻分析计算导数。但也许你有一些测量数据,例如示波器或类似设备?请提供更多信息。
-
>该函数不计算斜率。那它计算什么?不,该图没有已知功能。它可以被认为是随机的。
-
那么你在这里得到答案了吗?我通读了回复,但我不清楚是否有答案。很高兴看到一个对阅读该帖子的其他人来说清楚的结论。感谢您提出有趣的问题。
-
不,在这个论坛上,人们似乎更关心囤积积分而不是理解问题。如果工作量太大,他们就会放弃。