Обход линейного графика

#python #python-3.x #numpy #matplotlib #neural-network

#python #python-3.x #numpy #matplotlib #нейронная сеть

Вопрос:

Прямо сейчас я пытаюсь продемонстрировать функцию затрат и задаюсь вопросом, есть ли способ обойти параболу, добавив график в тот же подзаголовок и рисунок.

 def costfuntion(b, a):
    # b Value
    x = np.linspace(b*(-b), b*(b), 100)
    y = (x - a)**2
    return y
  

Моя попытка построения графика:

 plt.plot(costfuntion(20,5))
plt.ylabel("Cost Value");

#b = 'some b value'
plt.plot(b, marker='o', color='b')
  

Что я пытаюсь имитировать
(Приблизительно: 1:13)

введите описание изображения здесь

Ответ №1:

Поскольку y значения зависят от a значений, вам нужно указать a для y поиска. Рассмотрим следующее:

 def costfunction(b, a):
    # b Value
    x = np.linspace(b*(-b), b*(b), 100)
    y = (x - a)**2
    return x, y
a = 5
c = costfunction(20, a)
plt.plot(c[0], c[1], linestyle='-', linewidth=1)
plt.ylabel("Cost Value");

b = 100
yb = (b - a)**2    # Find the corresponding y-value
plt.plot(b, yb, marker='o', color='b')
plt.show()
  

Это даст вам

Функция затрат с трассировщиком

Вы также можете заметить, что я изменил costfunction определение, чтобы возвращать x значения, в противном случае matplotlib будет просто использовать любые значения, которые ему заблагорассудятся.

Ответ №2:

 def costfuntion(b, a):
    # b Value
    x = np.linspace(b*(-b), b*(b), 100)
    y = (x - a)**2
    return x, y

x, y = costfuntion(20,5)
plt.plot(x, y)
for i in range(0, len(x), 2):
    plt.plot(x[i], y[i], marker='o', color='b')
  

Измените функцию стоимости, чтобы возвращать как x , так и y функции, которую вы строите, и используйте эту информацию для построения точек на функции.