Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Символьные вычисления в Python. Основы работы с библиотекой SymPy. Учебно-методическое пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Рис. 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]