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.

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

Last updated at Posted at 2023-09-22

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

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

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

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で(できませんでした。)

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

積分のexampleだけ

sympyで(math karat 様の方法を参考に) 最速解法

・作図しました。
・(2A)math karat 様の面積公式 より。
・(2B)sympyの標準積分関数です。
Integrals
https://docs.sympy.org/latest/modules/integrals/integrals.html

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

sympyで(math karat 様の方法を参考に) 別解

・最速解法と同じに見えてきました。

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)
αβmn=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:αβmn[0][2],n:αβmn[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) 微分解法で苦戦することもある。
できませんでした。言われる通りでした。

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」に、コピー貼り付けでもできました。
黒背景の右上に、マウスを移動すると、コピーマークが発生します。
??? タブレット環境で、コピー貼り付けが実行できませんでした。???

参考

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

勉強中???

第1種オイラー積分<

0
0
2

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?