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

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

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

https://youtu.be/d0nETLXt8Lo

(2023/07/21)
# xxxx ChatGPT で(できませんでした。) xxx
入力文
```
0<=θ<=πであるθに対して(1+sinθ)/(2+cosθ)の最大値、最小値を求めよ
```

# Mathematicaで
```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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109698/18f9810c-0662-2019-cea5-cbaacafddc20.png)

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

https://www.wolframalpha.com/input?i=%281%2Bsin%CE%B8%29%2F%282%2Bcos%CE%B8%29%2C0%3C%3D%CE%B8%3C%3D%CF%80+%E6%A5%B5%E5%80%A4&lang=ja

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

https://www.wolframalpha.com/input?i=%5B2+tan%5E%28-1%29%283%29%5D*+%28180+Degree+%2FPi%29&lang=ja

結果 143.1° (度)

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

https://ja.wolframalpha.com/input?i=0%3C%3D%CE%B8%3C%3D%CF%80%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%281%2Bsin%28%CE%B8%29%29%2F%282%2Bcos%28%CE%B8%29%29%E3%81%AE%E5%80%A4%E5%9F%9F++

上の英語版

https://ja.wolframalpha.com/input?i=range+of+%281%2Bsin%28%CE%B8%29%29%2F%282%2Bcos%28%CE%B8%29%29+restricted+to+0%3C%3D%CE%B8%3C%3D%CF%80&lang=en


# sympyで計算だけ(PASSLABO様のやり方)図形的にとらえてみた。
教えて下さい。以下は、無理矢理感があります。
```python
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関数でやってみました。
```python
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関数でやってみました。
```python
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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109698/f13f132a-aa98-c41e-2046-39f756471d78.png)

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

# FreeCADで作図
勉強中。

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

https://live.sympy.org/

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

https://qiita.com/mrrclb48z/items/f98d7ea0f664768790ed

https://qiita.com/mrrclb48z/items/1a19cb83815bca42c3c4

https://mathematica.stackexchange.com/questions/147141/convert-radian-to-degree-and-add

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

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

https://qiita.com/mrrclb48z/items/75904cdc6e84ecef4d03#:~:text=jst.go.jp/-,(,-%E5%8F%82%E8%80%83)Wolfram%20Alpha