@Lord_North

Как обойти ошибку: ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()?

Привет! У меня не получается построить график функции g (x). Эта функция имеет условия. Ошибка в том, что х, как видно в скрипте, это массив значений, поэтому я не могу сравнивать его с числами. Нужно сравнивать отдельный элемент по очереди, но у меня не получается. Буду рад помощи!
import numpy as np
import matplotlib.pyplot as plt

def f(x):
    i=3.0
    a=1.0
    return (i+x)/(2.5*i+x**i)+a*(sin(x))**(i+1)
def g(x):
    i=3.0
    a=1.0
    g = (i+x)/(2.5*i+x**i)+a*(sin(x))**(i+1)
    if x<-0.5:
        g=0
    return g
x = linspace(-1, 1, 51)

plt.plot(x, f(x), label='f(x)')
plt.plot(x, g(x), label='g(x)')

# декоративная часть
plt.xlabel('t')
plt.ylabel('y')
plt.title('Plotting two curves in the same plot')
plt.legend()

plt.show()
  • Вопрос задан
  • 4444 просмотра
Решения вопроса 2
longclaps
@longclaps
Функция с условиями - это уже не функция. Выкинь её нафиг.
#metoo
Ответ написан
Комментировать
@0pauc0
Непонятно, что выдает у вас linspace(-1, 1, 51), чем является x.
Ну и в функции g у вас неприятность - вы переменную с таким же именем используете.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы