前提
pythonで平方根の折れ線グラフを作成しています。
実現したいこと
ニュートン法によって2の平方根を求め、配列x1に保存する。
勾配降下法によって2の平方根を求め、配列x2に保存する。
配列x1と配列x2を用いて一つの折れ線グラフを作成する。
発生している問題・エラーメッセージ
ValueError: x and y must have same first dimension, but have shapes (101,) and (1,)
該当のソースコード
python
import numpy as np import matplotlib.pyplot as plt kk = 100 xold = 3 for k in range(kk): delta = -(xold*xold-2)/(2*xold) xnew = xold + delta x1=xnew xold = xnew x2 = np.empty(kk+1) x2[0] = 3 eta = 0.001 for k in range(kk): delta = -4.0*x2[k]*(2 - x2[k]**2) x2[k+1] = x2[k] - eta*delta plt.figure(figsize=(10, 6)) k = np.arange(0, kk+1) plt.plot(k,x1, linestyle = "dashdot", label = "x1") plt.plot(k,x2, linestyle = "dashed", label = "x2") plt.title("line graph", fontsize=20) plt.xlabel("x", fontsize=16) plt.ylabel("y", fontsize=16) plt.legend() plt.savefig("gurafu.png")
試したこと
恐らく
k = np.arange(0, kk+1)
plt.plot(k,x1, linestyle = "dashdot", label = "x1")
が間違っているのだと思い色々と試してみたがわからない。
補足情報(FW/ツールのバージョンなど)
Visual Studio Code
回答1件
あなたの回答
tips
プレビュー