0
0

More than 1 year has passed since last update.

tan(x)^3/tan(3x)の最大値 「2021 学習院大学 理(コア),文(プラス)学部 【4】 」をChatGPTとMathematicaとWolframAlphaとsympyでやってみたい。

Last updated at Posted at 2023-08-23

パイソニスタの方へ
・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}] 

0png.png

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
# 終了しない

0png.png

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

参考

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

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