加法定理「2023岩手大学前期【１】(2)」をWolframAlphaとsympyでやってみたい。

**まず、以下の別ページの問題を先に見て下さい。**

https://qiita.com/mrrclb48z/items/8427945bae3314d558cb

# 以下、勉強中。
減点?解答です。点検用？になりますか。内積。

オリジナル

https://kamelink.com/blog/2023/05/12/3-4-23iwatedai-kyouiku-rikou-nou-1-2/

上と同じです。大学入試数学問題集成＞

https://mathexamtest.web.fc2.com/2023/202310061/2023100610100mj.html#top-0102

# wolframalphaで 
うまくいきませんでした。教えて下さい。**関数があった気がします。**

・グラフがでます。

https://www.wolframalpha.com/input?i=0%3C%CE%B1%3C%CF%80%2C0%3C%CE%B2%3C%CF%80%2Ctan%CE%B1%3D2%2F5%2Ctan%CE%B2%3D-3%2F7%2Ctan%28%CE%B1-%CE%B2%29&lang=ja

・分けて計算しましたが、できませんでした。

https://www.wolframalpha.com/input?i=0%3C%CE%B1%3C%CF%80%2Ctan%CE%B1%3D2%2F5+&lang=ja

解　α = tan^(-1)(2/5)

https://www.wolframalpha.com/input?i=0%3C%CE%B2%3C%CF%80%2Ctan%CE%B2%3D-3%2F7&lang=ja

解　β = π - tan^(-1)(3/7)

https://www.wolframalpha.com/input?i=%CE%B1+%3D+tan%5E%28-1%29%282%2F5%29%2C+++%CE%B2+%3D+%CF%80+-+tan%5E%28-1%29%283%2F7%29++++++++%2Ctan%28%CE%B1-%CE%B2%29&lang=ja

結果 tan(tan^(-1)(2/5) + tan^(-1)(3/7))

# Mathematicaで
勉強中 

# sympyで (1)??? Fractionで(参考あり)
**solveを使わずに、solvesetのInterval**を駆使しています。(参考あり)
```python
from sympy import *
from fractions import Fraction
α,β=symbols("α β",real=True)
α=solveset( Eq(tan(α), 2/5),α,Interval(0,pi) ).args[0]
β=solveset( Eq(tan(β),-3/7),β,Interval(0,pi) ).args[0]
print("#",tan(α-β)   )
print("#",Fraction(float((α-β)/pi))*pi)
# 1.00000000000000
# -3*pi/4
```

# sympyで (2)??? 加法定理 TR12で　(参考あり)
・これが一番自然？オーソドックスな解答でした。
・2変数関数の最大値と最小値の問題になりますか? 勉強中。

```python
from sympy import *
from sympy.simplify.fu import TR12
a,b=symbols("a b",real=True)
f=tan(α-β)
mySubs={tan(α):2/5,tan(β):-3/7}
print("#",TR12(f)              )
print("#",TR12(f).subs(mySubs) )
# (tan(α) - tan(β))/(tan(α)*tan(β) + 1)
# 1.00000000000000
```

# sympyで (3)??? 内積で
よくわからなくなったので、マイナスをつけました。
```python
from sympy import *
O=Point( 0,0)
A=Point( 5,2)
B=Point(-7,3)
ans=acos( (A-O).dot(B-O)/(A.distance(O)*B.distance(O) ) )
print("#",-ans,tan(-ans,))
# -3*pi/4 1
```

# sympyで　(4)??? 「The angle between two lines」でやってみたい。　
・ 教科書に,m1,m2と書いてありました。
・「逆三角関数の主値(英:Principal values)」の壁？
http://www.ftext.org/text/subsubsection/2417

https://qiita.com/mrrclb48z/items/42a8f5e8e6ff63303a50

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

# sympyで (5) floatで
degreeで
```python
from sympy import *
from fractions import Fraction
α,β=symbols("α β",real=True)
α_deg=float(solveset( Eq(tan(α), 2/5),α,Interval(0,pi) ).args[0]*180/pi)
β_deg=float(solveset( Eq(tan(β),-3/7),β,Interval(0,pi) ).args[0]*180/pi)
print("#",α_deg,β_deg,α_deg-β_deg)
print("#",Fraction((α_deg-β_deg)/180)*pi,tan( Fraction((α_deg-β_deg)/180)*pi ))
# 21.80140948635181 156.80140948635182 -135.0
# -3*pi/4 1
```

# 過去問
＞α,βは鋭角で、
＞α,βが第1象限の角で、

https://kamelink.com/exam/index.php?%BF%F4%B3%D8II%A1%A6B%A5%C1%A5%A7%A5%C3%A5%AF%A1%F5%A5%EA%A5%D4%A1%BC%A5%C8%A1%A1%C2%E83%BE%CF%A1%A1%A1%F81%B2%C3%CB%A1%C4%EA%CD%FD%A1%A13.%B2%C3%CB%A1%C4%EA%CD%FD

# 参考

https://qiita.com/mrrclb48z/items/5b1f1946f20ecbca3628

・Fractionについて
＞このページではPythonで分数を扱う方法について解説します。
＞sympyの
Rationalで分数を扱うことができます。
分数においては標準ライブラリのFractionよりリストなどの要素の場合でも文字列表現が簡潔で見やすいというメリットがあります。
https://www.python.ambitious-engineer.com/archives/3813

・Combine tan arguments as (tan(y) + tan(x))/(tan(x)*tan(y) - 1) -> -tan(x + y).
https://docs.sympy.org/latest/modules/simplify/fu.html#sympy.simplify.fu.TR12i

・solveset
https://docs.sympy.org/latest/modules/solvers/solveset.html