код Python для математического графа - PullRequest
0 голосов
/ 25 апреля 2018

написал некоторый код на Python для построения координат простого одномерного линейного отображения, используя matplotlib.

Предупреждений и ошибок нет, но в график не введены координаты.

Может кто-нибудь сказать мне, что не так с моим кодом?

import matplotlib.pyplot as plt
import numpy as np

result = [10]
result[0] = 1
a = 1.1
x = np.linspace(0, 10, 10)

for i in range(len(result)-1):
    result[i+1] = a*(result[i] - 1/2) + 1/2
    plt.plot(x, result[i], 'ro')

plt.xlim(0, 10)

plt.ylim(0, 10)

plt.axhline(0, color='b', ls='-', lw=0.5)

plt.axvline(0, color='b', ls='-', lw=0.5)

plt.xlabel(r'$x$', fontsize=18)

plt.ylabel(r'$x_{n+1}$', fontsize=18)

plt.title(r'Graphs of $x_{n+1} = a(x_{n}-\frac{1}{2}) + \frac{1}{2}$', fontsize=20)

plt.show()

1 Ответ

0 голосов
/ 25 апреля 2018

длина результата равна 1, следовательно, цикл вообще не запускается.

Возможно, вы хотели сделать

result = [0 for i in range(11)]

или

result = np.zeros(11)

когда вы инициируете результат.

(Кредит: abukaj за предложение использовать np.zeros)

Edit:

import matplotlib.pyplot as plt
import numpy as np

result = np.zeros(11)
result[0] = 1
a = 1.1
x = np.linspace(0, 10, 11)

for i in range(len(result)-1):
    result[i+1] = a*(result[i] - 1/2) + 1/2
plt.plot(x, result, 'ro')

plt.xlim(0, 10)
plt.ylim(0, 10)
plt.axhline(0, color='b', ls='-', lw=0.5)
plt.axvline(0, color='b', ls='-', lw=0.5)
plt.xlabel(r'$x$', fontsize=18)
plt.ylabel(r'$x_{n+1}$', fontsize=18)
plt.title(r'Graphs of $x_{n+1} = a(x_{n}-\frac{1}{2}) + \frac{1}{2}$', fontsize=20)
plt.show()

дает мне

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...