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

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

オリジナル

https://kamelink.com/blog/2021/11/21/15-3-21-nagasakidai-i-ko-si-kyouiku-yaku-jouho-3-3/

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

https://mathexamtest.web.fc2.com/2021/202110881/2021108810100mj.html#top-0107

# 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で
- いつの日か、実行してみたい。

(参考)

https://www.wolfram.com/language/11/symbolic-and-numeric-calculus/solve-a-volterra-integral-equation.html.ja?footer=lang

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

https://www.wolframalpha.com/input?i=f%28x%29%3D2%2Bintegrate%28sin%28x-t%29*f%28t%29%2C%28t%2C0%2Cx%29%29++&lang=ja

- ＞次をお試しください：
でした。

# sympyで(数学入試問題 様の方法を参考に)
- 以下は、プログラムでは、ありません。数学入試問題 様の解答を転写です。
```python
# プログラムでは、ありません。数学入試問題 様の解答を転写です。
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風で)
- **途中、ウソをついてます。申し訳ありません。** ？？？ｘ→ｔ→ｘ ｔ単体だと、動くはずです。
　**アドバイスいただけると助かります。**
　???そのため、2.00000000000000　がでるのかもしれません。
sympy.integrals.transforms.laplace_transform(f, t, s, legacy_matrix=True, **hints)
https://docs.sympy.org/latest/modules/integrals/integrals.html#sympy.integrals.transforms.laplace_transform
sympy.integrals.transforms.inverse_laplace_transform(F, s, t, plane=None, **hints)
https://docs.sympy.org/latest/modules/integrals/integrals.html#sympy.integrals.transforms.inverse_laplace_transform
```python
# 途中、ウソをついてます。申し訳ありません。
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の実行環境と 参考のおすすめです。
(テンプレート)

https://qiita.com/mrrclb48z/items/00dd08b0317069be9342

# いつもと違うおすすめです。
wikipedia
＞A linear Volterra equation of the second kind is

https://en.wikipedia.org/wiki/Volterra_integral_equation

https://ja.wikipedia.org/wiki/ヴォルテラ積分方程式

https://en.wikipedia.org/wiki/Laplace_transform#Properties_and_theorems

Qiita内

https://qiita.com/campbel2525/items/3d22e34391dca48cae0e