1

Mathematica に暗黙の方程式があり、NSolve を使用して解いています。さて、ガウスに従ってさまざまなソリューションを比較検討する必要がありますが、うまく機能させることはできません。これまでの私の提案は次のとおりです。

a = (4.2*10^(-5));
b = 4067;
c = 112;
sol[d_] := Select[NSolve[s == (1 + a^2*(2*Pi*1000*d)^2)/((1 + c/(1 + (s*b)/(1 + a^2*(2*Pi*1000*d)^2)))^2 + a^2*(2*Pi*1000*d)^2), {s}], Chop[(Im[s] /. #)] == 0 &][[1]][[1]][[2]];

NIntegrate[Exp[-v^2]*sol[v], {v, -2, 2}]

ただし、これは機能しません。私が間違っていることを誰かが知っていますか?私が欲しいのはかなり簡単ですが、それを実装するのにいくつか問題がありました。

最高です、ナイルズ。

4

1 に答える 1

3

これを試して; 主なポイントは、3 番目の引数を使用しNSolveてドメインを指定し、関数sol2が数値引数でのみ呼び出されるようにすることです。

sol2[d_?NumericQ] := NSolve[s == (1 + 
     a^2*(2*Pi*1000*d)^2)/((1 + 
        c/(1 + (s*b)/(1 + a^2*(2*Pi*1000*d)^2)))^2 + 
     a^2*(2*Pi*1000*d)^2), {s}, Reals][[1]][[1]][[2]]

NIntegrate[Exp[-v^2]*sol2[v], {v, -2, 2}]
(* 1.66556 *)


Plot[Exp[-v^2]*sol2[v], {v, -2, 2}]

プロット

于 2012-12-15T14:05:39.437 に答える