Как создать и построить кусочную функцию

Я пытаюсь создать сюжет из нескольких функций, но не знаю, как их отформатировать в python. Расскажите пример ниже, пытаясь построить букву A, используя 3 функции с определенными значениями x:

import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-5,-4)
x2=np.linspace(-4,-3)
x3=np.linspace(-4.5,-3.5)
y=2*x+10
y2=-2*x2-6
y3=np.ones(len(x3))
plt.plot(x, y)
plt.plot(x2, y2)
plt.plot(x3,y3)
plt.show()

Как вы можете видеть, мне пришлось создать диапазон значений x для каждой функции в отдельности, а также определить каждую функцию отдельно для каждой строки. Затем пришлось построить каждый из них независимо. При попытке сказать, скажем ... 50 функций, это может стать очень утомительным. Математически, есть упрощенный простой способ написать выше (IE Piecewise функции). Где некоторое f (x) равно 2 * x + 10 для -5 <x <-4, -2 * x-6 для -4 <x <-3 и т. Д. Тогда в идеале я бы хотел иметь возможность построить каждый в моей кусочной функции f (x).

Я просто немного незнаком с форматированием, поэтому любая помощь будет принята с благодарностью! Спасибо!

Всего 1 ответ


Для начала вы можете создать список конечных точек, используя ваши формулы в цикле for . Затем создайте список пар для отрезков. Хороший способ присвоения (x1, y1) ... был бы namedtuple('Point', ['x', 'y']) .

from collections import namedtuple

Наконец, еще один цикл для построения отрезков. Вы можете оптимизировать.


Есть идеи?

10000