0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

A linear Volterra equation of the second kind「2021 長崎大学前期【3】(3)」をChatGPTとWolframAlphaとsympyでやってみたい。

Last updated at Posted at 2023-10-05
  • ラプラス変換マスター?の方へ。アドバイスをいただけると助かります。
    Laplace_transform風で、やってみました。
    「ヴォルテラ(Volterra)積分方程式」をsympyで解いてみたい。
  • mathematicaにありますか?

オリジナル

上と同じです。大学入試数学問題集成 様>テキスト 【3】(3)

ChatGPT-3.5先生へ(???間違っています。???)

2回微分可能な関数f(x)が,すべての実数xについて次の等式を満たしている.
f(x)=2+integrate(sin(x-t)*f(t),(t,0,x))
このとき,f''(x)が定数であることを示せ.また,f(0)およびf'(x)の値から,
f''(x)とf(x)をそれぞれ求めよ.
  • ??? したがって、結論として、f(x) は定数であり、f ′′(x) も定数です。
sympyで
  • sympyのソースコードあり。(省略)   ??? 私は、修正、対応できませんでした。

Mathematicaで

  • いつの日か、実行してみたい。

(参考)

WolframAlphaで(できませんでした。)

  • >次をお試しください:
    でした。

sympyで(数学入試問題 様の方法を参考に)

  • 以下は、プログラムでは、ありません。数学入試問題 様の解答を転写です。
# プログラムでは、ありません。数学入試問題 様の解答を転写です。
from sympy import *
var('x,t'  ,real=True)
var('C1,C2',real=True)
f,f0,f1,f2=map( Function,('f','f0','f1','f2'))
fx=2+Integral(       sin(x-t)           *f(t),(t,0,x))               ;print("# f  =",fx)
f0=2+Integral(expand(sin(x-t),trig=True)*f(t),(t,0,x))               ;print("#    =",f0)
f0=2+sin(x)*Integral(f(t)*cos(t),(t,0,x))  \
    -cos(x)*Integral(f(t)*sin(t),(t,0,x))                            ;print("#    =",f0)
print()
f1=f0.diff()                                                         ;print("# f1 =",f1)
print()
f2=f1.diff()                                                         ;print("# f2 =",f2)
f2=-sin(x)*Integral(f(t)*cos(t),(t,0,x))+cos(x)*f(x)*cos(x) \
   +cos(x)*Integral(f(t)*sin(t),(t,0,x))+sin(x)*f(x)*sin(x  )        ;print("#    =",f2)
f2=f2.simplify()                                                     ;print("#    =",f2)
print()
f2 =f2.subs({f0:f(x)})                                               ;print("# f2 =",f2)
print()
f1s=f2*x+C1                                                          ;print("# f1 =",f1s)
f1s=f1s.subs({C1:solve( Eq(f1.subs({x:0}),f1s.subs({x:0}) ),C1)[0]}) ;print("#    =",f1s)
f0s=integrate( f1s,x )+C2                                            ;print("# f0 =",f0s)
f0s=f0s.subs({C2:solve( Eq(f0.subs({x:0}),f0s.subs({x:0}) ),C2)[0]}) ;print("#    =",f0s)
# f  = Integral(-f(t)*sin(t - x), (t, 0, x)) + 2
#    = Integral((-sin(t)*cos(x) + sin(x)*cos(t))*f(t), (t, 0, x)) + 2
#    = sin(x)*Integral(f(t)*cos(t), (t, 0, x)) - cos(x)*Integral(f(t)*sin(t), (t, 0, x)) + 2

# f1 = sin(x)*Integral(f(t)*sin(t), (t, 0, x)) + cos(x)*Integral(f(t)*cos(t), (t, 0, x))

# f2 = f(x)*sin(x)**2 + f(x)*cos(x)**2 - sin(x)*Integral(f(t)*cos(t), (t, 0, x)) + cos(x)*Integral(f(t)*sin(t), (t, 0, x))
#    = f(x)*sin(x)**2 + f(x)*cos(x)**2 - sin(x)*Integral(f(t)*cos(t), (t, 0, x)) + cos(x)*Integral(f(t)*sin(t), (t, 0, x))
#    = f(x) - sin(x)*Integral(f(t)*cos(t), (t, 0, x)) + cos(x)*Integral(f(t)*sin(t), (t, 0, x))

# f2 = 2
# f1 = C1 + 2*x
#    = 2*x
# f0 = C2 + x**2
#    = x**2 + 2

sympyで(Laplace_transform風で)

# 途中、ウソをついてます。申し訳ありません。
from sympy import *
var('x,s',real=True)
var('t'  ,real=True,positive=True)
Y,y,f=map( Function,('y','Y','f'))
def myLap  (g):
     if g==y(t): return Y(s)
     else:       return laplace_transform(g,t,s)[0]
def myLapInv(g):
     return inverse_laplace_transform(g,s,t).evalf().simplify()
def myMain(myEq):
     myEq=myEq.subs({f(x):y(t)})                                     #;print(myEq)
     myEq=myEq.subs({sin(x-t)*f(t):sin(s-t)*y(s)})                   #;print(myEq)
     myEq=myEq.subs({x:t})                                           #;print(myEq)
     myEq=Eq(myLap(myEq.lhs),myLap(2)+ myLap(sin(t)) *myLap(y(t))  ) #;print(myEq)
     return myLapInv(solve(myEq,Y(s))[0]).subs({t:x})
myEq=Eq(f(x),2 +Integral(sin(x-t)*f(t),(s,0,x)))                     ;print("#",myEq ) 
fx  =myMain(myEq)                                                    ;print("#",fx       ,",",fx .subs({x:0}) )
fx1 =fx.diff(x,1)                                                    ;print("#",fx1,6*" ",",",fx1.subs({x:0}) )
fx2 =fx.diff(x,2)                                                    ;print("#",fx2  )
# Eq(f(x), Integral(-f(t)*sin(t - x), (s, 0, x)) + 2)
# x**2 + 2.0 , 2.00000000000000
# 2*x        , 0
# 2

いつもの? sympyの実行環境と 参考のおすすめです。

(テンプレート)

いつもと違うおすすめです。

wikipedia
>A linear Volterra equation of the second kind is

Qiita内

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?