(複接線)(二重接線)「2022 慶応義塾大学 環境情報学部【3】」をChatGPTとWolframAlphaとsympyでやってみたい。

**・私は、「重解」の意味が少し理解できてきました。**
**・私は、「第1種オイラー積分」を勉強したいと思います。(後日)**
　ありがとうございました。

オリジナル 
(youtube 14:50) math karat 様より

https://youtu.be/e6IkFL_CHRo

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

https://mathexamtest.web.fc2.com/2022/202213338/2022133380700mj.html#top-0703

# ChatGPT-3.5先生へ(できませんでした。)
入力文(一括入力です。) 
**私の入力が、下手なのかもしれません。** sympyのソースコードを出力してほしいです。
```
xy平面上の曲線Cを
y=x**2*(x-1)*(x+2)とする.
(1)Cに2点で下から接する直線Lの方程式を求めよ.
(2)CとLが囲む面積を求めよ.
```
？？？回答？？？ 
```
???(1)...したがって、Cに2点で下から接する直線Lの方程式は次の3つです。
???(2)...数値的な計算が必要です。
```
# WolframAlphaで(できませんでした。)

https://ja.wolframalpha.com/input?i=y%3Dx**2*%28x-1%29*%28x%2B2%29+%E6%8E%A5%E7%B7%9A

以下、できませんでした。

https://ja.wolframalpha.com/input?i=y%3Dx**2*%28x-1%29*%28x%2B2%29+%E3%81%AB%E4%B8%8B%E3%81%8B%E3%82%89%E6%8E%A5%E3%81%99%E3%82%8B%E6%8E%A5%E7%B7%9A+

積分のexampleだけ

https://www.wolframalpha.com/examples/mathematics/calculus-and-analysis/integrals/

# sympyで(math karat 様の方法を参考に) 最速解法
・作図しました。
・(2A)math karat 様の面積公式 より。
・(2B)sympyの標準積分関数です。
Integrals
https://docs.sympy.org/latest/modules/integrals/integrals.html
```python
from sympy import *
var('x'       ,real=True)
var('a,b,c,d,',real=True)
y =x**2*(x-1)*(x+2)
y1=(x**2+a*x+b)**2+c*x+d
p0=Poly(y ,x)
p1=Poly(y1,x)
abcd=solve([Eq( p0.nth(3),p1.nth(3) ),
            Eq( p0.nth(2),p1.nth(2) ),
            Eq( p0.nth(1),p1.nth(1) ),
            Eq( p0.nth(0),p1.nth(0) )
           ],[a,b,c,d])
yl=abcd[0][2]*x+abcd[0][3]
αβ=solve(y-yl)
# 
print("#(1) ",yl)
print("#(2A)",(abs(1)*Rational(1,30)*(αβ[0]-αβ[1])**5).simplify())
print("#(2B)",integrate(y-yl,(x,αβ[1],αβ[0])).simplify()         )
#(1)  9*x/8 - 81/64
#(2A) 361*sqrt(19)/960
#(2B) 361*sqrt(19)/960
# 
(st,en)=(-4,4)
plot(y,yl,
     (x,st,en),
     xlim=(st,en),ylim=(st,en),
     aspect_ratio=(1.0,1.0)
    )
```
![0png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109698/e1d4b176-bb77-2e9a-63be-830c8e3fb3c1.png)

# sympyで(math karat 様の方法を参考に) 別解
・最速解法と同じに見えてきました。
```python
from sympy import *
var('x'   ,real=True)
var('m,n,',real=True)
var('α,β,',real=True)
y =x**2*(x-1)*(x+2)
yl=m*x+n
po=Poly(y-yl-(x-α)**2*(x-β)**2 ,x)
αβｍｎ=solve([Eq( po.nth(3),0 ),
             Eq( po.nth(2),0 ),
             Eq( po.nth(1),0 ),
             Eq( po.nth(0),0 )
            ],[α,β,ｍ,ｎ])
yl=yl.subs({ m:αβｍｎ[0][2],n:αβｍｎ[0][3] })
# 
print("#(1) ",yl)
print("#(2A)",(abs(1)*Rational(1,30)*(αβmn[0][0]-αβmn[0][1])**5).simplify())
print("#(2B)",integrate(y-yl,(x,αβmn[0][1],αβmn[0][0])         ).simplify())
#(1)  9*x/8 - 81/64
#(2A) 361*sqrt(19)/960
#(2B) 361*sqrt(19)/960
# 作図省略
```
# sympyで(微分で)できませんでした。 
α+dx=β(dx>0)。5元連立方程式でできると思ってしまいました。
＞(youtube 5:19) 微分解法で苦戦することもある。
できませんでした。言われる通りでした。
```python
from sympy import *
var('x,α,β',real=True)
var('a,b'  ,real=True)
var('dx'   ,real=True,positive=True)
y =x**2*(x-1)*(x+2)
yd=diff(y)
yl=a*x+b
# 
eq1=Eq(y .subs({x:α}) ,yl.subs({x:α}))
eq2=Eq(y .subs({x:β}) ,yl.subs({x:β}))
eq3=Eq(yd.subs({x:α}) ,a)
eq4=Eq(yd.subs({x:β}) ,a)
eq5=Eq(α+dx,β)
ans=solve([eq1,eq2,eq3,eq4,eq5],[α,β,a,b,dx] )
# 
print("#",ans)
# 終了しませんでした。
```

# sympyの実行環境
①私の環境は,pycharmです。
②よく聞くのは、Jupyterです。
③web上で、上記のソースを「SymPy Live shell」に、コピー貼り付けでもできました。
黒背景の右上に、マウスを移動すると、コピーマークが発生します。
???　タブレット環境で、コピー貼り付けが実行できませんでした。???

https://live.sympy.org/

# 参考

以下、いつもの?おすすめです。

https://qiita.com/mrrclb48z/items/75904cdc6e84ecef4d03#%E5%8F%82%E8%80%83wolframalpha-%E9%96%8B%E7%99%BA%E7%89%A9%E8%AA%9E

# 勉強中???

https://qiita.com/mrrclb48z/items/38e849f41f46bf0c8f9c

第1種オイラー積分＜

https://ja.wikipedia.org/wiki/オイラー積分

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