1610912777-ff63a1b83b9ac0b597c9346050946007 (824719), страница 6
Текст из файла (страница 6)
Построение графиков55– Выражение вида point(u, v, w), где u, v и w выражения от двухпараметров (параметрическая двухмерная поверхность в трехмерном пространстве): point(cos(x) ∗ (10 + 5 ∗ cos(y)), sin(x) ∗ (10 + 5 ∗cos(y)), 5 ∗ sin(y)).– Уравнение вида f (u, v) = 0 (неявно заданная кривая в двухмерномпространстве).– Уравнение вида f (u, v, w) = 0 (неявно заданная кривая в трехмерном пространстве).– Уравнение вида f (u, v) = {s1 , s2 , . . . } (линии уровня f (u, v) = sjфункции двух переменных).– Список вида {{x1 , y1 }, {x2 , y2 }, . . .
} (кусочно линейная кривая в двухмерном пространстве).– Список вида {{x1 , y1 , z1 }, {x2 , y2 , z2 }, . . . } (кусочно линейная криваяв трехмерном пространстве).– Список вида {{{x11 , y11 }, {x12 , y12 }, . . . }, {{x21 , y21 }, {x22 , y22 }, . . . },. . . } (семейство кусочно линейных кривых в двухмерном пространстве).– Список вида {{{x11 , y11 , z11 }, {x12 , y12 , z12 }, . . . }, {{x21 , y21 , z21 }, {x22 ,y22 , z22 }, . .
. }, . . . } (семейство кусочно линейных кривых в трехмерном пространстве).Функция plot может содержать параметры указывающие диапазоны изменения переменных: var = (x1 .. x2 ) (перед и после двоеточиядолжны быть пробелы). Если диапазоны не указаны, то для независимых переменных они составляют интервал (-10 .. 10), а для зависимыхпеременных совпадают с диапазоном изменения вещественных чисел в«GnuPlot». Для обозначения зависимых переменных в двухмерном случае используется идентификатор «y», а в трехмерном идентификатор«z».Функция plot может иметь следующие опции:– points = n: количество точек (по умолчанию 20).– title = "name": заголовок графика.Глава 13.
Построение графиков56– xlabel = "x", ylabel = "y", zlabel = "z": названия осей координат.– size = "sx , sy ”: масштаб (по умолчанию "1,1").– view = "rx , ry ": угол зрения (по умолчанию "60,30").– hidden3d: скрывает невидимые линии.Примеры:load_package gnuplot;plot(cos(x));plot(sin(x),x=(-3 .. 3));plot({sin(x),cos(x)},x=(-3 .. 3));plot(cos(sqrt(x**2 + y**2)),x=(-3 .. 3),y=(-3 .. 3),hidden3d);plot {{0,0},{0,1},{1,1},{0,0},{1,0},{0,1},{0.5,1.5},{1,1},{1,0}};Глава 14ПакетыВ данном разделе приводится перечень пакетов расширения поставляемых вместе с системой «Reduce». Указывается имя пакета, тематика иномер главы из второй части [1], где дается краткое описание возможностей пакета. Более подробные инструкции и исходные коды пакетов можно найти в папке «packages» архива «reduce-algebra-20101007.tar.bz2»1размещенному по адресу «sourceforge.net/projects/reduce-algebra/files/».Этот же архив в папке «doc\util» содержит электронную версию руководства [1] (файл «r38.pdf»).Перед вызовом функции из пакета расширения пакет надо загрузитькомандой: «load_package <имя пакета>;».
Пункт меню «Load Package»окна «Reduce» позволяет вставлять в строку ввода команды загрузкипакетов.– AlgInt: интегрирование выражений с радикалами (глава 20).– ApplySym: инфинитизимальные симметрии дифференциальныхуравнений (глава 21).– ArNum: алгебраические числа (глава 22).– Assist: полезные утилититы для различных приложений (глава23).– Atensor: тензорный анализ (глава 24).1Дата в имени, естественно, может быть более поздней.57Глава 14. Пакеты58– Avector: векторный анализ (глава 25).– Boolean: булева алгебра (глава 26).– Cali: коммутативная алгебра (глава 27).– Camal: небесная механика (глава 28).– Cgb: базис Гребнера (глава 29).– ChangeVr: замена независимых переменных в дифференциальныхуравнениях (глава 30).– Compact: уплотнение выражений (глава 31).– Crack: решение переопределенных систем дифференциальных уравнений в частных производных (глава 32).– Cvit: физика высоких энергий (альтернативный вариант) (глава33).– DefInt: определенные интегралы (глава 34).– Desir: интегрирование однородных линейных обыкновенных дифференциальных уравнений в окрестности регулярных и нерегулярных сингулярных точек (глава 35).– Depart: формальное дифференцирование «общих» функций (глава 36).– Dummy: канонические формы выражений с фиктивными переменными (глава 37).– Eds: внешние дифференциальные системы (глава 38).– ExCalc: дифференциальная геометрия (глава 39).– Fide: конечно разностные методы для дифференциальных уравнений в частных производных (глава 40).– Fps: формальные степенные ряды (глава 41).– GenTran: генерирование программ на универсальных языках программирования (глава 42).Глава 14.
Пакеты59– Geometry: планиметрия (глава 43).– GnuPlot: графики функций и поверхностей (глава 44).– Groebner: базис Гребнера (глава 45).– Ideals: Полиномиальные идеалы (глава 46).– InEq: решение неравенств (глава 47).– InvBase: вычисление инволютивных базисов (глава 48).– Laplace: преобразование Лапласа (глава 49).– Lie: функции для классификации n-мерных алгебр Ли над полемвещественных чисел (глава 50).– Limits: пределы (глава 51).– LinAlg: линейная алгебра (глава 52).– MathMl: «MathMl» интерфейс для «Reduce» (глава 53).– Modsr: решение сравнений (глава 54).– MrvLimit: пределы выражений с функциями exp и log (глава 55).– NcPoly: некоммутивные полиномиальные идеалы (глава 56).– NormForm: нормальные формы матриц (глава 57).– Numeric: решение численных проблем (глава 58).– OdeSolve: решение обыкновенных дифференциальных уравнений(глава 59).– OrthoVec: трехмерный векторный анализ (глава 60).– PhysOp: квантовая теория (глава 61).– Pm: A REDUCE pattern matcher (глава 62).– Qsum: суммирование q-гипергеометрических рядов (глава 63).Глава 14.
Пакеты60– RandPoly: полиномиальный генератор псевдослучайных чисел (глава 64).– RatAprx: аппроксимации рациональных чисел (глава 65).– ReactEqn: уравнения химических реакций (глава 66).– RedLog: логические системы (глава 67).– Reset: возвращает «Reduce» в исходное состояние (глава 68).– Residue: теория вычетов (глава 69).– Rlfi: LATEX интерфейс (глава 70).– Roots: решение алгебраических уравнений (глава 71).– Rsolve: целочисленные и рациональные решения полиномиальныхуравнений (глава 72).– Scope: оптимизация исходного кода «Reduce» (глава 73).– Sets: теория множеств (глава 74).– Sparse: разреженные матрицы (глава 75).– Spde: симметрии Ли систем дифференциальных уравнений в частных производных (глава 76).– SpecFn: специальные функции (глава 77).– SpecFn2: специальные функции (глава 78).– Sum: суммирование рядов (глава 79).– SuSy2: супер симметрии (глава 80).– Symmetry: симметричные матрицы (глава 81).– Taylor: ряды Тейлора (глава 82).– Tps: усеченные степенные ряды (глава 83).– Tri: TEX интерфейс (глава 84).Глава 14.
Пакеты61– TrigSimp: упрощение и факторизация тригонометрических и гиперболических функций (глава 85).– Wu: алгоритм Ву для полисистем (глава 86).– Xcolor: неабелева калибровочная теория (глава 87).– Xideal: базис Гребнера для внешних уравнений (глава 88).– Zeilberg: неограниченное и ограниченное суммирование (глава 89).– Ztrans: Z-преобразование (глава 90).Глава 15Примеры15.1Пересечение медиан треугольникаp1 := mat((x1,y1))$p2 := mat((x2,y2))$p3 := mat((x3,y3))$m1 := p1+t1*(p2-p1+p3-p1)$m2 := p2+t2*(p1-p2+p3-p2)$m3 := p3+t3*(p1-p3+p2-p3)$t12 := solve({m1(1,1)=m2(1,1),m1(1,2)=m2(1,2)},{t1,t2});tp12 := sub(t12,m1);t13 := solve({m1(1,1)=m3(1,1),m1(1,2)=m3(1,2)},{t1,t3});tp13 := sub(t13,m1);tp12-tp13;end;Первые три строки определяют вершины треугольника в двумерномпространстве. Вектор строка задается в виде матрицы с одной строкой идвумя столбцами.
Следующие три строки определяют параметрическиеуравнения прямых на которых лежат медианы треугольника. В следующей строке ищутся значения параметров t1, t2, при которых прямые m1 иm2 пересекаются. Далее производится подстановка найденного значения62Глава 15. Примеры63t1 в уравнение прямой m1 и тем самым определяется точка пересечения прямых m1 и m2. В следующих двух строках аналогичным образомопределяется точка пересечения прямых m1 и m3. Наконец, в последнейстроке вычисляется разность этих двух найденных точек пересечения,которая оказывается равной нулю и тем самым теорема о точке пересечения медиан доказана.На самом деле вычисление величин tp12 и tp13 здесь излишни. Достаточно убедиться в совпадении значений t1 решений t12 и t13.15.2КриптографияЗдесь представлен пример простейшей криптосистемы, позволяющейотправлять зашифрованные сообщения по открытому каналу связи.
Этотпример демонстрирует возможности «Reduce» при работе с «большими»целыми числами. В основе алгоритма лежит теорема Эйлера.Теорема Эйлера. Если целые положительные числа n и m взаимнопросты, тоnϕ(m) ≡ 1(mod m),где ϕ — Фи-функция Эйлера.Фи-функция Эйлера ϕ(m) равна количеству чисел меньших m и взаимнопростых с m.