1

区分関数をプロットしたいが、ギャップを生じさせたくない

接合点で、例えば:

t=[1:8784];

b=(26.045792 + 13.075558*sin(0.0008531214*t - 2.7773943)).*((heaviside(t-2184))-(heaviside(t-7440)));

plot(b,'r','LineWidth', 1.5);grid on

3 つの間隔の間のプロットに表示されるギャップがあってはなりませんが、表示されます。

グラフを隙間なく連続させたい。

それを達成する方法に関する提案。

前もって感謝します。

編集
実際、私の目的は、下の図で黄色で色付けされたキャリア関数を見つけることです。区間全体を 3 つの区間に分割します: 1-定数 2-正弦波 3-定数。次に、これら 3 つの関数から全体の関数を見つけたいと考えています。

代替テキスト

4

1 に答える 1

2

もちろん「ズレ」はあります。複合関数は、すべての t<2184 とすべての t>7440 で同じようにゼロです。関係は、その間隔内でのみ非ゼロにすることができます。また、エンドポイントでゼロになる関数を選択していないのに、「ギャップ」がないとどうして期待できるでしょうか?

区間の終点で関数が取る値は?

>> t = [2184 7440];
>> (26.045792 + 13.075558*sin(0.0008531214*t - 2.7773943))
ans =
       15.689       20.616

では、このハット関数の部分を見てください。私は怠け者で、ezplot を使用します。

>> ezplot(@(t) ((heaviside(t-2184))-(heaviside(t-7440))),[0,8784])

代替テキスト

さて、これを組み合わせて、三角ピースを掛けると、もちろん結果はそのドメインの外では同じようにゼロになります。

>> ezplot(@(t) (26.045792 + 13.075558*sin(0.0008531214*t - 2.7773943)).*((heaviside(t-2184))-(heaviside(t-7440))),[0,8784])

代替テキスト

しかし、あなたの目標が帽子関数で選択された 2 点にわたるある種の連続関数である場合、それらの同じ 2 点でゼロになるように三角部分を選択する必要があります。数学は数学とは綴られていません。継続的な機能を手に入れたいと願っても、そうはなりません。

それで、最終結果が連続するように、その内部ピース(セグメント)を1つとして選択する方法があなたの本当の質問ですか? もしそうなら、そこで任意の定数を選択した理由を知る必要があります。確かに、{26.045792, 13.075558, 0.0008531214, 2.7773943} という数字はすべて、あなたにとって何らかの意味を持っているに違いありません。そして、それらが重要である場合、どうすれば結果を連続関数にすることができるでしょうか?

おそらく、ここで推測しているだけですが、関数がそれらの境界の外で同じようにゼロにならないように、これから何か他の結果が必要です。おそらく、それらの点の外で定数関数として外挿したいと思うでしょう。しかし、あなたを助けるためには、あなたが私たちを助けなければなりません。

于 2010-12-31T11:40:42.973 に答える