Программные средства компьютерной математики. Практикум. Учебное пособие
.pdf
10) |
( ) = 3 |
+ |
|
|
+ 1 |
|
( ) = 2 |
− |
|
|
|
|
|
( ) |
|
|
|||||||||||
11) |
( ) = |
|
|
|
|
|
|
( ) = 2 |
+ |
|
|
|
|
|
( ) |
|
|
||||||||||
9) |
( ) = |
|
− |
sin |
, |
|
|
( ) = 2 |
|
|
sin |
|
|
|
|
; |
|
||||||||||
12) |
|
|
|
|
|
, |
|
− |
|
sin |
|
( ) |
|
||||||||||||||
13) |
( ) = |
cos |
sin |
|
|
|
|
|
|
|
|
|
|
|
|
; |
|
||||||||||
|
|
|
(, ) = − 2 |
|
|
|
|
|
|
; |
|
|
|
; |
|
||||||||||||
14) |
( ) = 1 + |
cos |
|
, |
( ) = 2 |
|
|
|
|
sin |
|
|
|
|
|||||||||||||
|
|
sin |
, |
|
|
|
|
− sin |
|
; |
|
||||||||||||||||
|
|
cos |
|
, |
|
|
|
|
|
|
; |
|
|
|
− |
|
|
|
|
( ) |
|
||||||
15) |
( ) = 3 |
|
+ |
|
|
|
(, |
|
|
( ) = 2 |
|
|
|
|
|
|
|
||||||||||
16) |
( ) = 3 |
|
|
sin |
|
|
) = 2 |
+ 1 |
|
|
|
|
|
; |
|
|
|
|
; |
|
|||||||
17) |
( ) = |
|
+ cos |
|
, |
( ) = 3 |
|
; |
+cos |
|
|
|
|
||||||||||||||
18) |
|
|
sin |
|
, |
|
|
, |
( ) = 2 |
|
|
|
|
|
|
|
|
|
|
|
|
||||||
( ) = 2 − |
|
|
cos |
|
− sin( ). |
|
|||||||||||||||||||||
|
( ) = 2 − |
) = |
( |
( ) = 2 − ( ) |
); |
||||||||||||||||||||||
2), 8), 14) |
( , |
|
|
|
− |
|
) cos |
|
( |
|
|
+ |
|||||||||||||||
3. Построить график поверхности. |
|
|
+ |
) |
|
||||||||||||||||||||||
3), 9), 15) |
( |
|
, |
|
) = |
( |
|
− |
|
) |
|
; |
|
( |
|
|
; |
||||||||||
1), 7) , 13) |
( |
|
|
|
|
|
|
|
|
|
|
|
|
|
sin |
|
|
|
|
|
|
|
|||||
5), 11), 17) |
( |
|
, |
|
) = 2 |
( |
− |
) + 4xy ; |
. |
||||||||||||||||||
6), 12), 18) |
( , |
|
) = 3 |
( |
+ |
|
|
|
+ 5xy) |
|
|||||||||||||||||
4), 10), 16) |
( , ) = 2 |
( |
+ + 5 |
|
|
|
) |
− 1 |
|||||||||||||||||||
|
, |
|
) = 3 ( |
|
+ |
|
) |
|
|
|
|
; |
|
|
|
|
|
||||||||||
Практическая работа № 2. Способы символьных вычислений
Цель работы: изучить способы символьных вычислений.
Теоретические сведения
Преобразования выражений осуществляется при помощи команд на панели "Математика" (рис. 9).
Рис. 9
11
Преобразование тригонометрических выражений
Функция trigexpand раскладывает все тригонометрические и гиперболические функции от сумм и произведений в комбинации соответствующих функций единичных углов и аргументов. Для усиления пользовательского контроля один вызовtrigexpand выполняет упрощение на одном уровне. Для управления вычислением имеется флаг trigexpand. Изначально флаг trigexpand установлен в false. Если флаг trigexpand установить в true, то функция trigexpand будет работать до тех пор, пока выражение не перестанет меняться.
Рассмотрим пример разложения функции sin(2x) на множи-
|
Затемsin(2 · |
) |
|
тели. Введем исходную функцию: |
|
||
(%i1) |
(2·x); |
|
|
(%o1) |
на панели Математика (рис. 9) выбираем |
команду |
|
|
|||
Разложить (триг). После этого результат разложения выражения |
|||
|
2 · cos( |
) · sin( ) |
|
появится чуть ниже в виде: |
|
||
(%i3) |
trigexpand(%); |
|
|
(%o3) |
|
. |
|
|
Символьные |
операции возможны лишь над |
каким-либо |
объектом (выражением, его частью или отдельной переменной). Для того чтобы правильно осуществить желаемое аналитическое преобразование, предварительно необходимо записать команду разложения написать перед объектом, к которому оно будет относиться. Например, если в выражении sin(2x) + cos(2x) выделить
|
sin(2x) − sin(x) + cos(x) |
|
|
только второе слагаемое, то разложится только оно: |
|||
(%i5) |
sin(2·x)+trigexpand(cos(2· ); |
||
(%o5) |
|
|
. |
Если выражение не поддается аналитическим преобразова- |
|||
(%i11) |
(x) |
|
|
(%o10) |
sin |
|
|
ниям, то в качестве результата выводится само выражение: |
|||
(%i10) |
sin(x) |
; |
|
(%o11) |
|
|
|
|
trigexpand(%); |
|
|
12
Функция trigreduce свёртывает все произведения тригонометрических и гиперболических функций в комбинации соответствующих функции от сумм. Функция работает не до конца, так что повторный вызов может изменить выражение. При вызове функции в формате trigreduce(expr, x) преобразования осуществляются относительно функций x.
Функция trigrat (синтаксис вызова trigrat(expr)) приводит заданное тригонометрическое выражениеexpr к канонической упрощённой квазилинейной форме. Это выражение рассматривается как рациональное, содержащее sin, cos, tan, аргументы которых линейные формы некоторых переменных и /nπ (n - целое). Всегда, когда возможно, заданное выражение линеаризуется.
Преобразование рациональных выражений
Для выделения числителя и знаменателя дробных выражений используются функции num и denom:
(%i1) expr:(x^2+1)/(x^3-1);
|
(%o1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(%i2) num(expr); |
|
|
|
||||
|
(%o2) |
denom(expr); |
|
|
|
|||
|
(%i3) |
|
|
|
||||
|
|
|
+ 1 |
|
|
|
||
|
(%o3) |
|
|
rat приводит выражение к каноническому пред- |
||||
|
Функция − 1 |
|
|
|
||||
ставлению. Она упрощает любое выражение, рассматривая его |
||||||||
как дробно-рациональную функцию, т.е. работает с операциями |
||||||||
"+", "-", "*", "/" и с возведением в целую степень. |
|
|
||||||
|
Синтаксис вызова: |
|
|
|
||||
|
rat(expr) |
|
|
|
|
|
||
|
rat(expr, x1, . . . , xn) |
|
|
|
||||
|
Переменные упорядочиваются в |
соответствии со списком |
||||||
x1, . . . ,xn. При этом вид ответа зависит от способа упорядочива- |
||||||||
ния переменных Изначально переменные упорядочены в алфа- |
||||||||
витном порядке. |
|
|
|
|||||
|
Функция ratsimp приводит все части (в том числе аргумен- |
|||||||
ты |
функций) выражения, которое |
не |
является |
дробно- |
||||
рациональной |
функцией, к каноническому представлению, |
про- |
||||||
13
изводя упрощения, которые не выполняет функцияrat. Повторный вызов функции в общем случае может изменить результат, т.е. не обязательно упрощение проводится до конца. Применением упрощения к экспоненциальным выражениям управляет флаг ratsimexpons, по умолчанию равный false, если его установить в true, упрощение применяется и к показателям степени или экспоненты.
(%i34)
g:(1/a−1/(b+c))/(1/a+1/(b+c))·(1+(b^2+c^2−a^2)/2/b/c)/((a−b −c)/a/b/c);
(g) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
(%i35) |
ratsimp(%); |
|
||||||||
( |
) |
|
|
|
|
|
|
|||
(%o35) |
|
|
|
|
|
|
|
|
|
|
2(sin((x)) |
+ cos((x))) − 3cos(x) |
sin(x) |
||||||||
(%o45) |
||||||||||
(%i44) |
f:2·((sin(x))^6 + (cos(x))^6) − 3·((sin( )^4·(cos(x))^4); |
|||||||||
(f) |
|
|
|
|
|
|
|
|
|
|
(%i45) |
trigrat(f ; |
|
|
|
|
|
|
|
|
|
Функция fullratsimp вызывает функцию ratsimp до тех пор, пока выражение не перестанет меняться.
Преобразование аналитических выражений
Подстановки осуществляются функцииsubst. Вызов этой функции:
subst(a, b, c)
подставляет a вместо b в выражении c. Например+ : +
(%i46) subst (a, x+y, x + (x+y)^2 + y);
(%o46)
(%i47) |
subst(sqrt(1+1/(t−1)), x, sqrt(cos(x)+sin(y)−t)); ; |
||||
(%o47) |
|
sin( ) − + cos |
|
+ 1 |
|
|
|||||
14
factor – в зависимости от введенного выражения данный оператор выполняет одно из следующих действий: сворачивает полином в произведение полиномов, раскладывает целое число на простые множители или приводит дроби к общему знаменателю.
(%o14) |
2 ∙ 11 ∙ 313; |
|
|
|
|
|
|
|
|
||
Например: |
|
|
|
|
|
|
|
|
|
|
|
(%i14) |
factor(27544); |
− 2) · ( |
+ 2) |
|
|
|
|||||
(%o16) |
(2 · |
+ |
) · ( |
|
|
|
|||||
(%i16) |
factor (−8·y − 4·x + z^2·(2·y + x)); |
|
|
|
|||||||
Функция factorsum факторизует отдельные слагаемые в вы- |
|||||||||||
(%o17) |
|
+ |
+ 2 |
|
+ 2 |
+ |
+ |
+ 2 |
+ |
||
ражении |
|
|
|
|
|
|
|
|
|
|
|
(%i17) |
expand ((x + 1)·((u v)^2 |
a·(w + z)^2)); |
|
|
|||||||
(%o18) |
+ |
+ |
+ |
) |
+2 |
+ |
) ) |
|
|
|
|
( + 1)( |
( + |
|
+ ( |
+ |
|
|
|
||||
(%i18) |
factorsum(%); |
|
|
|
|
|
|
|
|
||
expand - операция символьного разложения, или расширения, выражений. В ходе разложения раскрываются все суммы и произведения;
Например:
(%i12) (3sin·sin(x)(x) + 2cos·cos((x))^2++ (2·sin(x)2sin(x) −−3cos3·cos(x))^2;(x)
(%i13) expand(%);
(%o12) 13sin(x) + 13cos(x)
(%o13)
В Maxima существует специальная команда, позволяющая вычислять ряды и многочлены Тейлора:
taylor(expr,x,a,n).
Здесь expr -разлагаемое в ряд выражение, a - значение x, в окрестности которого выполняется разложение(по степеням x − a), n - параметр, указывающий на порядок разложения и представленный целым положительным числом. Если a указывается
15
просто в виде имени переменной, то производится вычисление
ряда и многочлена Маклорена: |
+ |
+ + + |
+ |
||||||||||||||
(%o48)/T/ |
1 + |
+ |
|
+ + |
|||||||||||||
(%i48) |
taylor(exp(x),x,0,9); |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
+ |
|
|
|
+. .. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ |
|
+ |
|
+. .. |
|
|
|
|
|
||||||
(%o50)/T/ |
− |
− |
|
|
|
|
|
|
|||||||||
(%i50) |
taylor(sin(x),x,0,9); |
|
|
|
|
|
|
|
|
|
|
|
|||||
Наряду с командой taylor для разложения функций и выражений в ряды используется команда
powerseries(выражение,x,a).
Строится разложение для заданного выражения по переменнойx в окрестности a. Результатом выполнения командыpowerseries может быть построение ее ряда Тейлора в общей форме, например:
(%i51)
(%o51)
1. Даны стороны треугольника. Найдите точное значение площади треугольника и его приближенное значение, выведенное
с 25 знаками после запятой. |
|
|
|
1. |
52, 45, 37; |
10. |
45, 67, 74; |
2. |
34,62, 45; |
11. |
93, 66, 81; |
3. |
76, 32, 56; |
12. |
59, 48, 73; |
4. |
57, 42,79; |
13. |
64, 59, 81; |
5. |
39, 67, 52; |
14. |
55, 88, 66; |
6. |
56, 44, 81; |
15. |
59, 41, 50; |
7. |
96, 69, 88; |
16. |
69, 58, 47; |
8. |
54, 39, 76; |
17. |
81, 45, 72; |
9. |
56, 90, 71; |
18. |
82, 67, 51. |
16
2. Упростить выражение.
1), 7), 13) (3sin(x) |
+ |
2cos(x))2 + (2sin(x) - 3cos(x))2; |
|
2), 8), 14) (1 - sin(x)·cos(x)·tg(x)) + sin2(x) + 3; |
|||
3), 9), 15) cos(2x) |
+ |
sin(2x)·tg(x); |
|
4), 10), 16) sin6(x) |
+ |
cos6(x) + 3sin2(x)·cos2(x); |
|
5), 11), 17) |
2(sin6(x) |
+ cos6(x)) - 3(sin4(x)·cos4(x)); |
|
6), 12, 18) |
cos4(2x) + 6sin2(2x)·cos2(2x) + sin4(2x) - 2sin2(4x). |
||
3. Разложить число на простые множители.
1.1245;
2.7544;
3.7935;
4.6278;
5.3405;
6.4176;
7.5972;
8.9045;
9.6712;
10.5972;
11.6735;
12.7914;
13.7842;
14.6375;
15.9145;
16.3366;
17.7912;
18.6734.
17
4. Подставить |
|
в заданную функцию |
вместоx |
|
|
заданное |
|||||||||||||||||||||
1), 7), 13) |
|
cos |
|
+ sin |
− |
|
+ 2 |
, |
|
|
= 1 + |
|
|
|
|
; |
|
|
|
|
|||||||
выражение. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3), 9), 15) |
(cos |
+ tg |
+ |
|
|
) |
− √ |
, |
, |
= |
|
|
+ |
|
|
|
; |
|
|
|
|||||||
2), 8), 14) |
(ln |
− cos |
+ |
) |
|
|
− 5 |
|
|
|
= |
|
|
|
|
|
|
− 1 |
|
|
|
; |
|||||
5), 11), 17) |
sin |
− cos |
+ 5 + √ |
|
|
,, |
|
= |
|
|
|
|
|
|
− 2; |
; |
|||||||||||
|
|
|
|
|
|
|
|
||||||||||||||||||||
4), 10), 16) |
(cos |
+ tg |
+ |
|
|
|
) + 2 |
|
|
|
= |
|
|
+ |
|
|
|
|
|
||||||||
6), 12), 18) |
sin |
− cos |
+ 5 − 5 |
|
, |
= |
|
|
|
|
|
|
|
− 1 |
. |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
Практическая работа № 3. Матричные вычисления
Цель работы: изучить способы задания векторов и матриц, действия с векторами и матрицами.
Теоретические сведения
wxMaxima поддерживает два вида массивов – одномерные (векторы, списки) и двумерные (матрицы). В Maxima на матрицах определены обычные операции умножения на число, сложения и матричного умножения. Последнее реализуется с помощью бинарной операции "." (точка). Элементы матрицы по умолчанию нумеруются с 1.
1. Способы задания матрицы
Матрицу можно целиком ввести с клавиатуры или с помощью функциональной зависимости элемента массива от его индексов.
Введение элементов матрицы с клавиатуры. Чтобы ввести элементы матрицы с клавиатуры, выберите команду меню Алгебра →Ввести матрицу. В открывшемся диалоговом окне
18
(рис. 10) введите количество строк (Rows) и столбцов (Columns) и имя матрицы.
Рис. 10
При нажатии клавиши OK появится шаблон матрицы, в который можно вводить ее элементы (рис. 11).
|
|
|
|
Рис. 11 |
Например: |
1 |
2 |
3 |
|
Для |
||||
Создание прямоугольной матрицы: |
||||
(%i8) |
|
a:matrix([1,2,3],[4,5,6]); |
||
(a) |
|
|
|
|
|
|
доступа к элементу матрицы нужно указать номер |
||
строки и |
столбца нужного элемента в виде индексов. |
|||
|
4 |
5 |
6 |
|
Пример: |
|
|
||
а) ручной ввод матриц: |
||||
(%i9) |
|
A: matrix( |
||
|
|
[1,2,3], |
|
|
|
|
[4,5,6], |
|
|
19
(%i11) |
[7,8,9] |
6 |
||
|
4 |
5 |
||
(A) |
);1 |
2 |
3 |
|
(%o11) |
17 |
8 |
9 |
|
|
A[1,1]; |
|
||
б) ввод нулевой матрицы: |
||||
(%i16) |
zeromatrix(2,2); |
|||
(%o16) |
|
0 |
0 |
|
|
|
единичной матрицы: |
||
в) ввод0 |
0 |
|
||
(%i17) |
ident(2); |
|
||
(%o17) |
|
1 |
0 |
|
Кроме |
доступа к отдельным элементам матрицы, wxMax- |
|||
0 |
1 |
|
||
ima дает возможность выводить и изменять отдельный столбец или строку матрицы.
Функции row и col позволят извлечь соответственно сироку и столбец заданной матрицы, получая список. Синтаксис вызова:
row (M, i) - возвращает i-ю строку; col (M, i) - возвращает i-й столбец.
Для выделения аналогичным образом строки матрицу нужно предварительно транспонировать.
Например:
(%i31) row(C,2);
(%o31)
(%i32) col(C,1);1
(%o32)
20
