У меня очень простой код, и я пытаюсь построить полученный результирующий массив pos
как функцию t
, но я получаю случайную ошибку Unicode.У меня никогда не было этой ошибки раньше, и я не понимаю, что это значит или почему она появится в этом коде:
import numpy as np
import matplotlib.pyplot as plt
h = 0.5
x_0 = 1
w = 1
t = np.arange(0, 20, h)
pos, v = np.zeros(len(t)), np.zeros(len(t))
pos[0], v[0] = x_0, 0
def a(pos):
return -w**2 * pos
for i in range(1, len(t)):
# Stormer-Verlet method
pos[i] = pos[i-1] + h*(v[i-1] + 0.5*h*a(pos[i-1]))
v[i] = v[i-1] + 0.5*h*a(pos[i-1]) + 0.5*h*a(pos[i])
# Plotting position as a function of time
plt.plot(t, pos, label='Störmer-Verlet approximation')
В строке plt.plot
я получаюэта ошибка: UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 2: ordinal not in range(128)
.Я также напечатал pos
и подтвердил, что это массив, как и ожидалось, с длиной 100 (такой же длины, что и t
).Кто-нибудь знает, почему это происходит?