Pythonで無限級数を可視化(グラフで表示)できないか企んでいます。以下の無限級数
TeX
1\sum_{n=1}^{\infty} x^n
をPythonで実行し、その一般項(?)を表示させてからグラフにしたいです。
Python
1Fx=sym.Sum(x**n, (n, 1, oo)) 2print(Fx) 3print(sym.factor(Fx.subs([(n, oo)]).doit()))
として実行すると、
txt
1Sum(x**n, (n, 1, oo)) 2Piecewise((x/(-x + 1), Abs(x) < 1), (Sum(x**n, (n, 1, oo)), True))
と返してくれたのでここまでは万歳!だったのですが、その後に
Python
1import matplotlib.pyplot as plt 2from matplotlib.image import imread 3 4plt.plot(Fx) 5pli.show()
として実行すると、
txt
1Traceback (most recent call last): 2 File "pra.py", line 46, in <module> 3 plt.plot(Fx) 4 File "/usr/local/lib/python3.7/site-packages/matplotlib/pyplot.py", line 3363, in plot 5 ret = ax.plot(*args, **kwargs) 6 File "/usr/local/lib/python3.7/site-packages/matplotlib/__init__.py", line 1867, in inner 7 return func(ax, *args, **kwargs) 8 File "/usr/local/lib/python3.7/site-packages/matplotlib/axes/_axes.py", line 1529, in plot 9 self.add_line(line) 10 File "/usr/local/lib/python3.7/site-packages/matplotlib/axes/_base.py", line 1960, in add_line 11 self._update_line_limits(line) 12 File "/usr/local/lib/python3.7/site-packages/matplotlib/axes/_base.py", line 1982, in _update_line_limits 13 path = line.get_path() 14 File "/usr/local/lib/python3.7/site-packages/matplotlib/lines.py", line 956, in get_path 15 self.recache() 16 File "/usr/local/lib/python3.7/site-packages/matplotlib/lines.py", line 657, in recache 17 y = _to_unmasked_float_array(yconv).ravel() 18 File "/usr/local/lib/python3.7/site-packages/matplotlib/cbook/__init__.py", line 2052, in _to_unmasked_float_array 19 return np.asarray(x, float) 20 File "/usr/local/lib/python3.7/site-packages/numpy/core/numeric.py", line 501, in asarray 21 return array(a, dtype, copy=False, order=order) 22 File "/usr/local/lib/python3.7/site-packages/sympy/core/expr.py", line 256, in __float__ 23 raise TypeError("can't convert expression to float") 24TypeError: can't convert expression to float
と返ってきて涙目です。どこか間違いがあるでしょうか?
`plt.plot()` は「数値」を渡してグラフを描画するための関数なので、今回のような「数式」処理の用途では使うことができません。エラーが発生している理由はこれです。
それはそれとして、無限級数を可視化するにあったってどういうグラフを作りたいのか(なにを横軸にしてなにを縦軸にするのか、など)が不明なので回答できません。
回答1件
あなたの回答
tips
プレビュー