Построение графика из формулы физики (без файлов данных), Python и Numpy - PullRequest
0 голосов
/ 01 октября 2018

В моем коде постоянно появляется следующая ошибка:

"unsupported operand type(s) for ^: 'float' and 'int'"

Я пытался выполнить // в формуле, чтобы избавиться от чисел с плавающей точкой, но это не сработало.Я пытаюсь построить график функции V(ru).Я не знаю границ, за исключением того, что V должно начинаться после 0.Единственное, в чем я не уверен - это ограничения linspace и x и y.Может кто-нибудь сказать мне, связана ли моя ошибка с этими строками, а если нет, то с какой?Также кто-нибудь знает почему, даже если он показывает свой простой линейный график?

import matplotlib.pyplot as plt
import numpy

r_data = numpy.linspace(1, 50)

def V(ru):
    rm = 2**(1/6)
    return ((rm/ru)**0.5)-(2*((rm/ru)^6))

v_data = numpy.linspace(V(1), v(50))

plt.plot(r_data, v_data)
plt.xlim(1, 50)
plt.ylim(V(1), V(50))

1 Ответ

0 голосов
/ 01 октября 2018

У вас было две опечатки: Первый : ^ вместо **, потому что в питоне последний используется для повышения способностей и Второй , v вместо V.Измененные строки были помечены хэштегом #.Полученные вами ошибки не имеют ничего общего с xlim или ylim, но с синтаксисом.

import matplotlib.pyplot as plt
import numpy

r_data = numpy.linspace(1, 50)

def V(ru):
    rm = 2**(1/6)
    return ((rm/ru)**0.5)-(2*((rm/ru)**6)) # ^ replaced by **

v_data = numpy.linspace(V(1), V(50)) # v(50) replaced by V(50)

plt.plot(r_data, v_data)
plt.xlim(1, 50)
plt.ylim(V(1), V(50))

enter image description here

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