2

間隔 (0,3) でサポートされているバンプ関数をプロットしようとしています。区間外でゼロになるように関数を区分的に定義しました。関数は次のとおりです。

function d = bump2(t)  
         region1 = (t > 0) & (t < 3);
         d(region1) = exp(1./(t(region1).^2 - 3*t(region1)));

         region2 = (t <= 0) & (t >= 3);
         d(region2) = 0;
end

設定x = -1:.01:4して実行しようとするplot(x,bump2(x))と、ベクトルが同じ長さではないというエラーが表示されます。これは実際に true であるため、andlength(x) = 501を設定すると、すべてが正常にチェックアウトされ、ベクトルの長さが等しくなります。length(bump2(x)) = 400 x = .01:.01:2.99

また、奇妙なことに、私は別の同様の機能を持っています

function b = bump(t)
         region1 = abs(t) < 1;
         b(region1) = exp(-1./(1 - ((t(region1)).^2)));

         region2 = abs(t) >= 1;
         b(region2) = 0;
end

私はこの問題を経験したことがありません。この 2 つの機能が異なるのはなぜですか。そして、可能性のある特異点を回避するように関数を定義したにもかかわらず、点 0 と 3 を除外すると最初の関数が機能するのはなぜですか?

4

1 に答える 1