x^8+14x^4+1=0「【xを求めよ】←意外と難しいです。」をChatGPTとMathematicaとWolframAlphaとsympyでやってみたい。 

**・WolframAlphaで,すてきな複素平面上の根** のグラフがでます。
    　もしかしたら、方程式の意味は、**奥が深い**？ですか。
・sympyで,和、積がでます。**sympyの複素平面のグラフの勉強中です。**

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

https://youtu.be/1X8vkikUU0Y

上と同じです。大学入試数学問題集成＞テキスト
不明

(2023/07/20)
# xxxx ChatGPT で(できませんでした。) xxx
```
複素数の範囲で解け。x8+14x4+1=0
```
# Mathematicaで
(2023/07/14追加)
```
x /. Solve[x^8 + 14 x^4 + 1 == 0, x]
ComplexListPlot[%]
```

![.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109698/552ef00f-1407-87f0-b019-4f5710732070.png)


# WolframAlphaで
Complex solutions 複素解
**Roots in the complex plane 複素平面上の根**
Sum of roots 解の和
Product of roots 解の積
**すてきな複素平面上の根 グラフ**がでます。

https://www.wolframalpha.com/input?i=x8%2B14x4%2B1%3D0

# sympyで( PASSLABO 様の方法を参考に)
勉強中。難しいです。

# sympyで(sympy的?安易なやり方)
◯　和ができました。
◯　積ができました。
**複素平面の作図を勉強中です。**

＞Sympyにおいては、宣言された文字変数はデフォルトでは複素数として認識されます。

次は、間違っていました。続けて修正版あります。
```python
from sympy import *
x=symbols('x')
# var('x')
f=x**8+14*x**4+1
ans=solve(f)
print("#",len(ans))
print("#",sum(ans))
for ans_i in ans:
    print("#????",ans_i)
prod=1
for ans_i in ans:
    prod=prod*ans_i
print("#????",prod)
# 8
#???? -1/2 - sqrt(2)*sqrt(1 - sqrt(3)*I)/2 + sqrt(3)*I/2
#???? -1/2 + sqrt(2)*sqrt(1 - sqrt(3)*I)/2 + sqrt(3)*I/2
#???? -1/2 - sqrt(3)*I/2 - sqrt(2)*sqrt(1 + sqrt(3)*I)/2
#???? -1/2 - sqrt(3)*I/2 + sqrt(2)*sqrt(1 + sqrt(3)*I)/2
#???? 1/2 - sqrt(2)*sqrt(1 + sqrt(3)*I)/2 + sqrt(3)*I/2
#???? 1/2 + sqrt(2)*sqrt(1 + sqrt(3)*I)/2 + sqrt(3)*I/2
#???? 1/2 - sqrt(3)*I/2 - sqrt(2)*sqrt(1 - sqrt(3)*I)/2
#???? 1/2 - sqrt(3)*I/2 + sqrt(2)*sqrt(1 - sqrt(3)*I)/2
#???? (-1/2 - sqrt(2)*sqrt(1 - sqrt(3)*I)/2 + sqrt(3)*I/2)*(-1/2 + sqrt(2)*sqrt(1 - sqrt(3)*I)/2 + sqrt(3)*I/2)*(-1/2 - sqrt(3)*I/2 - sqrt(2)*sqrt(1 + sqrt(3)*I)/2)*(-1/2 - sqrt(3)*I/2 + sqrt(2)*sqrt(1 + sqrt(3)*I)/2)*(1/2 - sqrt(2)*sqrt(1 + sqrt(3)*I)/2 + sqrt(3)*I/2)*(1/2 + sqrt(2)*sqrt(1 + sqrt(3)*I)/2 + sqrt(3)*I/2)*(1/2 - sqrt(3)*I/2 - sqrt(2)*sqrt(1 - sqrt(3)*I)/2)*(1/2 - sqrt(3)*I/2 + sqrt(2)*sqrt(1 - sqrt(3)*I)/2)
```

**修正しました。** 
コメントで、WolfMoon様に教えてもらいました。ありがとうございました。
```python
from sympy import *
x=symbols('x')
# var('x')
f=x**8+14*x**4+1
ans=solve(f)
print("#",len(ans))
print("#",sum(ans))
for ans_i in ans:
    print("#",ans_i)
myProd=1
for ans_i in ans:
    myProd=myProd*ans_i
print("#",myProd.evalf())
# 8
# 0
# -1/2 - sqrt(2)*sqrt(1 - sqrt(3)*I)/2 + sqrt(3)*I/2
# -1/2 + sqrt(2)*sqrt(1 - sqrt(3)*I)/2 + sqrt(3)*I/2
# -1/2 - sqrt(3)*I/2 - sqrt(2)*sqrt(1 + sqrt(3)*I)/2
# -1/2 - sqrt(3)*I/2 + sqrt(2)*sqrt(1 + sqrt(3)*I)/2
# 1/2 - sqrt(2)*sqrt(1 + sqrt(3)*I)/2 + sqrt(3)*I/2
# 1/2 + sqrt(2)*sqrt(1 + sqrt(3)*I)/2 + sqrt(3)*I/2
# 1/2 - sqrt(3)*I/2 - sqrt(2)*sqrt(1 - sqrt(3)*I)/2
# 1/2 - sqrt(3)*I/2 + sqrt(2)*sqrt(1 - sqrt(3)*I)/2
# 1.00000000000000
```
# sympyの実行環境
①私の環境は,pycharmです。
②よく聞くのは、Jupyterです。
③web上で、上記のソースを「SymPy Live shell」に、コピー貼り付けでもできました。
黒背景の右上に、マウスを移動すると、コピーマークが発生します。
???　タブレット環境で、コピー貼り付けが実行できませんでした。???

https://live.sympy.org/

# 参考
勉強中。

https://www.web-dev-qa-db-ja.com/ja/python/matplotlib%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E8%A4%87%E7%B4%A0%E6%95%B0%EF%BC%88%E3%82%A2%E3%83%BC%E3%82%AC%E3%83%B3%E3%83%88%E5%9B%B3%EF%BC%89%E3%82%92%E3%83%97%E3%83%AD%E3%83%83%E3%83%88%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/1041168212/


＞sympy.simplify.sqrtdenest.sqrtdenest(expr, max_iter=3)

https://docs.sympy.org/latest/modules/simplify/simplify.html#sympy.simplify.sqrtdenest.sqrtdenest

https://oliversi.com/2021/11/04/python-list-production/

• Solve[] など解が複数ある場合の結果は「**置換のルールのリ
スト**」で与えられる。Solve[x^2-4==0,x] と書けば、{{x ->
-2}, {x -> 2}}という答えが得られる。解のリストにした
ければ最初から x /. Solve[x^2-4==0,x] と書いておくと
良い。

https://ankokudan.org/d/dl/pdf/pdf-mathematica.pdf

https://reference.wolfram.com/language/ref/ComplexListPlot.html

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

https://qiita.com/mrrclb48z/items/75904cdc6e84ecef4d03#%E5%8F%82%E8%80%83wolframalpha-%E9%96%8B%E7%99%BA%E7%89%A9%E8%AA%9E