特定の間隔でゼロになり、他の場所ではテスト関数のように見える区分的周期関数を実装したいと思います(たとえばexp(a^2/(abs(x)^2-a^2))
、abs(x)< a
それ以外の場合はゼロ)。
私は試した
nu = @(x) ((8*10^(-4)/exp(1)*exp(30^2./(abs(mod(x,365)-31).^2-30.^2))).* ...
and((1<mod(x,365)),(mod(x,365)<61)) + ...
(8*10^(-4)/exp(1)*exp(10^2./(abs(mod(x,365)-300).^2-10.^2))).* ...
and((290<mod(x,365)),(mod(x,365)<310)));
それぞれ
nu = @(x) ((0*x).* and((0<=mod(x,365)),(mod(x,365)<=1)) + ...
(8*10^(-4)/exp(1)*exp(30^2./(abs(mod(x,365)-31).^2-30.^2))).* ...
and((1<mod(x,365)),(mod(x,365)<61)) + ...
(0*x).* and((61<=mod(x,365)),(mod(x,365)<=290)) + ...
(8*10^(-4)/exp(1)*exp(10^2./(abs(mod(x,365)-300).^2-10.^2))).* ...
and((290<mod(x,365)),(mod(x,365)<310)) + ...
(0*x).* and((310<=mod(x,365)),(mod(x,365)<365)));
これは同じように動作するはずです。目的は [0,365) の周期を持つことです。したがって、モジュロです。
今私の問題はそれnu(1)=nu(61)=nu(290)=nu(310)=NaN
であり、それらの小さな近所でもありますnu(0.99)=NaN
。しかし、指数関数からこれらのポイントを除外しました。これが問題を引き起こす可能性があります。また、指数関数 ((2,60) と (291,309) など) に小さい間隔を使用してもNaN
、同じポイントで受け取ります。
何か案は?アドバイスありがとう!