MathematicaのSimplify
WolframAlphaのsimplify
>xについての仮定があるとSimplifyを使ってさらに簡約できる:
https://reference.wolfram.com/language/ref/Simplify.html.ja?source=footer
sympyのsimplify
事例 ド・モアブルの定理
WolfMoon様より
>結果を見て実行するということでしょう。
https://qiita.com/WolfMoon/items/ad6b23cc72b5b340f27c#comment-4d2f56afa3fe59ef76ef
当初,私は、結果毎にsimplifyを実行が必要な事の意味がわかりませんでした。
無条件 で、結果にsimplifyをしてくれたらいいのにと思っていました。
ところが、以下のド・モアブルの定理で、
https://qiita.com/mrrclb48z/items/0ca9b513c007b2e297f2#:~:text=%E5%8B%89%E5%BC%B7%E4%B8%AD-,sympy,-%E3%81%A7
>「真の7倍角の公式」
https://examist.jp/legendexam/2016yokohamasiritu/
「真の7倍角の公式」のケースの時、困るケースがあるみたいです。
勝手に簡略化のしすぎ?は、困ります。でしょうか。
以下の「ド・モアブルの定理」
f=g,#4#で止まってほしい。 無条件だと、simplifyの#5#は行き過ぎ。
いいですね。
(でも,simplifyの行き過ぎでも、一つ前に戻る?simplify2があっても、いいような気がしました。)
from sympy import *
θ=symbols('θ',real =True)
k=symbols('k',integer=True)
k=7
f=expand_trig(sin(k*θ))
print("#1#",f)
print("#2#",f.simplify())
print("#3#",f.simplify().expand())
print()
g=im((cos(θ)+I*sin(θ))**k)
print("#4#",g)
print("#5#",g.simplify())
print()
print("#6#",(f-g))
print("#7#",(f-g).expand() )
print("#8#",(f-g).simplify())
#1# -64*sin(θ)**7 + 112*sin(θ)**5 - 56*sin(θ)**3 + 7*sin(θ)
#2# (-64*sin(θ)**6 + 112*sin(θ)**4 - 56*sin(θ)**2 + 7)*sin(θ)
#3# -64*sin(θ)**7 + 112*sin(θ)**5 - 56*sin(θ)**3 + 7*sin(θ)
#4# -sin(θ)**7 + 21*sin(θ)**5*cos(θ)**2 - 35*sin(θ)**3*cos(θ)**4 + 7*sin(θ)*cos(θ)**6
#5# -57*sin(θ)**7 + 91*sin(θ)**5 - 35*sin(θ)**3 + 7*sin(θ)*cos(θ)**6
#6# -63*sin(θ)**7 - 21*sin(θ)**5*cos(θ)**2 + 112*sin(θ)**5 + 35*sin(θ)**3*cos(θ)**4 - 56*sin(θ)**3 - 7*sin(θ)*cos(θ)**6 + 7*sin(θ)
#7# -63*sin(θ)**7 - 21*sin(θ)**5*cos(θ)**2 + 112*sin(θ)**5 + 35*sin(θ)**3*cos(θ)**4 - 56*sin(θ)**3 - 7*sin(θ)*cos(θ)**6 + 7*sin(θ)
#8# 0