私はこの問題についていくつかのアイデアを跳ね返ってきましたが、オンラインコミュニティと相談して、誰かがより良い選択肢を持っているかどうかを調べると考えました。Pythonによるステップ関数解析
だから私はこのような階段状の関数グラフいる:
そして、これでは私がステップ間のy変位を計算したいです。
ステップが完全に水平ではなく、むしろステップアップする前に小さな範囲のy値を取ることがわかります。
そこで質問です:
(1)各「レベル」の平均y値を取るために(1がある場合)、「適切」な方法は何ですか?私は左のポイントと右のポイントをそれぞれのレベルで使うべきであるかどうかわからないので、これらのポイント間の値を取って平均し、各レベルの平均を達成することができますセンス。見ることができるように、それらはすべてxの同じ変位にまたがるわけではありません。究極の目標はレベル間にy変位を得ることです。各レベルの「平均」値を取ったら、その差を取るのは簡単です。
私は、カーブの派生を取って、各レベルの左と右のほとんどのポイントでゼロと等しいところを見ていたかもしれませんが、各レベルがポイントを含んでいるので、 dy/dx = 0) - 私はいくつかの洞察力を使用することができます。
ありがとうございます:ああ - これはPythonで行う必要があります - そして、これらのグラフだけではなく、同様のスタイルを持つ多くのものですので、コードは他の階段状グラフ。グラフ3のためのhttp://textuploader.com/5nwsv
データファイル:グラフ2用http://textuploader.com/5nwsh
データファイル:グラフ1のため
日ファイルhttp://textuploader.com/5nwsj
散布プロットPythonコード:
import numpy as np
import matplotlib.pyplot as plt
import pylab as pl
data=np.loadtxt('data-file')
x= data[:,0]
y=data[:,1]
pl.plot(data[:,0],data[:,1],'r')
pl.xlabel('x')
pl.ylabel('y')
plt.show()
は、それは問題でしょうか?レベルの違いは同じy変位でしょうか? – Scientized
あなたの解決策は、あなたが理解しようとしている物理的現実のモデルにあるべきだと思います。例えば。グラフを回転させてxとyに合わせるか、現在の座標系が必要ですか?ステップが非常に周期的である場合、FFTは周期性をテストする方法になります。デリバティブは、あなたが言及したようにほとんどのポイントがゼロになるようにオフセットを置くことによって斜めを取り除くことを可能にします。 – roadrunner66
いいえ。グラフをほぼ水平に傾けた場合、「y軸」には「ステップ」はありません。だから、ステップを定義する必要があります。第2のグラフのように、グラフが階段に似ているという意味で意味していると思います。 – roadrunner66