2

次の積分方程式があります。 ここに画像の説明を入力

積分方程式を解いて、f(u) が cos(2u) として予測されるかどうかを確認しようとしています。積分方程式の解が cos(2u) であることがわかっているので、5 から無限大までの積分の値を無視できるようにすれば、0 から無限大までの積分を極限 0 から 5 に近似できます。 t が小さくなるように選択することによって行われます。0 から 5 までの積分に対して 100 の評価点を選択しました。これは、f(u) の 100 の値を解いていることを意味します。f(u) の 100 個の値を解く必要があるため、100 個の方程式を生成する必要があるため、時間 t の 100 個の値が必要になります。1 から 1.3 の間の時間 t に 100 の値を選択します。これにより、5 以上の値の積分が無視できるようになります。以下は、これを行うための scipy コードです。

from scipy import*
from matplotlib.pyplot import*


Nt_samples=100  #100 evaluation points for the time t
t=linspace(1.0,1.3,100)
number_eval_points=100  #100 evaluation points for u 

eval_points=linspace(0.005,5,number_eval_points)
delta=eval_points[1]-eval_points[0]
R=zeros(100,1)
R=0.5*sqrt(2*3.14)*t*exp(-2*t*t)
A=zeros((Nt_samples,number_eval_points))    

for i in range(100):
    for j in range(100):
        A[i,j]=delta*exp(-(eval_points[j]*eval_points[j])/(2*(t[i]*t[i])))


Z=cos(2*eval_points)
Fu=dot(linalg.inv(A),R)
plot(eval_points,Fu,eval_points,Z)

どういうわけか、f(u) の結果は cos(2u) とはかけ離れています。実際、それらは多くのランダム ノイズのように見え、まったくパターンに従っていません。また、f(u) の大きさは非常に大きいです。評価点の数とtの値をいじってみたのですが、うまくいきません。

コード/パラメーター/ロジックの設定に問題はありますか?

どうもありがとう!

4

1 に答える 1