前提・実現したいこと
python 初心者です.
ある関数に対して微分したもののグラフを表示したいのです.
知識のある方,お助けお願い致します.
発生している問題・エラーメッセージ
インターネットなどでやり方を探しているのですが,初心者ということもあり,いまいち理解できていません.
該当のソースコード
Python
1#微分したグラフ 2 3import numpy as np 4import matplotlib.pyplot as plt 5 6# 描画範囲の指定 7# x = np.arange(x軸の最小値, x軸の最大値, 刻み) 8x = np.arange(0, 6.28, 0.1) 9 10plt.grid(True) 11plt.xlabel('$x$', fontsize=16) 12plt.ylabel('$Z$', fontsize=16) 13plt.title('upper die') 14 15#縦横比1:1 16plt.gca().set_aspect('equal', adjustable='box') 17 18R=-19.41053 19k=-59.85017 20A=0.00032903849 21B=-5.2456616*10**(-6) 22C=-9.3112502*10**(-8) 23D=4.1876359*10**(-9) 24E=3.0521463*10**(-11) 25F=7.4771618*10**(-13) 26c=1/R 27 28from sympy import Symbol, Derivative 29#xを変数xに指定 30x=Symbol('x') 31 32#関数入力 33z=-(c*x**2/(1+(1-(1+k)*c**2*x**2)**(1/2))+A*x**2+B*x**4+C*x**6+D*x**8+E*x**10+F*x**12) 34#入力関数を指定変数で微分 35Z=Derivative(z,x).doit() 36 37# 横軸の変数。縦軸の変数。 38plt.plot(x,Z) 39 40# 描画実行 41plt.show()
これを入力すると
>>> #入力関数を指定変数で微分 ... Z=Derivative(z,x).doit() >>> >>> # 横軸の変数。縦軸の変数。 ... plt.plot(x,Z) Traceback (most recent call last): File "<stdin>", line 2, in <module> File "C:\Users\owner\Anaconda3\envs\python3.6\lib\site-packages\matplotlib\pyplot.py", line 3363, in plot ret = ax.plot(*args, **kwargs) File "C:\Users\owner\Anaconda3\envs\python3.6\lib\site-packages\matplotlib\__init__.py", line 1867, in inner return func(ax, *args, **kwargs) File "C:\Users\owner\Anaconda3\envs\python3.6\lib\site-packages\matplotlib\axes\_axes.py", line 1529, in plot self.add_line(line) File "C:\Users\owner\Anaconda3\envs\python3.6\lib\site-packages\matplotlib\axes\_base.py", line 1960, in add_line self._update_line_limits(line) File "C:\Users\owner\Anaconda3\envs\python3.6\lib\site-packages\matplotlib\axes\_base.py", line 1982, in _update_line_limits path = line.get_path() File "C:\Users\owner\Anaconda3\envs\python3.6\lib\site-packages\matplotlib\lines.py", line 956, in get_path self.recache() File "C:\Users\owner\Anaconda3\envs\python3.6\lib\site-packages\matplotlib\lines.py", line 652, in recache x = _to_unmasked_float_array(xconv).ravel() File "C:\Users\owner\Anaconda3\envs\python3.6\lib\site-packages\matplotlib\cbook\__init__.py", line 2052, in _to_unmasked_float_array return np.asarray(x, float) File "C:\Users\owner\Anaconda3\envs\python3.6\lib\site-packages\numpy\core\numeric.py", line 501, in asarray return array(a, dtype, copy=False, order=order) File "C:\Users\owner\Anaconda3\envs\python3.6\lib\site-packages\sympy\core\expr.py", line 225, in __float__ raise TypeError("can't convert expression to float") TypeError: can't convert expression to float >>> >>> # 描画実行 ... plt.show()
のようなエラーが出ます...
また出力される画像は
この様なものです..
知恵を授けて頂けると幸いです.宜しくお願い致します.
補足情報(FW/ツールのバージョンなど)
python3.6を使用しています.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/11 12:28
2018/12/11 12:39
2018/12/11 13:43 編集
2018/12/12 06:30