Построение графика функции с тремя переменными +
Объясните, пожалуйста, как это сделать-нарисовать график, если аж три переменные, соответсвенно график будет на осях x,y,z
С чего начинать.. короче, кааак?
в гуугл уж, пожалуйста, не посылайте, уже ходили.. А действительно полезные ссылки, с нужной информацией очень приветствуются.
Голосование за лучший ответ
Графиком будет поверхность. Берем z=0, подставляем в уравнение, на плоскости XOY строим график с переменными x,y (отметить точки на осях, они будут совпадать для других плоскостей)
Берем x=0, подставляем в уравнение, на плоскости ZOY строим график с переменными z,y
Берем y=0, подставляем в уравнение, на плоскости ZOX строим график с переменными z,x
Удачи!
. Мастер (1779) 12 лет назад
но а что делать, если такое вот «дано»: x=y^2 + z^2, где x=1, z=1
Контр.-счетн.палата Респ АдыгеяЗнаток (483) 7 месяцев назад
Если честно, не понял. Переменных три: x,y,z. 3-х мерная поверхность получится при 2 переменных f(x,y). А при трех переменных это будет f(x,y,z) — 4-х мерная поверхность. Ее уж ну никак не изобразить в нашем 3-х мерном мире.
Как построить график от трех переменных
Построить график функции трех переменных
Добрый день! Нужно построить 3D график функции потенциала v(x, y, z). Вроде в коде ошибок нет.
Как построить объемную фигуру от трех переменных
Здравствуйте! Подскажите, пожалуйста, как построить объемную фигуру, от трех перемеренных.
Как построить график от 3-х переменных
Доброго всем время суток. Может кто подскажет как построить график описываемый тремя переменными.
1642 / 1493 / 495
Регистрация: 13.09.2015
Сообщений: 5,191
SalavatGood, а как вы представляете график от трёх переменных? Это должен быть четырёхмерный график.
Регистрация: 18.12.2018
Сообщений: 422
Centurio, можно же выразить какую нибудь переменную из функции:
Только вот как?
1642 / 1493 / 495
Регистрация: 13.09.2015
Сообщений: 5,191
Сообщение от SalavatGood 
можно же выразить какую нибудь переменную из функции
Тогда это будет функция от двух переменных. Так что вам нужно?
Регистрация: 18.12.2018
Сообщений: 422
Просто построить график функции на Matlab:
1642 / 1493 / 495
Регистрация: 13.09.2015
Сообщений: 5,191
SalavatGood, это будет четырёхмерный график. Можно построить только некие «срезы» четырёхмерного графика в трёхмерном пространстве.
416 / 200 / 69
Регистрация: 20.01.2019
Сообщений: 713
SalavatGood, Как то так
1 2 3
interval = [-3 3]; f = @(x,y,z) x + cos(y) - x.^2 .* sin(z.^2) - 0.2; fimplicit3(f,interval)
Регистрация: 18.12.2018
Сообщений: 422
Вообще я относительно недавно взялся за matlab, и у меня задача состоит в том, чтобы найти начальное приближение СНАУ графически. Вот по этой СНАУ надо построить график функций:
Однако, когда я пытался построить график для 1-го уравнения():
1 2 3
[x y] = meshgrid(0:0.1:1); z = (x + x^2 - 0.1)/-2*y; plot3(x,y,z)
У меня получилось график из прямых линий. По поводу начального приближения мне сказали это:
Если задана система из двух нелинейных уравнений с двумя неизвестными, то во многих случаях (но не всегда) можно построить графики функций каждого из уравнений. Графики строятся по точкам. Часто берутся целые числа или какие-либо иные (всё зависит от вида уравнений системы). Кроме того используются свойства самих уравнений заданной системы (периодичность, чётность, нули функций (пересечение с осями координат), и так далее)
Точки пересечения двух графиков и есть искомые начальные значения.
Представление данных в виде точечной диаграммы или графика
Точечные диаграммы и графики очень похожи друг на друга, особенно если точечная диаграмма отображается с соединительными линиями. Однако способ печати данных по горизонтальной оси (также известной как ось X) и вертикальной оси (ось Y) очень отличается.
Примечание: Сведения о разных типах точек и графиков см. в таблице Типы диаграмм в Office.
Прежде чем выбрать один из этих типов диаграмм, вам может потребоваться узнать больше о различиях и узнать, когда лучше использовать точечная диаграмма вместо графика или наоборот.
Различия между точечными диаграммами и графиками
Основное различие между точечная и графиками заключается в способе их отстройки на горизонтальной оси. Например, если использовать следующие данные листа для построения точечной диаграммы и графика, они будут представлены по-разному:
На точечной диаграмме значения суточного количества осадков из столбца A отображаются в виде значений X на горизонтальной оси (X), а показатели содержания твердых частиц из столбца B — в виде значений на вертикальной оси (Y). На точечной диаграмме категории никогда не отображаются на горизонтальной оси.
На точечной диаграмме всегда есть две оси значений, то есть один набор числовых данных представлен вдоль горизонтальной оси, а другой — вдоль вертикальной. На пересечении координат X и Y отображается точка данных, объединяющая эти два числовых значения. Такие точки данных могут быть распределены по горизонтальной оси равномерно или неравномерно, в зависимости от конкретных данных.
Первая точка данных на точечной диаграмме представляет значение Y (содержание частиц), равное 137, и значение X (суточная норма осадков), равное 1,9. Эти числа представляют значения в ячейках A9 и B9 на листе.
На графике те же значения суточного количества осадков и содержания частиц будут показаны как две разные точки данных, которые равномерно распределяются вдоль горизонтальной оси. Дело в том, что на графике есть только одна ось значений (вертикальная ось). Горизонтальная ось графика предназначена для отображения группировок (категорий) данных с равномерными интервалами. Так как категории не были заданы, они генерируются автоматически, например 1, 2, 3 и т. д.
Это наглядный пример ситуации, когда график использовать не следует.
На графиках данные категории равномерно распределяются вдоль горизонтальной оси (оси категорий), а все числовые значения откладываются по вертикальной оси (оси значений).
Значение Y (содержание частиц), равное 137 (ячейка B9), и значение X (суточное количество осадков), равное 1,9 (ячейка A9), показаны на графике двумя разными точками данных. Ни одна из этих точек данных не является первой точкой данных, отображаемой на диаграмме. Вместо этого первая точка данных для каждого значения ряд данных ссылается на значения в первой строке данных на этом сайте (ячейки A2 и B2).
Различия между типами и шкалами осей
Так как горизонтальная ось точечной диаграммы всегда является осью значений, на ней можно показывать числа и даты (в том числе дни и часы), представляемые в виде числовых значений. Чтобы отображать числовые значения вдоль горизонтальной оси с большей гибкостью, можно изменить параметры ее шкалы аналогично тому, как изменяется настройка шкалы вертикальной оси.
Поскольку горизонтальная ось графика — это ось категорий, она может быть только осью текста или осью дат. На оси текста отображается только текст (нечисловые данные или числовые категории, не являющиеся значениями) с равномерными интервалами. На оси дат отображаются даты в хронологическом порядке через заданные интервалы (базовые единицы измерения), такие как число дней, месяцев или лет, даже если даты на листе расположены в ином порядке или выражены в других единицах.
Набор параметров шкалы оси категорий ограничен по сравнению с параметрами шкалы оси значений. Доступные параметры шкалы также зависят от типа используемой оси.
Когда следует использовать точечную диаграмму или график
Точечные диаграммы обычно используются для отображения и сравнения числовых значений, например научных, статистических и инженерных данных. На таких диаграммах удобно демонстрировать связь между числовыми значениями, входящими в разные ряды данных; на диаграмме можно показать две группы чисел в виде одной последовательности точек.
Графики позволяют представить непрерывный ряд информации в динамике по времени на стандартной шкале; они идеально подходят для отображения трендов данных с фиксированными равными интервалами или непрерывно с течением времени. На графике данные категорий равномерно распределены по горизонтальной оси, а все данные значений также равномерно распределены вдоль вертикальной оси. График обычно используется, если данные включают нечисловые значения X, а в случае числовых значений X лучше использовать точечную диаграмму.
Точечную диаграмму целесообразно использовать, если необходимо сделать следующее:
- Изменить шкалу горизонтальной оси. Так как горизонтальная ось точечной диаграммы является осью значений, для нее доступно больше параметров шкалы.
- Использовать логарифмическую шкалу на горизонтальной оси. Горизонтальную ось можно перевести в логарифмическую шкалу.
- Отобразить данные листа, состоящие из пар или группированных наборов значений. На точечной диаграмме можно регулировать независимые шкалы осей, чтобы показать больше информации о сгруппированных значениях.
- Показать особенности распределения данных в крупных наборах. С помощью точечных диаграмм удобно иллюстрировать особенности распределения данных, например показывать линейные и нелинейные тренды, кластеры и отклонения.
- Сравнить большое количество точек данных без учета времени. Чем больше данных включено в точечную диаграмму, тем точнее будет проводимое сравнение.
Используйте график вместо точечной диаграммы, если необходимо сделать следующее:
- Использовать текстовые подписи на горизонтальной оси. Такими подписями можно помечать значения, разделенные равными интервалами, например месяцы, кварталы или финансовые годы.
- Использовать несколько числовых подписей на горизонтальной оси. Если используется небольшое число расположенных с равными промежутками числовых подписей, обозначающих интервалы времени, например годы, можно выбрать график.
- Использовать временную шкалу на горизонтальной оси. Если требуется отобразить данные в хронологическом порядке с определенными интервалами или в базовых единицах измерения, таких как число дней, месяцев или лет, даже если даты на листе не упорядочены или выражены в других единицах, используйте график.
Примечание: Следующая процедура относится к Office 2013 и более новой версии. Действия для Office 2010?
Создание точечной диаграммы
Как же была создана эта точечная диаграмма? Создать похожую диаграмма поможет следующая процедура. Для этой диаграммы были использованы данные листа-примера. Вы можете скопировать эти данные на свой лист или использовать собственные данные.
Совет: Чтобы увидеть название какого-либо типа диаграммы, наведите на него указатель.

- Чтобы добавить название горизонтальной оси, щелкните Основной горизонтальный.
- Чтобы добавить название вертикальной оси, щелкните Основная вертикальная.
- Щелкните каждое название, введите нужный текст и нажмите ввод.
- Чтобы отформатировать дополнительные параметры, на вкладке Формат в поле Элементы диаграммы выберите название из списка и нажмите кнопку Формат выделения. Появится области Формат названия. Щелкните Размер & свойства
, а затем выберите Вертикальное выравнивание, Направлениетекста или Настраиваемый угол.

- На вкладке Разметка страницы в группе Темы нажмите кнопку Темы.

- В области Officeвыберите тему, которую вы хотите использовать.
Создание графика
Как же был создан этот график? Создать похожий график поможет следующая процедура. Для этой диаграммы были использованы данные листа-примера. Вы можете скопировать эти данные на свой лист или использовать собственные данные.
Создание точечная диаграммы или графика в Office 2010
Создание точечная диаграммы (Office 2010)
Как же была создана эта точечная диаграмма? Создать похожую диаграмма поможет следующая процедура. Для этой диаграммы были использованы данные листа-примера. Вы можете скопировать эти данные на свой лист или использовать собственные данные.
Совет: Чтобы увидеть название какого-либо типа диаграммы, наведите на него указатель.
- Чтобы добавить название горизонтальной оси, щелкните Название основной горизонтальной оси и Название под осью.
- Чтобы добавить название вертикальной оси, щелкните Название основной вертикальной оси и выберите нужный тип названия. Для данной точечной диаграммы мы выбрали Повернутое название.
- Щелкните каждое название, введите нужный текст и нажмите ввод. Для данной точечной диаграммы мы ввели Суточное количество осадков в качестве названия горизонтальной оси и Содержание твердых частиц в качестве названия вертикальной оси.
- На вкладке Разметка страницы в группе Темы нажмите кнопку Темы.
- В группе Встроенные выберите тему, которую вы хотите использовать. Для графика использовалась тема Office.
Создание графика в Office 2010
Как же был создан этот график? Создать похожий график поможет следующая процедура. Для этой диаграммы были использованы данные листа-примера. Вы можете скопировать эти данные на свой лист или использовать собственные данные.
Создание точечной диаграммы
- Выберите данные, которые нужно отобрать на диаграмме.
- На вкладке Вставка нажмите кнопку Точечная диаграмма X Yи в области Точечная выберитедиаграмму.
- Выбрав диаграмму, перейдите на вкладку Конструктор диаграмм, чтобы сделать следующее:
- Нажмите кнопку Добавить элемент диаграммы, чтобы изменить такие сведения, как название, метки и легенда.
- Нажмите кнопку Быстрый макет, чтобы выбрать один из предопределельных наборов элементов диаграммы.
- Чтобы изменить макет или стиль, щелкните одно из изображений для предварительного просмотра в коллекции стилей.
- Нажмите кнопку Строка/столбецили Выберите данные, чтобы изменить представление данных.
- Выбрав диаграмму, щелкните вкладку Конструктор, чтобы при желании изменить заливку фигуры, контур или эффекты элементов диаграммы.
Создание графика
- Выберите данные, которые нужно отобрать на диаграмме.
- На вкладке Вставка нажмите кнопку Линияи выберите один из доступных стилей графиков.
- Выбрав диаграмму, перейдите на вкладку Конструктор диаграмм, чтобы сделать следующее:
- Нажмите кнопку Добавить элемент диаграммы, чтобы изменить такие сведения, как название, метки и легенда.
- Нажмите кнопку Быстрый макет, чтобы выбрать один из предопределельных наборов элементов диаграммы.
- Чтобы изменить макет или стиль, щелкните одно из изображений для предварительного просмотра в коллекции стилей.
- Нажмите кнопку Строка/столбецили Выберите данные, чтобы изменить представление данных.
- Выбрав диаграмму, щелкните вкладку Конструктор, чтобы при желании изменить заливку фигуры, контур или эффекты элементов диаграммы.
Пострение графиков
Фундаментальная задача программирования — вычисление математических и, в частности, алгебраических функций. Казалось бы, что проще? Однако, запись выражения на языке математики не принимается напрямую языком программирования. Выражение нужно написать в виде, который будет понятен тому или иному языку программирования.
Например, y = x², должно быть записано как y = x*x или y = x**2 .
Упражнение №1
Запишите выражение, заданное формулой, в виде, подходящем для языка Python.

и найдите его значения в точках 1, 10, 1000.
Для вычисления математических функций мы не будем использовать стандартную библиотеку math. Т.к. она не работает с векторами. В нашем случае разумней обратить внимание на библиотеку numpy. Данная библиотека обеспечивает удобную работу с векторам.
Т.е., если у нас есть вектор x=[1, 2, 3, 4] и мы вызовим numpy.log(x), то логарифм будет взят от каждого элемента списка и возвращен будет список значений.
Аналогичная функция в модуля math ожидает число, т.е. нельзя сделать math.log(x), нужно делать math.log(x[0]) и т.д.
Традиционно библиотека numpy подключается командой:
import numpy as np
Данный вызов сообщает, что подключить numpy под псевдонимом np. Это делается, чтобы не писать каждый раз:
numpy.cos(x)
np.cos(x)
Такой код, с более коротким именем библиотеки, элементарно, проще читать.
Основные математические функции и константы функии, которые нам понадобятся из numpy:
| Функция библиотеки math | Математическая функция |
|---|---|
| np.pi | Число pi |
| np.e | Число e |
| np.cos | Косинус |
| np.sin | Синус |
| np.tan | Тангенс |
| np.acos | Арккосинус |
| np.asin | Арксинус |
| np.atan | Арктангенс |
| np.exp | Экспонента |
| np.log | Логарифм |
Функция log вычисляет натуральный логарифм. Чтобы вычислить логарифм по другому основанию, нужно воспользоваться формулой перехода. Например, если мы хотим получить логарифм x по основанию 2, нужно написать:
np.log(x) / np.log(2)
Построение графиков
matplotlib — набор дополнительных модулей (библиотек) языка Python. Предоставляет средства для построения самых разнообразных 2D графиков и диаграмм данных. Отличается простотой использования — для построения весьма сложных и красочно оформленных диаграмм достаточно нескольких строк кода. При этом качество получаемых изображений более чем достаточно для их публикования. Также позволяет сохранять результаты в различных форматах, например Postscript, и, соответственно, вставлять изображения в документы TeX. Предоставляет API для встраивания своих графических объектов в приложения пользователя.
Пример построения графика функции:
import numpy as np import matplotlib.pyplot as plt x = np.arange(-10, 10.01, 0.01) plt.plot(x, x**2) plt.show()

На одном рисунке можно построить несколько графиков функций:
import numpy as np import matplotlib.pyplot as plt x = np.arange(-10, 10.01, 0.01) plt.plot(x, np.sin(x), x, np.cos(x), x, -x) plt.show()

Также довольно просто на график добавить служебную информацию и отобразить сетку:
import numpy as np import matplotlib.pyplot as plt x = np.arange(-10, 10.01, 0.01) plt.plot(x, np.sin(x), x, np.cos(x), x, -x) plt.xlabel(r'$x$') plt.ylabel(r'$f(x)$') plt.title(r'$f_1(x)=\sin(x),\ f_2(x)=\cos(x),\ f_3(x)=-x$') plt.grid(True) plt.show()

Или используя legend() , где можно указать место расположения подписей к кривым на графике в параметре loc . Подписи могут быть явно переданы legend((line1, line2, line3), (‘label1’, ‘label2’, ‘label3’)) или могут быть переданы в аргумет label , как в примере ниже. Чтобы сохранить график нужно воспользоваться savefig(figure_name) , где figure_name явлется строкой назания файла с указанием расширения. Для текстовых полей можно изменять шрифт ( fontsize ), для большей читаемости графика, а его размер указывается с помощью figure(figsize=(10, 5)) .
import numpy as np import matplotlib.pyplot as plt x = np.arange(-10, 10.01, 0.01) plt.figure(figsize=(10, 5)) plt.plot(x, np.sin(x), label=r'$f_1(x)=\sin(x)$') plt.plot(x, np.cos(x), label=r'$f_2(x)=\cos(x)$') plt.plot(x, -x, label=r'$f_3(x)=-x$') plt.xlabel(r'$x$', fontsize=14) plt.ylabel(r'$f(x)$', fontsize=14) plt.grid(True) plt.legend(loc='best', fontsize=12) plt.savefig('figure_with_legend.png') plt.show()

Текстовые поля в matplotlib могут содержать разметку LaTeX, заключенную в знаки $. Буква r перед кавычками говорит python, что символ «\» следует оставить как есть и не интерпретировать как начало спецсимвола (например, перевода строки — «\n»).
Работа с matplotlib основана на использовании графических окон и осей (оси позволяют задать некоторую графическую область). Все построения применяются к текущим осям. Это позволяет изображать несколько графиков в одном графическом окне. По умолчанию создаётся одно графическое окно figure(1) и одна графическая область subplot(111) в этом окне. Команда subplot позволяет разбить графическое окно на несколько областей. Она имеет три параметра: nr , nc , np . Параметры nr и nc определяют количество строк и столбцов на которые разбивается графическая область, параметр np определяет номер текущей области ( np принимает значения от 1 до nr*nc ). Если nr*nc
import numpy as np import matplotlib.pyplot as plt x = np.arange(-10, 10.01, 0.01) t = np.arange(-10, 11, 1) #subplot 1 sp = plt.subplot(221) plt.plot(x, np.sin(x)) plt.title(r'$\sin(x)$') plt.grid(True) #subplot 2 sp = plt.subplot(222) plt.plot(x, np.cos(x), 'g') plt.axis('equal') plt.grid(True) plt.title(r'$\cos(x)$') #subplot 3 sp = plt.subplot(223) plt.plot(x, x**2, t, t**2, 'ro') plt.title(r'$x^2$') #subplot 4 sp = plt.subplot(224) plt.plot(x, x) sp.spines['left'].set_position('center') sp.spines['bottom'].set_position('center') plt.title(r'$x$') plt.show()

График может быть построен в полярной системе координат, для этого при создании subplot необходимо указать параметр polar=True :
import numpy as np import matplotlib.pyplot as plt plt.subplot(111, polar=True) phi = np.arange(0, 2*np.pi, 0.01) rho = 2*phi plt.plot(phi, rho, lw=2) plt.show()

Или может быть задан в параметрической форме (для этого не требуется никаких дополнительных действий, поскольку два массива, которые передаются в функцию plot воспринимаются просто как списки координат точек, из которых состоит график):
import numpy as np import matplotlib.pyplot as plt t = np.arange(0, 2*np.pi, 0.01) r = 4 plt.plot(r*np.sin(t), r*np.cos(t), lw=3) plt.axis('equal') plt.show()

График функции двух переменных может быть построен, например, так:
from mpl_toolkits.mplot3d import axes3d import matplotlib.pyplot as plt import numpy as np ax = axes3d.Axes3D(plt.figure()) i = np.arange(-1, 1, 0.01) X, Y = np.meshgrid(i, i) Z = X**2 - Y**2 ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10) plt.show()

Добавление текста на график: Команду text() можно использовать для добавления текста в произвольном месте (по умолчанию координаты задаются в координатах активных осей), а команды xlabel() , ylabel() и title() служат соответственно для подписи оси абсцисс, оси ординат и всего графика. Для более полной информации смотрите «Text introduction» раздел на оф. сайте.
import numpy as np import matplotlib.pyplot as plt mu, sigma = 100, 15 x = mu + sigma * np.random.randn(10000) # the histogram of the data n, bins, patches = plt.hist(x, 50, density=True, facecolor='g', alpha=0.75) plt.xlabel('Smarts') plt.ylabel('Probability') plt.title('Histogram of IQ') plt.text(60, .030, r'$\mu=100,\ \sigma=15$') plt.text(50, .033, r'$\varphi_<\mu,\sigma^2>(x) = \frac <\sigma\sqrt<2\pi>> \,e^< -\frac<(x- \mu)^2>> = \frac \varphi\left(\frac\right),\quad x\in\mathbb $', fontsize=20, color='red') plt.axis([40, 160, 0, 0.04]) plt.grid(True) plt.show()

plot() — универсальная команда и в неё можно передавать произвольное количество аргументов. Например, для того, чтобы отобразить y в зависимости от x , можно выполнить команду:
import matplotlib.pyplot as plt plt.plot([1, 2, 3, 4], [1, 4, 9, 16]) plt.show()

Каждую последовательность можно отобразить своим типом точек:
import numpy as np import matplotlib.pyplot as plt # равномерно распределённые значения от 0 до 5, с шагом 0.2 t = np.arange(0., 5., 0.2) # красные чёрточки, синие квадраты и зелёные треугольники plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^') plt.show()

Также в matplotlib существует возможность строить круговые диаграммы:
import numpy as np import matplotlib.pyplot as plt data = [33, 25, 20, 12, 10] plt.figure(num=1, figsize=(6, 6)) plt.axes(aspect=1) plt.title('Plot 3', size=14) plt.pie(data, labels=('Group 1', 'Group 2', 'Group 3', 'Group 4', 'Group 5')) plt.show()

И аналогичным образом столбчатые диаграммы:
import numpy as np import matplotlib.pyplot as plt objects = ('A', 'B', 'C', 'D', 'E', 'F') y_pos = np.arange(len(objects)) performance = [10,8,6,4,2,1] plt.bar(y_pos, performance, align='center', alpha=0.5) plt.xticks(y_pos, objects) plt.ylabel('Value') plt.title('Bar title') plt.show()

Цветовые карты используются, если нужно указать в какие цвета должны окрашиваться участки трёхмерной поверхности в зависимости от значения Z в этой области. Цветовую карту можно задать самому, а можно воспользоваться готовой. Рассмотрим использование цветовой карты на примере графика функции z(x,y)=sin(x)*sin(y)/(x*y) .
import pylab from mpl_toolkits.mplot3d import Axes3D from matplotlib import cm import numpy def makeData(): x = numpy.arange(-10, 10, 0.1) y = numpy.arange(-10, 10, 0.1) xgrid, ygrid = numpy.meshgrid(x, y) zgrid = numpy.sin(xgrid)*numpy.sin(ygrid)/(xgrid*ygrid) return xgrid, ygrid, zgrid x, y, z = makeData() fig = pylab.figure() axes = Axes3D(fig) axes.plot_surface(x, y, z, rstride=4, cstride=4, cmap=cm.jet) pylab.show()

Альтернативой к использованию mpl_toolkits.mplot3d является библиотека plotly , которая позволяет интерактивно взаимодействовать с графиком, поворачивая его или увеличивая некоторую область в пространсте.
Функция eval()
В Python есть встроенная функция eval() , которая выполняет строку с кодом и возвращает результат выполнения:
>>> eval("2 + 3*len('hello')") 17 >>>
Это очень мощная, но и очень опасная инструкция, особенно если строки, которые вы передаёте в eval , получены не из доверенного источника. Если строкой, которую мы решим скормить eval() , окажется «os.system(‘rm -rf /’)» , то интерпретатор честно запустит процесс удаления всех данных с компьютера.
Упражнение №2
Постройте график функции
и по графику найдите найдите корни уравнения y(x) = 0. (Не нужно применять численных методов — просто приблизьте график к корням функции настолько, чтобы было удобно их найти.)
Упражнение №3
Постройте график функции

Упражнение №4
Используя функцию eval() постройте график функции, введённой с клавиатуры. Чтобы считать данные с клавиатуры, используйте функцию input() . Попробуйте включить эффект «рисование от руки» посредством вызова plt.xkcd() . Посольку эта функция применяет некоторый набор настроек, избавиться от которых впоследствие не так просто, удобнее использовать ее как «контекстный менеджер» — это позволяет применить настройки временно, только к определенному блоку кода. Для этого используется ключевое слово with:
with plt.xkcd(): plt.pie([70, 10, 10, 10], labels=('В комментариях', 'В Ираке', 'В Сирии', 'В Афганистане')) plt.title('Где ведутся самые ожесточенные бои')

Отображение погрешностей
С помощью метода plt.errorbar можно рисовать точки с погрешностями измерений, как для лабораторных работ. Погрешности по осям абсцисс и ординат задаются в параметрах (соответственно) xerr и yerr .
import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [0.99, 0.49, 0.35, 0.253, 0.18] plt.errorbar(x, y, xerr=0.05, yerr=0.1) plt.grid() plt.show()

Альтернативой для plt.errorbar может слудить plt.fill_between , который заполняет область графика между кривыми, чтобы регулировать прозрачность используется аргумент alpha . Это число из отрезка [0, 1], на которое домножоается интенсивность цвета заполнения между кривыми.
import numpy as np import matplotlib.pyplot as plt x = np.arange(0, 10, 0.01) plt.plot(x, x**2, label=r'$f = x^2$') plt.scatter(x, x**2 + np.random.randn(len(x))*x, s=0.3) plt.fill_between(x, 1.3*x**2, 0.7*x**2, alpha=0.3) plt.legend(loc='best') plt.savefig('figure_fill_between.png') plt.show()

В уже использованном модуле numpy есть метод polyfit, позволяющий приближать данные методом наименьших квадратов. Он возвращает погрешности и коэффициенты полученного многочлена.
x = [1, 2, 3, 4, 5, 6] y = [1, 1.42, 1.76, 2, 2.24, 2.5] p, v = np.polyfit(x, y, deg=1, cov=True) >>> p array([0.28517032, 0.80720757]) >>> v array([[0.00063242, -0.00221348], [-0.00221348, 0.00959173]])
Многочлен задается формулой p(x) = p[0] * x**deg + . + p[deg]
Для того, чтобы не выписывать каждый раз руками эту формулу для разных степеней, есть функция poly1d , которая возвращает функцию полинома, описанного точками p. Возвращенная функция может принимать на вход не только число, но и список значений, в таком случае, будет вычислено значение функции в каждой точке списка и возвращен список результатов.
p_f = np.poly1d(p) p_f(0.5) p_f([1, 2, 3])
Упражнение №5
Приблизить данные из приведённого примера с погрешностями или свои собственные (из лабораторного практикума по общей физике) многочленами первой и второй степени. Начертить точки с погрешностями и полученные аппроксимационные кривые на одном графике.
Упражнение №6 *
Постройте график функции Вейерштрасса
Сайт построен с использованием Pelican. За основу оформления взята тема от Smashing Magazine. Исходные тексты программ, приведённые на этом сайте, распространяются под лицензией GPLv3, все остальные материалы сайта распространяются под лицензией CC-BY.
