前提・実現したいこと
python 初心者です.
matplotlibを使用してグラフを描いています.出力として描けているもののエラーが出ています.
宜しくお願い致します.
発生している問題・エラーメッセージ
関数を描写するプログラムを走らせたところ,グラフとして描かれるものの,Python shellの方でエラーが出てしまいます.
#エラー部分 Warning (from warnings module): File "C:\Users\owner\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\core\numeric.py", line 501 return array(a, dtype, copy=False, order=order) ComplexWarning: Casting complex values to real discards the imaginary part
該当のソースコード
Python
1 2import numpy as np 3import matplotlib.pyplot as plt 4from sympy import * 5 6init_printing() 7 8plt.grid(True) 9plt.xlabel('$x$', fontsize=16) 10plt.ylabel('$theta$', fontsize=16) 11plt.title('upper die') 12 13#縦横比1:1 14plt.gca().set_aspect('equal', adjustable='box') 15 16x = Symbol('x') 17R=-19.41053 18k=-59.85017 19A=0.00032903849 20B=-5.2456616*10**(-6) 21C=-9.3112502*10**(-8) 22D=4.1876359*10**(-9) 23E=3.0521463*10**(-11) 24F=7.4771618*10**(-13) 25c=1/R 26 27# 計算式 28z =-(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) 29 30prime_z = Derivative(z, x).doit() 31 32a = Symbol('a') 33z_a = z.subs(x, a) # f(a) 34prime_z_a = prime_z.subs(x, a) # f'(a) 35tangent = prime_z_a * (x - a) + z_a # 点 (a, f(a)) の接線 36normal = (-1 / prime_z_a) * (x - a) + z_a # 点 (a, f(a)) の法線 37theta = deg(atan(-1 / prime_z_a)) # 法線の角度 38 39xs = np.arange(0.01, 7, 0.01) 40thetas = np.array([complex(theta.subs(a, t)) for t in xs]) 41 42# 横軸の変数。縦軸の変数。 43plt.plot(xs, thetas+90) 44 45# 描画実行 46plt.show() 47
###グラフ
補足情報(FW/ツールのバージョンなど)
python3.6を使用しています.
解決方法がわかっていないので,ご協力お願い致します.

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/17 04:37
2018/12/17 04:42
2018/12/17 05:33
2018/12/17 07:18
2018/12/17 07:45 編集
2018/12/19 02:47