パイソニスタの方へ
・sympyで「相加相乗平均の不等式の関数」を探しています。
・グラフがでます。
・(1)は、未.これからです。(2023/08/24済)
・定義域(変域)について,tanの3倍角だから,0<x<(90/3)°でした。π/6。
オリジナル(youtube 10:29) MathLABO 様より
上と同じです。大学入試数学問題集成 様>【4】テキスト
xxxx ChatGPTで(できませんでした。) xxx
使い方注意報?使う時、注意報? 別件で解が違う事例が発生しています。まとめ中。
(1)(2) 入力文
0<x<π/6を満たす実数xに対して,t=tanxとおく.
(1)tan3xをtで表わせ.
(2)xが0<x<π/6の範囲を動くとき,tanx^3/tan3xの最大値を求めよ.
>(1)tan(3x) = (2tan(x) / (1 - tan^2(x)) + tan(x)) / (1 - (2tan(x) / (1 - tan^2(x))) * tan(x))
>これでtan(3x)をtで表すことができます。
>(2)...
>最終的に、tan(x^3)/tan(3x) = (tan(x^3)) / (t * tan(x)) の形になりました。
(2)だけ 入力文
0<x<π/6のとき、tan(x)**3/tan(3x)の最大値
>数値計算を行い、近似的な解を得ることができます。
Mathematicaで(途中)
(2)だけ
In
MaxValue[{Tan[x]^3/Tan[3 x], 0 <= x <= \[Pi]/6}, {x}]
Simplify[%]
Out
Cot[6 ArcTan[
Root[1 - 4 # - 6 #^2 + 4 #^3 + #^4& , 3, 0]]] Tan[2 ArcTan[
Root[1 - 4 # - 6 #^2 + 4 #^3 + #^4& , 3, 0]]]^3
Tan[\[Pi]/8]^4
x-yのグラフがでます。22.5度でした。π/8。
Plot[{Tan[x]^3/Tan[3 x]}, {x, 0, \[Pi]/6}]
WolframAlphaで(途中)
(1)だけ 簡約
(2)だけ
x-yのグラフがでます
結果
x = π/8 のとき, max{(tan^3(x))/tan(3 x) |0<x<π/6} = (2 - sqrt(2))^2/(2 + sqrt(2))^2
近似値 0.0294...
別の形
17 - 12 sqrt(2)
sympyで(MathLABO 様の方法を参考に) 相加相乗平均の不等式で
(1)
3倍角(tan)
https://qiita.com/mrrclb48z/items/5b1f1946f20ecbca3628#3%E5%80%8D%E8%A7%92tan
from sympy import *
var('x',real=True)
var('t',real=True)
print("#",simplify( tan(3*x).expand(trig=True)) )
print("#",simplify( tan(3*x).expand(trig=True)).subs({tan(x):t}) )
# (tan(x)**2 - 3)*tan(x)/(3*tan(x)**2 - 1)
# t*(t**2 - 3)/(3*t**2 - 1)
(2)
・sympyで「相加相乗平均の不等式の関数」を探しています。
・sympy.abcの意味を教えて下さい。
・print文の中に、Interval(,)をつけようしましたが、あきらめました。
・?無理すれば、1行で書けるような気がしてきました。
from sympy import *
var('x X',real=True,positive=True)
# var('t',real=True,positive=True)
from sympy.abc import t
f =tan(x)**3/tan(3*x) ;print("#<f >",f )
f1=f.expand(trig=True) ;print("#<f1>",f1 )
f2=str(f1).replace('tan(x)','t') ;print("#<f2>",f2 )
f3=sympify(f2) ;print("#<f3>",f3 )
f4= f3.simplify() ;print("#<f4>",f4 )
f5= f4.subs({t:solve( Eq(3-t**2,X),t)[1]}) ;print("#<f5>",f5 )
f6= f5.expand() ;print("#<f6>",f6 )
f7=poly(f6) ;print("#<f7>",f7 )
f8=f7.args[0] ;print("#<f8>",f8 )
print("#",f8.coeff(X, 0)
+f8.coeff(X,1)*2*sqrt( f8.coeff(X,-1)/f8.coeff(X,1) ))
#<f > tan(x)**3/tan(3*x)
#<f1> -3*tan(x)**5/(-tan(x)**3 + 3*tan(x)) + tan(x)**3/(-tan(x)**3 + 3*tan(x))
#<f3> -3*t**5/(-t**3 + 3*t) + t**3/(-t**3 + 3*t)
#<f4> (3*t**4 - t**2)/(t**2 - 3)
#<f5> -(X + 3*(3 - X)**2 - 3)/X
#<f6> -3*X + 17 - 24/X
#<f7> Poly(-24*(1/X) - 3*X + 17, 1/X, X, domain='ZZ')
#<f8> -3*X + 17 - 24/X
# 17 - 12*sqrt(2)
xxx sympyで(微分で)できませんでした。xxx
(2)だけ
あと一息です。π/8=22.5°。有理化のapart?
from sympy import *
var('x',real=True,positive=True)
(st,en)=(0,pi/6)
f =tan(x)**3/tan(3*x)
ans=solveset(Eq(diff(f,x),0),x,Interval(st,en))
print("#", ans.args[0] ,float( ans.args[0]*180/pi) )
print("#",f.subs({x:ans.args[0]}),float(f.subs({x:ans.args[0]}) ),float(17-12*sqrt(2) ))
print("#",f.subs({x:pi/8}) ,float(f.subs({x:pi/8})) )
# atan(sqrt(2 - sqrt(2))/sqrt(sqrt(2) + 2)) 22.5
# (2 - sqrt(2))**(3/2)/((sqrt(2) + 2)**(3/2)*tan(3*atan(sqrt(2 - sqrt(2))/sqrt(sqrt(2) + 2)))) 0.029437251522859413 0.029437251522859413
# (-1 + sqrt(2))**3/(1 + sqrt(2)) 0.029437251522859413
xxx sympyで(maximum関数で)できませんでした。xxx
(2)だけ
maximum関数を使って終了しませんでした。
from sympy import *
x=symbols('x',real=True,nonnegative=True)
(st,en)=(0,pi/6)
f=tan(x)**3/tan(3*x)
plot(f,(x,st,en))
#
ans=maximum( f,x,Interval.open(st,en) )
print("#",ans,float(ans))
ans=solveset(Eq(f,ans),x,Interval.open(st,en))
print("#",ans)
print("#",float(ans))
# (2 - sqrt(2))**(3/2)/((sqrt(2) + 2)**(3/2)*tan(3*atan(sqrt(2 - sqrt(2))/sqrt(sqrt(2) + 2))))
# 0.029437251522859413
# 終了しない
「SymPy Live shell」に1行づつ、コピー貼り付けでもできました。
maximum( tan(x)**3/tan(3*x),x,Interval.open(0,pi/6) )
print( maximum( tan(x)**3/tan(3*x),x,Interval.open(0,pi/6) ) )
plot( tan(x)**3/tan(3*x),(x,0,pi/6) )
sympyの実行環境
①私の環境は,pycharmです。
②よく聞くのは、Jupyterです。
③web上で、上記のソースを「SymPy Live shell」に、コピー貼り付けでもできました。
黒背景の右上に、マウスを移動すると、コピーマークが発生します。
??? タブレット環境で、コピー貼り付けが実行できませんでした。???
参考
以下、いつもの?おすすめです。