・Integralのtransformでやってみました。
・WolframAlphaでグラフがでます。
オリジナル(youtube 12:02) PASSLABO 様より
上と同じです。大学入試数学問題集成 様>テキスト 理系乙【1】問1
ChatGPT-3.5先生へ(???間違っています。???)
やってて、だんだん自信?がなくなってきました。
入力文1
定積分integrate((2*x+1)/sqrt(x**2+4),x,0,2)を求めよ.
??? 返信抜粋
...
これで、積分は簡単に計算できます:
...
したがって、与えられた定積分の値は約2.644です。
入力文2(続けて)
sympyで教えて下さい
??? 返信抜粋
...
SymPyを使用して計算すると、結果は以下の通りです。
2*sqrt(5)*asinh(1)
...
したがって、SymPyを使用して計算した場合、定積分の値は約2.644です。
WolframAlphaで
グラフがでます。
定積分
integral_0^2 (2 x + 1)/sqrt(x^2 + 4) dx = -4 + 4 sqrt(2) + sinh^(-1)(1)≈2.5382
計算結果
簡約 | integral_0^2 (2 x + 1)/sqrt(x^2 + 4) dx = 簡約 | -4 + 4 sqrt(2) + sinh^(-1)(1)
別の形
log(1 + sqrt(2))
sympyで(PASSLABO 様の方法を参考に) できませんでした。
・私は、あと一歩のような気もしました。深掘りできませんでした。
・transformは、使っていません。
>困難だと思ったら分割する 部分分数展開,積を和に(01:34)
>I1:2xはx^2+4の微分した形・・・ (02:50)
> あえて置換しない方法・・・ (03:59)
>I2:置換積分 この√が消えるから。 (06:07)
>三角関数だけの積分の時... (08:22)
Converts ratios involving sin and cos as follows::
sin(x)/cos(x) -> tan(x) sin(x)/(cos(x) + 1) -> tan(x/2) if half=True
https://docs.sympy.org/latest/modules/simplify/fu.html#sympy.simplify.fu.TR2i
To apply identities 1 and 2 from right to left, use logcombine().
https://docs.sympy.org/latest/tutorials/intro-tutorial/simplification.html#logcombine
from sympy import *
from sympy.simplify.fu import TR2i
var('x' ,real=True)
var('g1,I1,I2,g2',real=True)
var('θ,aθ,bθ,dxθ',real=True)
def myEqTanCos():
eq01=Eq( sin(θ)**2+cos(θ)**2 ,1 ) #;print("#01 ",eq01)
eq02=Eq((eq01.lhs/cos(θ)**2).expand(),
eq01.rhs/cos(θ)**2 ) #;print("#02 ",eq02)
eq03=Eq( TR2i(eq02.lhs),eq02.rhs ) ;print("#00",eq03)
return eq03
print("# (0:57)",50*"-")
eqTanCos=myEqTanCos()
(a,b)=(0,2)
f1=(2*x )/sqrt(x**2+4) ;print("#I1",Integral(f1,(x,a,b)))
f2=( +1)/sqrt(x**2+4) ;print("#I2",Integral(f2,(x,a,b)))
f =f1+f2 ;print("#I ",Integral(f,(x,a,b)).simplify())
print("# (2:20)",50*"-")
print("#11 Eq(g1,(",denom(f1),")' )" )
eq12=Eq(g1 ,diff(denom(f1)) ) ;print("#12 ",eq12)
eq13=Eq(eq12.lhs*2,eq12.rhs*2 ) ;print("#13 ",eq13)
eq14=Eq(I1, 2*denom(f1).subs({x:2})
-2*denom(f1).subs({x:0}) ) ;print("#14 ",eq14)
print("# (4:22)",50*"-")
eq21=Eq(x ,2*tan(θ) ) ;print("#21 ",eq21)
eq22=Eq(dxθ,diff(eq21.rhs).factor()
.subs({eqTanCos.lhs:eqTanCos.rhs } )) ;print("#22 ",eq22)
eq23=Eq(f2 ,f2.subs({x:2*tan(θ)}) ) ;print("#23 ",eq23)
eq24=Eq(eq23.lhs,eq23.rhs.factor()
.subs({eqTanCos.lhs:eqTanCos.rhs })) ;print("#24 ",eq24)
eq25=Eq(eq23.lhs,cos(θ)/2 ) ;print("#25 ",eq25)
print("# (5:32)")
eq26=Eq(aθ,solve(eq21.subs({x:a}))[0] ) ;print("#26 ",eq26)
eq27=Eq(bθ,solve(eq21.subs({x:b}))[0] ) ;print("#27 ",eq27)
eq28=Eq(dxθ,diff(eq21.rhs) ) ;print("#28 ",eq28)
eq29=Eq(eq28.lhs,eq28.rhs.factor()
.subs({eqTanCos.lhs:eqTanCos.rhs }) ) ;print("#29 ",eq29)
print("# (6:20)")
f =sqrt( 4*(1+tan(θ)**2) ) ;print("# f=",f)
f =sqrt( 4/cos(θ)**2) ;print("# f=",f)
print("# (7:20)")
f =eq25.rhs*eq29.rhs ;print("# f =",f)
fn=numer(f);fd=denom(f) ;print("# f =",fn,"/",fd)
fn=numer(f)*cos(θ);fd=denom(f)*cos(θ) ;print("# f =",fn,",",fd)
fn=numer(f)*cos(θ);fd=1-sin(θ)**2 ;print("# f =",fn,",",fd)
f=apart(fn/fd,sin(θ)) ;print("# f =",f )
I2=Integral( f,(θ,eq26.rhs,eq27.rhs)) ;print("#I2 =",I2)
I2=I2.doit() ;print("#I2 =",I2)
I2=logcombine(I2,force=True ) ;print("#I2 =",I2)
print("# (10:20)")
# (0:57) --------------------------------------------------
#00 Eq(tan(θ)**2 + 1, cos(θ)**(-2))
#I1 Integral(2*x/sqrt(x**2 + 4), (x, 0, 2))
#I2 Integral(1/sqrt(x**2 + 4), (x, 0, 2))
#I Integral((2*x + 1)/sqrt(x**2 + 4), (x, 0, 2))
# (2:20) --------------------------------------------------
#11 Eq(g1,( sqrt(x**2 + 4) )' )
#12 Eq(g1, x/sqrt(x**2 + 4))
#13 Eq(2*g1, 2*x/sqrt(x**2 + 4))
#14 Eq(I1, -4 + 4*sqrt(2))
# (4:22) --------------------------------------------------
#21 Eq(x, 2*tan(θ))
#22 Eq(dxθ, 2/cos(θ)**2)
#23 Eq(1/sqrt(x**2 + 4), 1/sqrt(4*tan(θ)**2 + 4))
#24 Eq(1/sqrt(x**2 + 4), Abs(cos(θ))/2)
#25 Eq(1/sqrt(x**2 + 4), cos(θ)/2)
# (5:32)
#26 Eq(aθ, 0)
#27 Eq(bθ, pi/4)
#28 Eq(dxθ, 2*tan(θ)**2 + 2)
#29 Eq(dxθ, 2/cos(θ)**2)
# (6:20)
# f= sqrt(4*tan(θ)**2 + 4)
# f= 2/Abs(cos(θ))
# (7:20)
# f = 1/cos(θ)
# f = 1 / cos(θ)
# f = cos(θ) , cos(θ)**2
# f = cos(θ) , 1 - sin(θ)**2
# f = cos(θ)/(2*(sin(θ) + 1)) - cos(θ)/(2*(sin(θ) - 1))
#
#I2 = Integral(cos(θ)/(2*(sin(θ) + 1)) - cos(θ)/(2*(sin(θ) - 1)), (θ, 0, pi/4))
#I2 = log(sqrt(2)/2 + 1)/2 - log(1 - sqrt(2)/2)/2
#I2 = log(sqrt(sqrt(2)/2 + 1)/sqrt(1 - sqrt(2)/2))
# (7:20)
sympyで(transformで)
>困難だと思ったら分割する 部分分数展開,積の和 (01:34)
・PASSLABO 様,transform 様のおかげです。
transform(x, u)
https://docs.sympy.org/latest/modules/integrals/integrals.html#sympy.integrals.integrals.Integral.transform
from sympy import *
var('x',real=True)
var('θ',real=True)
#
(a,b)=(0,2)
f1=(2*x )/sqrt(x**2+4)
f2=( +1)/sqrt(x**2+4)
f =f1+f2 ;print("#I =",Integral(f,(x,a,b)))
print()
I1=Integral(f1,(x,a,b) ) ;print("#I1 =",I1)
I1=I1.transform(x,2*tan(θ)) ;print("#I1 =",I1)
I1=I1.doit() ;print("#I1 =",I1)
print()
I2=Integral(f2,(x,a,b) ) ;print("#I2 =",I2)
I2=I2.doit() ;print("#I2 =",I2)
#I = Integral(2*x/sqrt(x**2 + 4) + 1/sqrt(x**2 + 4), (x, 0, 2))
#I1 = Integral(2*x/sqrt(x**2 + 4), (x, 0, 2))
#I1 = Integral(4*(2*tan(θ)**2 + 2)*tan(θ)/sqrt(4*tan(θ)**2 + 4), (θ, 0, pi/4))
#I1 = -4 + 4*sqrt(2)
#I2 = Integral(1/sqrt(x**2 + 4), (x, 0, 2))
#I2 = log(1 + sqrt(2))
・以下はうごきません。私は、図々しいみたいです。分割が必要でした。
#これは、うごきません。
from sympy import *
var('x',real=True)
var('θ',real=True)
(a,b)=(0,2)
f=(2*x+1)/sqrt(x**2+4)
I=Integral(f,(x,a,b) ) ;print("#I =",I)
I=I.transform(x,2*tan(θ)) ;print("#I =",I)
I=I.doit() ;print("#I =",I)
#I = Integral((2*x + 1)/sqrt(x**2 + 4), (x, 0, 2))
#I = Integral((4*tan(θ) + 1)*(2*tan(θ)**2 + 2)/sqrt(4*tan(θ)**2 + 4), (θ, 0, pi/4))
#I = Integral((4*tan(θ) + 1)*sqrt(tan(θ)**2 + 1), (θ, 0, pi/4))
sympyで(いつものスタイルで)
from sympy import *
var('x',real=True)
print("#", integrate((2*x+1)/sqrt(x**2+4),(x,0,2)) )
# -4 + log(1 + sqrt(2)) + 4*sqrt(2)
sympyの実行環境
①私の環境は,pycharmです。
②よく聞くのは、Jupyterです。
③web上で、上記のソースを「SymPy Live shell」に、コピー貼り付けでもできました。
黒背景の右上に、マウスを移動すると、コピーマークが発生します。
??? タブレット環境で、コピー貼り付けが実行できませんでした。???
参考
以下、いつもの?おすすめです。