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.

(1+sinθ)/(2+cosθ)最大値/最小値「良問再来!絶対に解けてほしい有名問題」をChatGPTとMathematicaとWolframAlphaとsympyとFreeCADでやってみたい。

Last updated at Posted at 2023-07-02

WolframAlphaで、θのグラフがでます。

オリジナル(youtube)PASSLABO様より

(2023/07/21)

xxxx ChatGPT で(できませんでした。) xxx

入力文

0<=θ<=πであるθに対して(1+sinθ)/(2+cosθ)の最大値、最小値を求めよ

Mathematicaで

**Simplifyが必要でした。**
in:
Simplify[ 
 Maximize[(1 + Sin[\[Theta]])/(2 + Cos[\[Theta]]), 
  0 <= \[Theta] <= \[Pi], \[Theta]] ]
Simplify[
 Minimize[(1 + Sin[\[Theta]])/(2 + Cos[\[Theta]]), 
  0 <= \[Theta] <= \[Pi], \[Theta]]]

out:
{4/3, {\[Theta] -> 2 ArcTan[3]}}
{1/3, {\[Theta] -> 0}}

#### Simplifyがなかったら

In:
Maximize[(1 + Sin[\[Theta]])/(2 + Cos[\[Theta]]), 
 0 <= \[Theta] <= \[Pi], \[Theta]]

out:
{(1 + Sin[2 ArcTan[3]])/(
 2 + Cos[2 ArcTan[3]]), {\[Theta] -> 2 ArcTan[3]}}

作図

Plot[(1 + Sin[\[Theta]])/(2 + Cos[\[Theta]]), {\[Theta], 0, \[Pi]}]

0.png

WolframAlphaで

θのグラフがでます。

最大値の角度θ(単位はdegree)です。

結果 143.1° (度)

以下の、値域を使った方が、楽かもしれません。

上の英語版

sympyで計算だけ(PASSLABO様のやり方)図形的にとらえてみた。

教えて下さい。以下は、無理矢理感があります。

from sympy import *
θ    =symbols('θ'    ,Real=True)
px,py=symbols('px,py',Real=True)
ax,ay=symbols('ax,ay',Real=True)
st,en=0,pi
f=(1+sin(θ))/(2+cos(θ))
A=Point(ax,ay)
P=Point(px,py)
m=Line(A,P).slope
mySubs={px:cos(θ),py:sin(θ),ax:-2,ay:-1}
A_subs=A.subs(mySubs).simplify()
P_subs=P.subs(mySubs).simplify()
m_subs=m.subs(mySubs).simplify()
print("#",m_subs)
print("#",m_subs.subs({θ: solveset( Eq(Line(A_subs,P_subs).distance(Point(0,0)),1 ),
                                       θ,Interval(st,en)).args[0]        
                      }),
          m_subs.subs({θ:0}))
# (sin(θ) + 1)/(cos(θ) + 2)
# 4/3 1/3

sympyで計算だけ(sympy的?安易なやり方)

maximumとminimum関数でやってみました。

from sympy import *
θ=symbols('θ',Real=True)
f=(1+sin(θ))/(2+cos(θ))
st,en=0,pi
print( "#",maximum(f,θ,Interval(st,en)),minimum(f,θ,Interval(st,en)))
# 4/3 1/3

sympyで計算だけ(微分で解く方法)cosθ=xと置換していません。

diff関数でやってみました。

from sympy import *
θ=symbols('θ',Real=True)
f=(1+sin(θ))/(2+cos(θ))
st,en=0,pi
print("#",f.subs({θ: solveset(diff(f),θ,Interval(st,en)).args[0] }) ,
          min(f.subs({θ:0}),f.subs({θ:pi})) ) 
plot(f,(θ,0,pi))
# 4/3 1/3

0png.png

sympyで計算だけ(微分で解く方法)cosθ=xと置換する。

勉強中。

FreeCADで作図

勉強中。

実行環境

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

参考

以下、増減表作成プログラムについて、調査中。

以下は、私のおすすめです。

>(参考)Wolfram Alpha による数式処理マニュアル<大分大学 理工学部 数理科学コース

0
0
1

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?