Python чертит функцию с интеграцией - PullRequest
0 голосов
/ 26 февраля 2019

Вот код, который я использую:


import matplotlib.pyplot as plt

from scipy import integrate

import numpy as np


def g(t):


    g_value= integrate.quad (t,0,t)


    return (g_value)



def f(t):

    f_value = t**3 - g(t)

    return (f_value)


t1 = np.arange (-5, 5, 0.1)

plt.figure(1)

plt.subplot(211)

plt.plot(t1, f(t1))

plt.show()

Вот сообщение об ошибке, которое я получил: «ValueError: истинное значение массива с более чем однимэлемент неоднозначен. Используйте a.any () или a.all () "

1 Ответ

0 голосов
/ 26 февраля 2019

Без трансляции это может быть сделано следующим образом.

import numpy as np


def g(t):
    g_value= integrate.quad (lambda t: t, 0, t)
    return (g_value)

def f(t):
    f_value = t**3 - g(t)
    return (f_value)

t1 = np.arange (-5, 5, 0.1)
ft1 = []
for tt in t1:
    ft1.append(f(tt)[0])

plt.figure(1)
plt.subplot(211)
plt.plot(t1, ft1)
plt.show()

Векторизованная версия может быть выполнена следующим образом (упомянуто здесь)

import numpy as np
def g(t):
    g_value= integrate.quad (lambda t: t ,0,t)
    return (g_value)

g_vectorized = np.vectorize(g)

def f(t):
    f_value = t**3 - g_vectorized(t)
    return (f_value)

t1 = np.arange (-5, 5, 0.1)

plt.figure(1)
plt.subplot(211)
plt.plot(t1, f(t1)[0])
plt.show()

Оба из нихрезультат в

enter image description here

...