Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Символьные вычисления в Python. Основы работы с библиотекой SymPy. Учебно-методическое пособие
.pdf
Рис. 2.18. Графики двух 3D-кривых, заданных параметрически
Для построения графика функции, заданной параметрически, используют оператор plot3d_parametric_surface(expr_x, expr_y, expr_z,
range_u, range_v, **kwargs), для построения нескольких таких графиков – оператор plot3d_parametric_surface((expr_x, expr_y, expr_z,
range_u, range_v), ..., **kwargs). Аргументы функции: expr_x,
expr_y и expr_z – выражения, задающие значения по осям X, Y и Z соот-
ветственно; range_u, range_v – кортежи, задающие пределы изменения u и v (по умолчанию от -10 до 10).
Пример 2.15. Построить сферу радиусом ρ = 5.
Решение. Запишем уравнение сферы:
)
cos cos
cos sin , , , 0,2 .
22
sin
x
y
z
=
= −
=
Код программы для ее построения:
from sympy import symbols, cos, sin, pi
from sympy.plotting import plot3d_parametric_surface
φ,θ = symbols('φ θ')
plot3d_parametric_surface(5*cos(φ)*cos(θ),5*cos(φ)*sin(θ),
5*sin(φ),(φ, -pi/2, pi/2), (θ, 0, 2*pi))
91

Рис. 2.19. Построение трехмерной поверхности, координаты
которой заданы параметрически
Пример 2.16. Построить тор:
1.5cos (cos 4)
1.5sin (cos 4) , , , ,
1.5sin
x
y
z
=+
= + − −
=
и спираль
cos (cos 5)
sin (cos 5) , 2 ,2 , ,
sin
x
y
z
=+
= + − −
=+
в одном графиче-
ском окне.
Решение:
from sympy import symbols, cos, sin, pi
from sympy.plotting import plot3d_parametric_surface
φ,θ = symbols('φ θ')
plot3d_parametric_surface((1.5*cos(φ)*(cos(θ)+4),
1.5*sin(φ)*(cos(θ)+4),
1.5*sin(θ),(φ, -pi, pi), (θ, -pi, pi)),
(cos(φ)*(cos(θ)+5),sin(φ)*(cos(θ)+5),
sin(θ)+φ,(φ, -2*pi, 2*pi), (θ, -pi, pi)),size=(8,4))
92

93
Рис. 2.20. Графики двух поверхностей
2 . 3 . К л а с с P l o t G r i d
Для разбиения графического окна на несколько подокон используют функцию PlotGrid. Ее синтаксис: PlotGrid(nrows, ncolumns, *args,
show=True, size=None, **kwargs). Это аналог функции subplot() библиотеки Matplotlib. Параметрами функции являются количество окон по
вертикали и горизонтали. Нумерация подокон ведется слева направо
и сверху вниз.
Пример 2.17. Разбить графическое окно на три подокна и в каж-
дом из них построить свой график.
Решение:
from sympy import *
from sympy.plotting import *
t= symbols('t')
x=8*cos(t)**2;y=8*sin(t)**3;
p4=plot_parametric((x, y), (t, -pi, pi),line_color = 'red',show=False)
x= symbols('x ')
p5=plot(x*sin(x)**2,x*cos(x),(x,1,3),legend=True,show=False)
p5[0].line_color = 'red'

94
p5[1].line_color = 'g'
x, y = symbols('x y')
p6=plot_implicit(And(y + x<=1, x*y<=4/25,y-x<1/2),(x,0,1),(y,0,1),
line_color='gray',show=False)
PlotGrid(1,3,p4,p5,p6)
Рис. 2.21. Три графика в разных подокнах
З а д а н и я д л я с а м о с т о я т е л ь н о й р а б о т ы
Задание 1. Построить график функции. Задать цвет линии, вывести на график подписи по осям, легенду. Текст легенды задать с помощью параметра label:
sin
1. sin ( ), [ 12,12]. 2. 2 , [ 3,3]. 3. sin( ), [ 4,4].
x
x
y c x x y x x y e x x= − = + − = −
22
4. ln sin( ), [1,8]. 5. , [ 5,5]. 6. , [1,12].
11
xx
y x x x x y x y x
xx
= = − =
++
2
22
1 sin
7. sin( ), [ 1,4]. 8. , [ 5,5]. 9. , [ 1,6].
11
x
x e x
y x x x y x y x
xx
−
= − = − = −
++

95
2
ln 2
4 3 1
10. , [1,3]. 11. , [1,15]. 12. , [ 3,3].
91
x
x
xx
y x x y x y x
xx
−−
= = = −
++
22
13. 6, [ 5,3]. 14. 4 3 , [ 2,6]. 15. ( 3), [ 4,4].y x x x y x x x y x x x= − − − = − − − = − −
( )
22
16. 6 , [ 5,3]. 17. 6 , [ 4,4]. 18. ( 3) , [ 4,4].
x
y x x x y x x y x x x
x
= − − − = + − = − −
( )
5
19. 2 cos( ), [0,5]. 20. cos 6 , [0,6]. 21. sin 2 ln , [2,5].
x
y x x y x x y x x x
−
= = + =
23
3
33
22. sin ( ) 2 , [2,5]. 23. , [ 5,5]. 24. sin ( ), [ 2,3].
3
x
xx
x
y x x y x y e x x
x
−
= = − = −
+
Задание 2. Построить графики двух полиномов Лежандра в одном графическом окне линиями разного цвета. Степень первого полинома взять равным μ + 2, второго – равным ν + 6. График построить на
интервале [0, 1]. Вывести на график его название, подписи осей и легенду с указанием степени полинома. Уравнения полиномов также вывести на экран.
Задание 3. Построить график функции, заданной параметрически:
2
( ) (2 )
( ) 2cos( )
1. , [ 0.5, 2.1]. 2. , [ 2 , 2 ].
( ) 3sin( )
( ) (2 )
x t t t
x t t
tt
y t t
y t t t
=−
=
− −
=
=−
3
4
3
4
( ) 3 2
( ) 3cos( ) 3
1
3. , [ 2 ,2 ]. 4. , [ 50, 50].
( ) 3sin( ) 4
( ) 3 2
1
tt
xt
x t t
t
tt
y t t
tt
yt
t
+
=
=+
+
− −
=−
−
=
+
22
( ) 2cos ( ) cos( ) ( ) 2cos ( ) cos( )
5. , [ , ]. 6. , [ , ].
( ) 2sin( )cos( ) ( ) ( ) 2sin( )cos( ) ( )
x t t t x t t t
tt
y t t t sit t y t t t sit t
= + = − +
− −
= + = − +
22
( ) 2cos ( ) 3cos( ) ( ) 2cos ( ) 2cos( )
7. , [ , ]. 8. , [ , ].
( ) 2sin( )cos( ) 3 ( ) ( ) 2sin( )cos( ) 3sin( )
x t t t x t t t
tt
y t t t sit t y t t t t
= + = − +
− −
= + = − +
( ) 2cos( ) cos(2 ) ( ) 2cos( ) cos(2 )
9. , [ , ]. 10. , [ , ].
( ) 2sin( ) sin(2 ) ( ) 2sin( ) sin(2 )
x t t t x t t t
tt
y t t t y t t t
= + = −
− −
= + = −
( ) cos( ) sin( ) ( ) cos( ) sin( )
3
11. , [0, ]. 12. , [0,10 ].
( ) sin( ) cos( ) ( ) sin( ) cos( )
2
x t t t t x t t t t
tt
y t t t t y t t t t
= + = +
= − = −
33
22
3
33
( ) ( )
11
13. , [0, 20]. 14. , [0, 5].
33
( ) ( )
11
t
tt
x t x t
tt
tt
tt
y t y t
tt
==
++
==
++

96
( ) 6cos( ) cos(6 ) ( ) 3cos( ) cos(3 )
15. , [0, 2 ]. 16. , [0, 2 ].
( ) 6sin( ) sin(6 ) ( ) 3sin( ) sin(6 )
x t t t x t t t
tt
y t t t y t t t
= − = −
= − = −
( ) 3cos(2 ) cos(6 ) ( ) 3cos( ) cos(6 )
17. , [0, 2 ]. 18. , [0, 2 ].
( ) 4sin(2 ) sin(6 ) ( ) 3sin( ) sin(6 )
x t t t x t t t
tt
y t t t y t t t
= − = −
= − = −
( ) 5cos( ) cos(5 ) ( ) 9cos( ) cos(9 )
19. , [0, 2 ]. 20. , [0, 2 ].
( ) 5sin( ) sin(5 ) ( ) 9sin( ) sin(9 )
x t t t x t t t
tt
y t t t y t t t
= + = +
= − = −
2
2
( 3)
( ) sin(2 )
()
21. , [ 1,1]. 22. , [0, 2 ].
3
( ) cos( )
()
tt
x t t
xt
tt
y t t
y t t
−
=
=
−
=
=
2
( ) cos( )
( ) 5cos( ) 4cos(4 )
23. , [ , ]. 24. , [ 2, 2].
( ) 6sin( ) 3cos(2 )
( ) cos(2 )
x t t t
x t t t
tt
y t t t
y t t t
=
=−
− −
=−
=
Задание 4. Построить графики четырех функций в одном графи-
ческом окне без наложения их друг на друга. К двум из них добавить
легенды и подписи по осям. В остальных двух задать цвет линий графиков.
Задание 5. Построить график трехмерной поверхности. Устано-
вить размеры графического окна. Задать названия осей графика:
22
1. , [ 4,4], [ 4,4]. 2. sin( ), [ 2,2], [ 2,2].
14 16
xy
z x y z xy x y= − − − = − −
32
22
3. , [ 4,4], [ 4,4]. 4. sin( ), [ 2,2], [ 2,2].
15 30
xy
z x y z x y x y= − − − = + − −
22
5. sin , [ 3,3], [ 4,4]. 6. sin( ) , [ 3,3], [ 2,2].z y x x y z xy y x y= − − = + − −
2 2 4 2
7. , [ 3,3], [ 4,4]. 8. , [ 3,3], [ 4,4].z x y x y z x y x y= + − − = + − −
22
9. ( ) , [ 2,2], [ 2,2]. 10. ln , [1,10], [ 2,2].z x y x y z y x x y= + − − = −
11. cos ln , [1,10], [2,4]. 12. cos , [1,10], [ 2,2].z x y x y z y x x y= = −
sin cos
13. sin( ), [ 2,1], [2,3]. 14. , [3,5], [2,3].
x
xy x
z e xy x y z x y
yx
= − = +
2
15. cos( ), [3,7], [2,3]. 16. sin cos( ), [3,7], [2,5].z x x y x y z x y x x y= + = +
sin( )
17. , [ 2,2], [2,3]. 18. sin cos( ), [ 2,2], [2,3].
xy
z e x y z x y y x x y= − = + −
4 4 2 4
19. , [ 2,2], [ 2,2]. 20. sin cos( ), [ 2,2], [ 2,2].z x y x y z y x y x x y= − − − = + − −

22
21. sin , [ 1,1], [ 2,2]. 22. sin( ), [ 1,1], [ 2,2].z x tgx y x y z x tgx xy x y= − − = − −
2
ln sin
23. sin ( ), [ 1,1], [0,2]. 24. , [2,8], [3,9].
xy
z y x y x y z x y
x
= + − =
Задание 6. Построить график поверхности, координаты которой
заданы параметрически.
97

Л И Т Е Р А Т У Р А
1. Любанович, Б. Простой Python. Современный стиль программирования / Б. Любанович. – 2-е изд. – Санкт-Петербург: Питер, 2021. –
592 с.
2. Титов, А. Н. Python. Обработка данных / А. Н. Титов, Р. Ф. Тазиева. – Казань: Изд-во КНИТУ, 2022. – 104 с.
3. Математическая библиотека Python SymPy. –
URL: https://pythonru.com/biblioteki/sympy-v-python.
4. Борю, С. Ю. Модули и пакеты в Python: учеб.-метод. пособие
для студентов естественно-научных специальностей / С. Ю. Борю. – Запорожье: ЗНУ, 2021. – 286 с.
5. Документация Sympy 1.12. – URL: https://docs.sympy.org/lat-
est/index.html.
6. Линейная алгебра: учеб. пособие / Н. В. Гредасова, М. А. Ко-
решникова, Н. И. Желонкина [и др.]. – Екатеринбург: Изд-во Урал.
ун-та, 2019. – 88 с.
7. Жорданова нормальная форма матриц: методические указания
к выполнению индивидуальных домашних заданий / сост. Л. Н. Прокофьев. – Самара: Изд-во Самар. гос. аэрокосм. ун-та, 1996. – 24 с.
8. Умнов, А. Е. Основы теории обыкновенных дифференциальных уравнений: учеб. пособие / А. Е. Умнов, Е. А. Умнов. – Москва:
МФТИ, 2022. – 326 с.
9. Романова, Л. Д. Интегральные преобразования: учеб. пособие /
Л. Д. Романова, Т. А. Шаркунова, Т. В. Елисеева. – Пенза: Изд-во ПГУ,
2015. – 80 с.
10. Титов, А. Н. Визуализация данных в Python. Работа с библио-
текой Matplotlib: учеб.-метод. пособие / А. Н. Титов, Р. Ф. Тазиева. –
Казань: Изд-во КНИТУ, 2022. – 92 с.
11. Блинова, И. В. Кривые, заданные параметрически и в полярных координатах: учеб. пособие / И. В. Блинова, И. Ю. Попов. – СанктПетербург: Университет ИТМО, 2017. – 56 с.
98

УЧЕБНОЕ ИЗДАНИЕ
Андрей Николаевич Титов
Рамиля Фаридовна Тазиева
СИМВОЛЬНЫЕ
ВЫЧИСЛЕНИЯ В PYTHON
ОСНОВЫ РАБОТЫ
С БИБЛИОТЕКОЙ SYMPY
Редактор Л. А. Муравьева
Компьютерная верстка и макет – А. К. Рахманкулова
99

Подписано в печать 15.06.2023
Формат 6084 1/16
Бумага офсетная
Печать цифровая
5,81 усл. печ. л.
6,25 уч.-изд. л.
Тираж 400 экз.
Заказ 39/23
Издательство Казанского национального исследовательского
технологического университета
Отпечатано в офсетной лаборатории Казанского национального
исследовательского технологического университета
420015, Казань, К. Маркса, 68
100
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
