Как в маткаде длинную формулу разбить на 2 строки
Перейти к содержимому

Как в маткаде длинную формулу разбить на 2 строки

  • автор:

Как в маткаде длинную формулу разбить на 2 строки

Разбивка уравнений — это удобный метод, позволяющий пользователям, например, просматривать длинные уравнения в режиме Просмотр страницы (Page View) .

Операторы Разбивка уравнения (Equation Break) можно использовать только на стороне определения уравнения. Каждый оператор состоит из левого местозаполнителя, стрелки ввода в верхней строке, за которой следует алгебраический оператор, и правого местозаполнителя в нижней строке. Если щелкнуть «Разбивка уравнения» (Equation Break), отображение операторов переключается.

Разрывы уравнений в символьных определениях

Аналитические преобразования некоторых определений возвращают длинный результат, который расширяется в область Режим черновика (Draft View) документа. При печати страницы, содержащей такое преобразование, та часть результата, которая выходит за границы страницы в режиме Просмотр страницы (Page View) , не будет показана.

Чтобы избежать этой проблемы, можно с помощью операторов Разбивка уравнения (Equation Break) сгруппировать выражения определения вертикально так, чтобы слева оставалось достаточно места по горизонтали для отображения результата преобразования внутри области Просмотр страницы (Page View) .

Например, при выполнении этого аналитического преобразования последние члены результата выходят за пределы линии правой границы страницы Просмотр страницы :

Щелкните для копирования этого выражения

С помощью операторов Разбивка уравнения (Equation Break) можно разбить компоненты определения так, что на странице Просмотр страницы (Page View) будет виден весь результат:

Щелкните для копирования этого выражения

Операторы Разбивка уравнения (Equation Break) можно использовать только на стороне определения уравнения.

Проблемы в MathCad 15. Дополнительные собенности

Проблему удалось решить используя шрифты GOST TYPE для системы ЕСКД, которые были разработаны фирмой АСКОН. Вы можете скачать их по этой ссылке. После скачивания установите шрифты в Windows так, чтобы в mathcad вы могли выбрать их из выпадающего списка

Рис. 2. Выбор шрифтов для удаления кракозябр в mathcad

В подавляющем большинстве случаев проблему иероглифов в mathcad удавалось решить

Рис. 3. Замена иероглифов на кирилические (русские) символы с помощью шрифтов GOST TYPE A

Перенос формулы на другую строку в mathcad 15

Часто бывают случаи, когда расчетные формулы настолько длинные и сложные, что не умещаются в одну строку. Особенно сильно это мешает, когда расчет нужно распечатать, но ширины страницы недостаточно, чтобы показать все что написано. Есть возможность во время записи формулы переносить курсор на вторую строку. При этом формула не разрывается и не теряет своей функциональности

Когда вы приближаетесь к границе разметки листа в mathcad записывая длинное выражение нажмите комбинацию клавиш CTRL + ENTER. Курсор переместится на вторую строку и появится пустой маркер для продолжения ввода. Переносить формулу на другую строку можно сколько угодно. В конце, как обычно, можно поставить символ «равно» и вы получите результат расчета

Рис. 4. Перенос формулы на другую строку в mathcad

Если вы владеете другими полезными трюками для решения проблем и упрощения работы в mathcad, то присылайте их описание на почту портала и возможно их описание появится на сайте

Donec eget ex magna. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fergiat. Pellentesque in mi eu massa lacinia malesuada et a elit. Donec urna ex, lacinia in purus ac, pretium pulvinar mauris. Curabitur sapien risus, commodo eget turpis at, elementum convallis elit. Pellentesque enim turpis, hendrerit tristique.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis dapibus rutrum facilisis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam tristique libero eu nibh porttitor fermentum. Nullam venenatis erat id vehicula viverra. Nunc ultrices eros ut ultricies condimentum. Mauris risus lacus, blandit sit amet venenatis non, bibendum vitae dolor. Nunc lorem mauris, fringilla in aliquam at, euismod in lectus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In non lorem sit amet elit placerat maximus. Pellentesque aliquam maximus risus, vel venenatis mauris vehicula hendrerit.

Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fersapien risus, commodo eget turpis at, elementum convallis elit. Pellentesque enim turpis, hendrerit tristique lorem ipsum dolor.

Форма обратной связи

Поделиться

Статистика

  • © student-engineer.pro :: Semen Kuptcov

Решатели или Великолепная семерка Mathcad Текст научной статьи по специальности «Математика»

Аннотация научной статьи по математике, автор научной работы — Богомолова Елена Петровна, Очков Валерий Федорович, Хейнлоо Мати

В статье рассмотрены основные математические инструменты Mathcad, позволяющие решать уравнения и их системы аналитическими, численными и графическими методами

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Богомолова Елена Петровна, Очков Валерий Федорович, Хейнлоо Мати

Физика vs информатика: веревочный многоугольник в статике, кинематике и динамике, или Ньютон vs Лагранж

Подводная лодка «Наутилус» и новые образовательные технологии
Задачи по физике: новый подход к решению
Использование информационно-коммуникационных технологий при решении систем алгебраических уравнений
Movement of the planets: the calculation and visualization in Mathcad or Kepler’s watch
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

SOLVERS OR THE MAGNIFICENT SEVEN OF MATHCAD

This article describes the basic mathematical tools of Mathcad that allow solving equations and systems of equations by analytical, numerical and graphical methods.

Текст научной работы на тему «Решатели или Великолепная семерка Mathcad»

УДК 51-74 ВАК 05.13.00 РИНЦ 20.01.00

Великолепная семерка Mathcad

В статье рассмотрены основные математические инструменты Mathcad, позволяющие решать уравнения и их системы аналитическими, численными и графическими методами

Ключевые слова: Mathcad, уравнение, система уравнений, алгебраическое уравнение, дифференциальное уравнение.

THE MAGNIFICENT SEVEN OF MATHCAD

This article describes the basic mathematical tools of Mathcad that allow solving equations and systems of equations by analytical, numerical and graphical methods.

Keywords: Mathcad, an equation, system of equations, algebraic equations, differential equation.

Е.П. Богомолова, В.Ф. Очков,

Многие задачи по математике, физике, химии, механике, термодинамике и другим школьным и вузовским дисциплинам сводятся к решению уравнений и систем уравнений. Поэтому полезно будет узнать, какие инструменты для решения такого рода задач есть у пакета МаШса^ очень популярного у школьников, студентов инженеров и ученых. Эти инструменты объединены в группу «Решение уравнений» встроенных функций МаШса^ которые используют различные численные методы. В среде Mathcad 15 названия этих методов можно узнать, если на имени некоторых функции, их реализующих, нажать правую кнопку мыши.

В группе «Решение уравнений» традиционно находятся семь функций (см. второе название статьи).

Примечание ко второму названию статьи. Есть такой классический вестерн «Великолепная семерка», голливудская адаптация философской драмы Акиры Ку-росавы «Семь самураев». В американском фильме «главным» в семерке ковбоев, защищавших крестьян от бандитов, был Крис

Адамс, которого сыграл Юл Бриннер. Семерка — это некое сакральное число не только в культуре и истории (семь древних мудрецов, семь чудес света, семь дней недели, семь нот в гамме и т.д.), но и в естествознании — семь цветов радуги, семь базовых единиц измерения международной системы СИ и т.д.

Есть еще в среде Mathcad и оператор solve для символьного (аналитического) решения задач. Описание этих инструментов будет сделано на несложных школьных «водных» примерах.

Задача 1. Моторная лодка прошла по реке в одну сторону (L = 10 km), а потом вернулась в исходную точку, затратив на этот «круиз» 1 час 45 минут (t). Спрашивается, какова скорость течения воды в реке (неизвестная х), если собственная скорость лодки (v — скорость в стоячей воде) равна 12 км/ч (kph — мы, следуя современному тренду, будем использовать международное написание единиц измерения).

Раньше подобные «школьные» задачи решались в несколько действий. Но не всякая задача может быть решена пошагово. Поэто-

му-то люди и придумали алгебру. В древние времена, например, пока не была выведена формула корней квадратного уравнения, не каждое такое уравнение можно было решить пошагово, причем решения были очень хитроумными. Кстати, нашу задачу о моторной лодке тоже сходу нельзя решить пошагово. Читатель, найди, если сможешь, пошаговое решение этой задачи и сравни найденное решение с тем, какое приведено ниже. Первый шаг такого решения может быть таким: 2 * 10 km / 12 kph = 1 hr + 40 min: движение в текучей, а не в стоячей воде увеличило время пути на 5 минут. Многие студенты, подлаживаясь под несколько устарелые требования преподавателей, проводят пошаговые вычисления на компьютере в среде того же пакета Mathcad, и переписывают ответ в расчетную записку, имитируя ручной счет.

Сейчас в связи с широким использованием компьютеров в образовательной сфере принято составлять, а затем решать уравнения, выбирая их подходящие корни. Пойдем и мы по этому пути, но, соста-

Елена Петровна Богомолова, к.т.н., доцент Тел.: (495) 362-73-92 Эл. почта: epbogomolova@yandex.ru Национальный исследовательский университет «Московский энергетический институт» http://www. mpei.ru

Elena P. Bogomolova,

Ph.D., Associate Professor Tel.: (495) 362-73-92 E-mail: epbogomolova@yandex.ru National Research University «Moscow Power Engineering Institute «.

Валерий Федорович Очков,

д.т.н., профессор Тел.: (495) 362-71-71 Эл. почта: ochkov@twt.mpei.ac.ru Национальный исследовательский университет «Московский энергетический институт» http://www. mpei.ru

Valeriy F. Ochkov,

Doctorate of Technical Sciences, Professor Tel.: (495) 362-71-71 E-mail: ochkov@twt.mpei.ac.ru National Research University «Moscow Power Engineering Institute».

вив уравнение, попробуем решить его не на бумаге, а на компьютере в среде математической программы Mathcad.

В нашей задаче о моторной лодке время в пути t — это суммарное время, затраченное на поездку в одну сторону L / (v + x) (условно будем считать, что это движение по течению реки), и в обратную сторону (против течения) L / (v — x). Поэтому наше уравнение будет иметь вид:

(L / (v + x)) + (L / (v — x)) = t 0. solve

Начнем с решения полученного уравнения средствами символьной математики Mathcad. Формальное, более правильное и более длинное название символьной математики — компьютерные аналитические преобразования, но у нас прижилась калька с английского -symbolic math. Это название мы и будем использовать далее.

Если численная математика (которая, повторяем, тоже есть в среде Mathcad и составляет его основу) оперирует числами, хранящимися в переменных, то символьная математика работает с самими переменными-символами.

На рисунке 1 показано решение уравнения движения моторной лодки по реке с помощью команды solve символьной математики Mathcad (на этом и некоторых других рисунках будут показаны позиции меню и панели инструментов Mathcad Prime и Mathcad 15 для решения описываемых задач).

Из полученного общего аналитического решения (из вектора с двумя элементами-формулами -см. рис. 1) можно скопировать один элемент, подставить в него исходные значения переменных L, t и v (см. рис. 2) и получить численный ответ — скорость течения воды в реке. Ответ будет выдан в метрах, деленных на секунду (Mathcad

Рис. 1. Аналитическое решение задачи о движении моторной лодки

д.ф.-м.н., профессор Тел. +372-55-10-512 Эл. почта: Mati.Heinloo@emu.ee Эстонский университет естественных наук

Doctorate of Physical and Mathematical Sciences, Professor Те1 +372-55-10-512, E-mail: Mati.Heinloo@emu.ee Estonian University of Life Sciences

по умолчанию ориентирован на СИ — на международную систему исчислений), и подправлен на более уместные тут километры в час (kph). Mathcad — это не просто математический, а физико-математический пакет [1]: переменные Mathcad хранят не числа, а физические величины (длину, время, силу, массу и т.д.), что очень полезно при расчетах в задачах с физическим смыслом. Это существенно ускоряет и упрощает расчеты, позволяет избежать ошибок в них, а также автоматизирует соответствующие преобразования единиц измерения.

£,;=]() km f:=l + min V~ 12 kph

Рис. 2. Решение задачи о моторной лодке по найденной на рис. 1 формуле

Спрашивается, для чего же тогда в пакете Mathcad есть и численная математика, если задачу просто и красиво можно решить с помощью символьной математики? Дело в том, что символьная математика, нацеленная на выдачу всех решений в виде формул (абсолютная точность!), часто не справляется с более-менее сложной задачей, и это показано на рис. 3 и 4.

Полученный результат этой символьной операции слишком длинный для отображения, но он может использоаатъся е последующих расчетах, если будет присвоен функции или переменной.

Рис. 3. Поиск корня уравнения: очень объемный скрытый ответ

На рисунке 3 в уравнении движения моторной лодки один из иксов был возведен в квадрат. Физический смысл уравнения пропал (складывается скорость с квадратом скорости).

Такими «нефизическими» формулами заполнены все современные учебники и задачники по математике. И это не очень хорошо, вернее, совсем плохо. Хорошо тогда, когда за формулой скрывается какая-нибудь физическая реальность. Такое направление ма-

тематики условно называют «натуральная математика». Проблема размерностей исчезнет сразу же, как только мы вспомним, что еще во времена Франсуа Виета господствовал принцип однородности, который требовал в подобных случаях умножать икс на некую единицу, получая везде квадраты скорости. Но, как водится, у современных математиков, умножение на единицу не производится, а размерности игнорируются. Вот типичная задача, часто предлагаемая школьникам и студентам для решения в рамках курса математического анализа. Дана функция, определить значения ее аргумента, при которых первая производная функции больше самой функции. Здесь делается упор на технику взятия производной и решения неравенств, но не принимается во внимание тот факт, что сравнение функции и ее первой производной — это равносильно некорректному сравнению пути (длины) и скорости — разных физических величин.

Но сейчас главное не физический смысл уравнения, показанного на рис. 3. Важно то, что пакет Mathcad, решив это чуть усложненное уравнение, не смог вывести на дисплей ответ — настолько тот оказался громоздким. Но это еще полбеды. Настоящая «беда» показана на рис. 4 для еще более усложненного уравнения. Если, например, один икс возвести в квадрат, а другой в куб, то символьная математика Mathcad «поднимет руки вверх» и скажет: «Сдаюсь!».

Рис. 4. Поиск корня уравнения: решение не найдено

Если в константы этого «нефизического» уравнения подставить безразмерные численные значения известных величин, то хотя бы один действительный корень у этого уравнения зафиксировать удастся — см. рис. 5, где данная задача решена графически.

Рис. 5. Графический поиск нуля функции

Из рисунка 5 видно, что у нашего уравнения, превращенного в функцию пользователя переносом переменной t в левую часть, есть как минимум один действительный корень в районе числа 0.9. Уточнить численное значение этого корня поможет встроенная в Mathcad функция root — см. рис. 6 и 7.

На рисунке 6 показан вызов функции root с четырьмя аргументами, а на рис. 7 с двумя. В обоих

случаях ответ выведен с тремя знаками после десятичной точки. Но можно вывести и большее число знаков — до 15. В первом случае (рис. 6) нуль функции у(х) ищется методом деления пополам на интервале, заданном третьим и четвертым аргументами функции root (см. авторскую анимацию этого метода на сайте http://communities.ptc. com/videos/1468). Во втором случае (рис. 7) нуль функции рассчитывается методом секущих с опорой на первое предположение х := 1 (ани-

Рис. 6. Работа в среде Mathcad встроенной функции root с четырьмя аргументами

мация — http://communities.ptc.com/ videos/1466). В среде Mathcad для вычисления нуля функции пользователя фактически есть две одинаковые по имени, но разные по своей сути встроенные функции root.

ж:=1 root (у (ж), ж) =0.918

Рис. 7. Работа в среде Mathcad

встроенной функции root с двумя аргументами

На рисунке 8 показана работа функции root на довольно простом примере — с функцией пользователя sin(x)/x, которая имеет бесконечное число нулей. На отрезке [2, 7] функция y(x) имеет два нуля (п и 2п), но четырехаргументная функция root ответа не выдала, так как функция y(x) имеет одинаковые знаки на концах этого отрезка и функция root считает, что там не может быть корней уравнения. На отрезке [1, 17] нулей уже пять, один из которых (9.425) найден четырехаргу-ментной функцией root. На концах отрезка [1, 17] функция y(x) имеет разные знаки. При первом приближении, равном 0.01, двухаргумен-тная функция root выдала не ближайший нуль (3.14), а «очень-очень дальний»: 298.451. Понять эти особенности применения функции root можно только после детального рассмотрения численных методов, заложенных в эту функцию -метода деления отрезка пополам и метода секщих.

Ранее мы отметили, что символьная математика Mathcad оперирует не числами, а символами -самими переменными, хранящими или не хранящими числа. Но это не совсем так.

Если какая-либо переменная выражения хранит численное значение, то символьная математика будет работать не с самой переменной (с символом), а с числом, хранящимся в этой переменной. На рисунке 3 была показана осечка символьной математики Mathcad при решении довольно простого уравнения. Но если всем переменным этого уравнения, кроме переменной x, задать численные значения, то символьный оператор solve успешно справится с задачей — см. рис. 9.

Рис. 8. Особенности работы функции root

0.91753907432064754652 -0.10072745491075931273 — 0.50447307772368Ii -0.10072745491075031273 + 0.504473077723(58065275i

-0.35804208224956446063 -1.43206766221807i -0.35804208224956446053 +1.4320676622180746717i

Рис. 9. Численный ответ символьного оператора

На рисунке 9 показано, что «символьный» оператор solve в отличие от «численной» функции root выдал все пять корней уравнения (один действительный и четыре с мнимой частью) без установки интервала (рис. 6) или первого предположения (рис. 7). Кроме того, если численная математика при выводе ответа «на печать», как мы уже отметили, по умолчанию ограничивается тремя знаками после десятичной точки, то символьный оператор solve в этом случае выдал численные решения с двадцатью знаками после запятой. При «численном» ответе количество значащих цифр можно увеличить до 15, а при символьном до 250.

Примечание. Лишить переменную ее численного значения для последующих аналитических преобразований можно операторами: clearsym(a) (Mathcad Prime) или a := a (Mathcad 15).

Если наше уравнение с численными константами (см. рис. 9) и дальше усложнять, то на каком-то этапе оператор solve не сможет найти корни. Функция же root по-

прежнему будет выдавать корень, правда, лишь один из многих и с опорой на заданный интервал поиска (рис. 6) или на первое приближение (рис. 7). При этом задавать интервал поиска придется, исходя из уверенности, что корень на этом интервале имеется. Метод секущих же при неправильном первом приближении вообще не выдаст нужного результата. Это такой своеобразный компромисс. Отсюда общее правило: поставленную математическую задачу нужно стараться сначала решить аналитически в общем виде, не придавая переменным конкретных численных значений (рис.1) или придавая отдельным или всем переменным численные значения (рис. 9). Если же ответа найти не получается, то придется переходить к поиску частных решений численными методами, дополняя их анализом графиков.

На рисунке 10 показано использование графика и функции root в двух ее вариантах для решения нашей задачи о моторной лодке. Интересный факт. Двухаргумент-ная функция root при первом при-

ближении, равном нулю, выдала не ожидаемый положительный, а отрицательный корень. Этот нюанс можно понять, если опять же учесть особенности метода секущих при поиске нулей функции и после построения графика не на отрезке от -3 до 3 км/ч, а на отрезке -13 до 13 км/ч, охватывающем точки разрыва, что мы сделаем ниже. Дело в том, что функция root с двумя аргументами работает так. Пользователь задает одну опорную точку поиска (первое предположение, но это далеко не всегда первое приближение — см. пример на рисунке 8). Далее пакет Mathcad правее этой точки на расстоянии CTOL (по умолчанию это 0.001 в нашем случае метров, т.е. один миллиметр) фиксирует вторую точку и проводит через две эти точки секущую, почти касательную). Эта секущая где-то пересекает ось Х — это будет третьей, очередной точкой итерационного поиска корня. Далее реализуется классический метод секущих. Правая точка разрыва нашей анализируемой функции «перекидывает» поиск в область отрицательных значений. Можно сказать, что в функцию root с двумя аргументами заложен гибрид метода Ньютона (касательных) и метода секущих. На авторском сайте http:// communities.ptc.com/videos/1411 можно видеть анимацию метода Ньютона для одиночного уравнения, а на сайте http://communities. ptc.com/videos/1472 для системы двух уравнений.

Примечание. Для повышения точности поиска нуля функции с помощью встроенной в Mathcad функции root можно не уменьшать значение системной переменной CTOL (см. список левее графика на рис 10), а перемножить анализируемую функцию на 103, 104 и т.д. Выбор точности вычислений — это отдельная задача. С одной стороны, повышенная точность никогда не будет лишней, а с другой стороны, она приводит к замедлению расчетов и срыву их в ряде случаев. Во всем нужна мера!

Уравнение движения моторной лодки, показанное на рис. 1, можно преобразовать в квадратное. К такому приему обычно прибегают

Рис. 10. Графическое и численное (через функцию root) решение задачи о моторной лодке

Рис. 11. Определение коэффициентов полинома

в школах, т.к. школьников, как правило, учат решать аналитически только квадратные уравнения. Как такое преобразование можно сделать в среде Mathcad, показано на рис. 11.

Оператор символьной математики simplify (упростить) приводит левую часть исходного выражения к общему знаменателю, умножает обе части уравнения на полученный знаменатель и переносит все слагаемые в левую часть уравнения (рис. 11). Таким способом выделяется функция, которая приравнена к нулю. Оператор coeffs находит коэффициенты этой функции-полинома (в данном случае квадратного). Это квадратное уравнение можно решить оператором solve, но. см. ниже.

Примечание. Квадратичная функция, полученная после преобразования исходного уравнения движения моторной лодки, не эквивалентна исходной функции, а только имеет с ней два одинаковых корня. В этом можно убедиться, взглянув на графики, показанные на рис. 12. Наше исходное уравнение движения моторной лодки имеет разрывы при x, равном 12 и минус 12 kph. В этих точках лодка не будет перемещаться относительно берега при движения в одну из сторон. Квадратичная же функция таких разрывов, естественно не имеет

Если выражение представляет собой полином (квадратный, например, см. выше), то можно найти все его нули, использовав еще одну функцию из «великолепной семерки Mathcad» — функцию polyroots. Она имеет в качестве аргумента вектор коэффициентов полинома и возвращает его нули (вектор, который на один элемент короче вектора-аргумента), т.е. решение нашей задачи — см. рис. 13.

В нашей задаче о движении моторной лодки полином оказался квадратным и его корни, повторяем, можно было найти через оператор символьной математики solve (см. рис. 1). Но в случае полиномов высокой степени оператор solve

не сработает. Тут и пригодится численная встроенная функция polyroots.

Показать работу еще одной функции из «великолепной семерки Mathcad» — функции Find — поможет нам еще одна дополнительная моторная лодка.

Задача 2. От двух пристаней на прямолинейном участке реки навстречу друг другу одновременно отходят две моторные лодки. Они встречаются в точке, делящей этот участок реки в золотом соотношении. Найти скорость второй лодки v2 и скорость течения воды в реке v, если известна скорость первой лодки v1, расстояние между пристанями L и время t движения лодок до встречи. (Шуточный вариант задачи: от двух станций по одноколейной дороге вышли навстречу друг другу два поезда. И не столкнулись! Почему? Ответ: не судьба!).

Мы в задаче имеем в виду знаменитое «Золотое сечение», т.е. такое деление отрезка на две неравные части, при котором длина меньшей части отрезка так относится к длине большей части, как длина большей части относится к длине всего отрезка (см. рис. 14). Это свойство золотого сечения помнят многие, чего не скажешь о формуле золотого сечения. На сайте http://communities.ptc.com/ videos/1521 показана авторская анимация метода золотого сечения при численном поиске на заданном отрезке минимума функции одного аргумента.

Золотое соотношение (сечение) в задачу вставлено неслучайно. Можно поискать в своей памяти или в справочниках (бумажных или интернетовских) формулу золотого сечения. Но можно поступить иначе [2]: написать в среде Mathcad само уравнение золотого сечения применительно к нашей задаче о моторных лодках и решить его аналитически, получив нужную формулу — см. рис. 14.

i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

На рисунке 14 оператор solve выдал два решения, из которых нам подходит только второе — 3.82 km. Первое же решение (26.18 km) ле-

Рис. 12. Исходное и квадратное уравнение движения моторной лодки

Рис. 13. Поиск нулей полинома в среде Mathcad

Рис. 14. Решение уравнения золотого сечения в среде Mathcad

г., := 7 kph V := 1 kph

t-(г>2 + 1>) = L- L.(3-\Z¡0 2

I »| j Ц Блок текста

Блок решения (Ctr1*1)

вставка блока решения В блоке решения 1) введите 1 начального приближения, 2) задайте я, 3) затем решите системы уравмеиий при помощи одного из методов: find,. mmetT, minimize, maximize или «iesoive

i Hud lsolve maximize inkier minimise

flndfvarl, var2, „.J Возвращает знЕыения vari, vac2. , которые решают остему уравнений в Слои» решения возвращает ежапяр, если задан только один аргумент, в противном случае возвращает вектор ответов. Действует только в блока решения polyrtjotä root

J^:- 10km 12kph t30min Given

vj 7kph v ^ 1 kph

В обращает значения переменных Varl, var2. представляющие решение

системы уравнений в блоке решения. Если указам только одим аргумент, возвращает скаляр, иначе возвращает вектор решений.

Рис. 15. Решение систем алгебраических уравнений с помощью функции Find

жит вне рассматриваемого отрезка. Символьная математика, повторяем, выдает все ответы, из которых нужно еще уметь выбрать подходящее. Или уметь заставить оператор solve выдать нужный ответ.

На рисунке 15 показано решение в среде Mathcad Prime и Mathcad 15 задачи о двух моторных лодках, сводящееся к решению системы двух уравнений с двумя неизвестными. Решение найдено с помощью функции Find, требующей начального приближения к решению.

Встроенная функция Find меняет значение своих аргументов, начиная от начального приближения так, чтобы уравнения системы превратились в тождества. Вернее, почти в тождества. Дело в том, что и обе функции root (рис. 7 и 9) и функция Find (рис. 7) возвращают значения, отличающиеся от точных решений на величину, не превышающую по модулю значения, хранящегося в системной переменной CTOL. Ведь что такое корень уравнения?! Корень — это значение переменной, при котором уравнение превращается в тождество. Но при численном (приближенном!) решении найти точный

корень не всегда удается. Подстановка приближенного значения корня в уравнение приводит к тому, что правые и левые части уравнения отличаются друг от друга на значение, хранимое в переменной CTOL, которое по умолчанию равно 0.001. Это значение можно менять, решая конкретную задачу. На сайте с авторской анимацией http:// communities.ptc.com/videos/1472 можно видеть особенности поиска четырех корней системы двух нелинейных уравнений: уравнения эллипса и уравнения лемнискаты Бернулли. На сайте http:// communities.ptc.com/videos/2418 можно увидеть анимацию, показывающую на то, как выбор первого приближения влияет на найденный корень. Более подробно о методах решения, заложенных в функцию Find, можно почитать в работе [3].

Примечание. В среде Mathcad Prime по сравнению с Mathcad 15 существенно изменилась технология решения уравнений с помощью функции Find. В среде Mathcad Prime не нужно больше вводить ключевое слово Given. Достаточно ввести область Решить с тремя подобластями. От ключевого слова Given отказались в том числе и по-

тому, что многие пользователи после этого слова нажимали клавишу пробела, превращали тем самым это ключевое слово в комментарий и. не понимали, почему Mathcad отказывается решать систему уравнений. На рис. 15 показаны для сравнения решения в обеих версиях Mathcad.

Примечание. Переменная L, которой на рис. 15 присваивается начальное значение 10 km (L := 10 km), подчеркнута волнистой чертой, указывающей на некую ненормальную расчетную ситуацию в среде Mathcad 15. Переменная L по умолчанию в среде Mathcad 15 хранит значение одного литра (единица вместимости) и это значение пользователь переопределяет. В среде Mathcad Prime эта недоработка (неудобство) исправлена — там можно иметь две независимые переменные L: единицу вместимости и отдельную пользовательскую переменную, хранящую, как в нашем случае, расстояние.

Можно понять, что система двух алгебраических уравнений движения двух моторных лодок навстречу друг другу, показанная на рис. 15, линейна, и применить к ней еще одну функцию из «великолепной семерки Mathcad» — функцию lsolve, предназначенную для решения (solve) именно систем линейных (l) алгебраических уравнений (СЛАУ) — см. рис. 16.

На рисунке 16 система уравнений (показанная на рис. 15), преобразована к виду классической линейной системы: слева неизвестные v2 и v со своими коэффициентами, справа — свободные члены. Функция lsolve имеет два аргумента: матрицу коэффициентов при неизвестных СЛАУ (у нас это M) и вектор свободных членов V. Возвращает функция lsolve вектор найденных значений неизвестных. При решении СЛАУ с помощью функции lsolve (рис. 16) начальные приближения (см. рис. 15) вводить не надо, т.к. у этой системы либо есть, причем единственное решение, либо решений совсем нет, либо решений бесконечно много.

Рис. 16. Решение СЛАУ в среде Mathcad

В [2] дан графический анализ этой особенности с привлечением понятия ранга матрицы.

Примечание. Вторым аргументом функции ^^ может быть не только квадратная (классический случай СЛАУ), но и прямоугольная матрица, отображающая недоопре-деленную или переоопределенную систему.

5 и 6. Minimize&Maximize

Об очередной функции «великолепной семерки» — о функции Minimize, будет рассказано на примере задачи оптимизации, связанной также с «водным транспортом».

Задача 3. Определить крейсерскую скорость судна — скорость при которой затраты на его эксплуатацию будут минимальны.

Задача предельно упрощена -затраты на эксплуатацию судна состоят из двух частей: почасовой зарплаты экипажа, пропорциональной времени движения судна (обратно пропорциональной скорости судна), и затрат на горючее, пропорциональных квадрату скорости судна (коэффициенты пропорциональности — а и b). Увеличивая скорость судна, мы экономим на зарплате экипажу, но при этом приходится больше тратить денег на горючее. Попробуем найти тут оптимальное решение!

На рисунке 17 показано решение этой типичной задачи оптимизации с помощью встроенной функции Minimize с графической иллюстрацией решения.

Функция Minimize меняет значение своего второго аргумента, начиная от заданного предполагаемого значения (у нас это 10 км/ч) так, чтобы значение первого аргумента (целевой функции Удельные_за-траты) приняло минимальное значение. Если бы мы не минимизировали затраты, а максимизировали,

например, прибыль владельца судна, то нужно было бы при решении такой задачи функцию Minimize заменить на функцию Maximize. В оптимизационных задачах часто присутствуют ограничения — скорость судна, например, не может превышать максимально допустимую. В этом случае функции Minimize или Maximize нужно будет поместить в область Ограничения блока Решить, показанного на рис. 15.

Найти минимум нашей целевой функции Удельные_затраты можно и средствами символьной математики Mathcad, что показано на рис. 18.

На рисунке 18 ведется поиск нулей первой производной функции по удельным затратам на километр пути судна. Но если затраты на топливо будут зависеть от скорости судна, взятой не во второй степени, а в степени n (этот коэффициент, близкий к двойке, уточняют

Рис. 17. Нахождение крейсерской скорости судна численной математикойMathcad

Математика ия Блок решения Блок текста А] Текстовое поле J Изображение Г Операторы ß Символы

Возвращает производную функции от нулевого до 5-го порядка

& £ « Г £ Ü Т ? V Ä & I»,- v,f

Рис. 18. Нахождение крейсерской скорости судна символьной математикой

экспериментально) то символьная математика уже не справится с такой усложненной задачей (рис. 19), и придется вернуться к численным методам решения задач (рис. 17).

d (а . п\ solve,х \- — + Ь’Х—> ?

Символьный результат не найден.

Рис. 19. Осечка при работе с символьной математикой Mathcad

Последняя функция «великолепной семерки» Mathcad — это функция Minerr (Minimal Error -минимальная ошибка). Если функция Find (см. рис. 15) не находит решения системы уравнений, то она возвращает сообщение об ошибке. Функция же Minerr в такой ситуации возвратит не сообще-

ние об ошибке, а значения своих аргументов (невязку системы), при которых система уравнений будет максимально приближена к системе тождеств — точку последнего

приближения к решению. В старых версиях Mathcad не было функций Minimize и Maximize, и задачи оптимизации приходилось решать именно через функцию Minerr. На рисунке 20 показано, как эта функция решает задачу определения крейсерской скорости судна: при оптимальном движении затраты на эксплуатацию судна будут максимально приближены к нулю (мечта всех судовладельцев).

Функцию Minerr можно считать главной в «великолепной семерке Mathcad», т.к. ею можно заменить и функцию Find, и функцию root (в двух ее вариантах), и функцию polyroots, и функцию lsolve, и в ряде случаев функции Minimize и Maximize При использовании функции Minerr надо обязательно предусматривать проверку решений. Нередки случаи, когда решения могут оказаться ошибочными, чаще всего из-за того, что из нескольких корней находится нереальный (или не представляющий интереса) корень. Дело в том, что функция Minerr пытается найти максимальное приближение к искомому числу путем минимизации среднеквадратической погрешности решения. Следует заранее убедиться в том, что решение существует, и как можно точнее указать начальное приближение к решению.

Компьютерная математика с универсальными и скрытыми от пользователей методами аналитических и численных решений за-

i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Рис. 20. Решение задачи оптимизации с помощью функции Minerr

ставляет нас забывать о типах уравнений. Вспомним о них!

Для того чтобы без проблем и правильно решать уравнения и системы уравнений, нужно знать не только специфику численных методов (см. выше), но и свойства самих уравнений, что поможет решать их аналитически.

Математики уравнения с одним неизвестным относят к одному из четырех типов: алгебраические, рациональные, иррациональные и трансцендентные. Метод аналитического решения определяется типом решаемого уравнения.

Если полином и-й степени приравнять нулю, то мы получим алгебраическое уравнение. Основная теорема алгебры говорит о том, что такое уравнение имеет ровно и корней. Но во-первых, не все корни будут действительными и, возможно, вообще не существует ни одного действительного корня. А во-вторых, корни могут совпадать, т.е. быть кратными. Доказано, что не существует формул для корней алгебраического уравнения выше пятой степени. Но и формулы для и = 5 настолько громоздки, что их использование лишено какой-либо практической пользы. Mathcad может символьно решать алгебраические уравнения вплоть до четвертой степени.

Если уравнение более высокой степени допускает частичное разложение на множители, то оно тоже может быть символьно разрешимо. Тут уместно вспомнить школьный метод подбора целого корня и теорему Безу. Если алгебраическое уравнение имеет целые коэффициенты, и делители свободного члена известны, то можно подобрать целый корень х0 (если такой имеется) «вручную», либо использовав Mathcad. Поделив полиномиальную функцию на двучлен (х — х0), получим алгебраическое уравнение степени на единицу меньше. Если целый корень не подбирается, то такое уравнение теряет свои преимущества и становится в один ряд с другими типами уравнений.

Рассмотрим теперь рациональ-

ные уравнения. Такие уравнения содержат исключительно дроби, в числителях и в знаменателях которых находятся только многочлены. С помощью Mathcad эти уравнения легко формально преобразовать в алгебраические. Правда, при таких преобразованиях может измениться область допустимых значений преобразуемого уравнения, т.к. знаменатель какой-то дроби может оказаться в числителе. Это порождает проблему посторонних корней, а поэтому решение рационального уравнения требует обязательной проверки (подстановки полученных чисел в исходное уравнение). Если все дроби в рациональном уравнении «одноэтажные», то проверку можно заменить предварительным поиском области определения рациональной функции, приравняв нулю все знаменатели. Если дроби «многоэтажные», то такая процедура потребует априорных упрощений. Если хоть в одном из знаменателей находится многочлен третьей или более высокой степени, то поиск допустимых значений оборачивается поиском корней нового алгебраического уравнения. В таком случае проверка — более экономный способ отсечения посторонних корней.

Иррациональными называют такие уравнения, которые помимо рациональных функций содержат радикалы (корни целых степеней — квадратные, кубические и т.п.), а все подкоренные выражения являются рациональными функциями. Известно, что радикалы четных степеней определены не везде в действительной области. Это обстоятельство приводит к необходимости находить область определения прежде, чем решать само уравнение. Фактически само уравнение следует сопроводить неравенствами, которые Mathcad тоже будет решать. Если этого не слелать, то уравнение по умолчанию будет решаться на области комплексных чисел, которые для большинства пользователей, исследующих реальные физические и другие явления, попросту бесполезны.

Вторая проблема, возникающая при решении уравнений с радикалами четных степеней — появление

посторонних корней. Ведь основным методом решения иррационального уравнения является метод возведения обеих частей уравнения в нужную степень, а при возведении в четную степень как числа х, так и числа —х, мы получим один и тот же результат. В итоге получается новое уравнение, строго говоря, не равносильное исходному. Заметим, что есть аналитические способы решения и уравнений с кубическими (и другими нечетными) радикалами, которые тоже приводят к посторонним корням. Но тут снова можно прибегнуть к проверке, т.е. подстановке полученных числовых величин в исходное уравнение. Следует помнить, что лишние корни вполне могут принадлежать области определения функции, приравниваемой нулю.

Класс трансцендентных уравнений обширен. В него входят показательные, логарифмические, тригонометрические уравнения, а также уравнения, содержащие различные (а не только степенные) элементарные функции и композиции элементарных функций. Помимо проблем, связанных с областью определения, в таких уравнениях при наличии тригонометрических функций могут возникнуть проблемы с периодичностью решений.

В зависимости от того, сколько неизвестных входят в систему уравнений, можно выделить два типа систем: системы с одним неизвестным и системы с несколькими неизвестными. Классификация всех систем — занятие бессмысленное, поскольку специальные эффективные (матричные) методы решения разработаны только для систем линейных алгебраических уравнений с несколькими неизвестными. Такие системы еще называют линейными алгебраическими системами. Все другие системы решаются с помощью одних и тех же общих численных методов.

Системы с одним неизвестным можно решить так: найти по отдельности решение каждого уравнения системы, а потом выбрать одинаковые для всех уравнений числа. Часто можно поступить проще: сначала решить то уравнение, которое имеет наименьшее число

корней, а потом все эти корни подставить в каждое из оставшихся уравнений системы.

Нелинейные системы с несколькими неизвестными решаются численными итерационными методами, требующими задания начального приближенного значения искомых неизвестных.

Выбор метода решения уравнения

Посмотрим, чем же стоит руководствоваться при выборе метода решения конкретного уравнения или системы.

Для вычисления всех корней алгебраического уравнения не выше пятой степени рекомендуется использовать символьные вычисления а также функцию polyroots (см. рис. 13), поскольку она не требует проведения процедуры локализации корней. Во всех остальных случаях придется либо локализовать корень на конкретном отрезке, либо использовать итерационные методы, имея достаточно хорошее начальное приближение и выбрав подходящую точность вычислений.

Прежде чем начать поиск корней уравнения, нужно на нескольких различных интервалах построить график функции, приравниваемой к нулю. Поведение графика даст ответ на несколько вопросов. Имеет ли функция действительный корень? Где он расположен? Сколько всего действительных корней? Отделены ли корни друг от друга, или они имеют некоторую точку скопления? Можно ли считать, что корни периодически повторяются, и чему равен период? Есть ли у функции точки разрыва, и насколько далеко от них лежат корни? Следует ли уменьшить значение системной переменной CTOL, чтобы различить два близко располо-женых корня?

Когда ответы на все вопросы получены, тогда можно определиться с методом и точностью вычислений.

Заметим, что если проигнорировать этап построения графика функции, то, например, функция root может сработать некорректно. Правда, по графику нельзя определить, попадет ли в процессе решения в точку локального минимума

невязки последовательность приближений. Если причина ошибки в этом, то нужно задать другое начальное приближение. Чем точнее выбрано начальное приближение корня, тем быстрее итерационный процесс будет сходиться.

Результатом решения системы будет численное или символьное значение вектора неизвестных величин. При символьном решении не надо вводить начальные значения, а при численном — надо. Если в системе всего два неизвестных, то построение трехмерных графиков функций, входящих в систему, позволит удачно подобрать начальное приближение для решения системы. В случае неудачного начального приближения появится сообщение об отсутствии сходимости последовательности итераций. Тогда придется начать все сначала, задав другое первое приближение.

Широкое использование компьютеров для аналитического или численного поиска корней уравнений привело к тому, что многие пользователи перестали чувствовать разницу между алгебраическими, рациональными, иррациональными и трансцендентными уравнениями. Более того, все эти уравнения стали называться просто алгебраическими. Так в документации Mathcad сказано, что этот пакет может численно решать и системы алгебро-диффренциальных уравнений (DAE) — системы, где присутствуют и алгебраические и дифференциальные (см. ниже) уравнения. Хотя там могут быть и другие типы

уравнений — рациональные, иррациональные и трансцендентные.

Раз мы упомянули дифференциальные уравнения, то следует сказать, что в Mathcad Prime к великолепной семерке добавилась еще одна функция — функция Odesolve.

Наша первая задача о «круизе» моторной лодки (см. рис. 1 и 2) имела существенное допущение: скорость лодки была постоянной. Но это условие выполнить практически невозможно, т. к. лодка по прибытии в один конец пути должна сбросить скорость, развернуться и пуститься в обратный путь. Можно, конечно, подправить задачу так: лодка достигает конечной точки и в этот момент эстафету принимает другая моторная лодка, движущаяся с такой же собственной скоростью, но в обратном направлении. Приблизить задачу об одной лодке к реальным условиям нам поможет еще одна встроенная функция Mathcad — функция Odesolve, предназначенная для решения (solve) обыкновенных (o — ordinary) дифференциальных (d) уравнений (e — equation) и их систем. Если при численном решении алгебраических уравнений мы получаем числа, подстановка которых в уравнения превращает их в тождества или в почти тождества, то при решении дифференциальных уравнений и их систем мы получаем уже не числа, а функции, подстановка которых

^ВОЭД I’li ,; .’. ^БОДЫ Г’ЕПДЬ ЕГ’ДШ

■ L ГНччЮТм ,>.(_>.. ■ I1

L.225 1 0,3 1000 3 12

Ot>»OtT»|[vll х. Ь. [Ч-р|>

Возфащаст фупця» пи иг» фучциА от

к(0 с)=0 м х'(0 c) = v 1 2 Масса’x»(t) = — —’X'(t) ■ р,мд-н,мд+ к,0И1 Рюды * ВвОДЬ|)

х:= aclesulve (x(t), Г( [.,; : Вст 11 IKd ф’/МЩУ И ка

Категория функции Имя функции

*(■) м Реиемле уравнении Случайные чиста СоетирМка Специальны* Статистке Строка»* Pde»*w Radio Hadapt v rkftted

OdBtohie([vf], тс. Ь. [rrt«fcj)

( 1 (=) Вдооаидет футций или м*тор фу нкцнй от x, предстшляаихх p«u мне

Пгранетр yf опускается п и реиени много ОДУ.

Рис. 21. Решение задачи об остановки лодки

превращает исходные дифференциальные уравнения в тождества. Заметим, что функция Odesolve в группе «Решение уравнений» стала восьмой (7 + 1 — см. выше) только в среде MathcadPrime. В Mathcad 15 в группе «Решение уравнений» ее не было, но она была в другой группе.

Итак, задача 4. На моторной лодке, движущейся со скоростью v, заглушили мотор. Спрашивается, как будут меняться во времени пройденный ею путь? Задача предельно упрощена — на лодку действует силы трения воды и воздуха, пропорциональные квадрату скорости лодки (см. рис. 17, 18, 19 и 20, где этот квадрат присутствовал). На рисунке 21 показано решение этой задачи с помощью функции Odesolve и его графическое отображение.

Коэффициент пропорциональности между инерцией и силой трения, записанный в уравнении на рис. 21 (масса лодки, помноженная на ускорение — на первую производную скорости по времени), состоит из двух частей, связанных с трением о воздух надводной части лодки и трением о воду ее подводной части. Эти коэффициенты пропорциональны плотности р среды (воздуха или воды) и площади поперечного сечения надводной и подводной частей лодки S. В уравнение можно добавить силу тяги мотора и моделировать также старт моторной лодки и ее последующее движение с переменной или постоянной тягой мотора. Если скорость лодки станет постоянной, то дифференциальное уравнение превратится в алгебраическое: сила тяги мотора будет уравновешиваться силой сопротивления воды и воздуха.

Задачу об остановке моторной лодки мы решили численно: функция Odesolve не ищет аналитического решения уравнения. Она формирует таблицу значений искомой функции с именем x (пройденный путь), по которой методом интерполяции создается непрерывная функция, график которой мы построили на рис. 21. На сайте http:// communities.ptc.com/videos/1471 можно просмотреть авторскую анимацию численного решения обыкновенного дифференциаль-

ного уравнения методами Эйлера и Рунге-Кутта, а на сайте http:// communities.ptc.com/videos/1699 помещена анимация похожей задачи — остановки автомобиля под действием сил трения. Другие авторские динамические модели (вращение планет со спутниками, качание маятников, спуск на парашюте, ныряние в воду, движение в туннеле, запуск ракеты с подводной лодки, скатывание с горы и др.), реализованные в среде Mathcad, можно найти здесь http://communities. ptc.com/groups/dynamic-models-in-mathcad.

В среде Mathcad нет средств аналитического (символьного) решения дифференциальных уравнений. Но их можно поискать и найти в Интернете. На рисунке 22 показано аналитическое решение задачи о движении моторной лодки — логарифмическая функция. Оно нашлось, поскольку исходное уравнение было достаточно простым: вторая производная функции пропорциональна квадрату ее первой производной. Но если с нашей задачи о движении лодки начать снимать ограничения, то символьного решения уже не будет, и нам придется возвращаться к численным методам — к функции Odesolve.

Так, например, при торможении лодки площадь поперечного сечения ее надводной части уменьшается (лодка проседает в воду), а подводной части растет (вспомним, что самые быстроходные суда те, у которых подводная часть минимальна: глиссирующие суда, суда на подводных крыльях или на воздушной подушке). Коэффициенты kвозд и ^оды (см. блок исходных данных на рис. 21) в свою очередь зависят от скорости и характера движения лодки: они одни при ламинарном обтекании тела и другие при турбулентном движении, когда за лодкой клубятся вихри воды и воздуха. У воды и воздуха разная вязкость, что тоже нужно учитывать при математическом моделировании движении лодки. Этим занимается очень интересная наука под названием гидрогазодинамика.

И последнее. После нахождения корня алгебраического уравнения (или решения системы уравнений) всегда, независимо от метода, стоит сделать проверку — подставить найденное значение (значения) в уравнение (в систему) и убедиться, что получилось тождество. Или почти тождество, если используются численные (приближенные) методы решения. Проверка решения

Рис. 22. Графическое сравнение аналитического и численного решения ОДУ

рассматриваемого дифференциального уравнения может заключаться в построении графика баланса сил и произведения массы на ускорение (если иметь ввиду задачу, показанную на рис. 21) в зависимости от аргумента полученной функции ^ — см. рис. 21). Этот график должен совпадать с осью х. Кроме того, если есть аналитическое решение дифференциального уравнения, то его можно сравнить с численным решением. Мы это сделали в расчетном документе, показанном на рис. 22, где МаШса^документ (численное решение задачи об остановке лодки) дополнен аналитическим решением.

Почему на рисунке 22 графики торможения моторной лодки не

совпали? Авторы долго ломали над этим головы, пока не сообразили, что в пакете Mathematica (а именно он работает на отмеченном на рис. 22 сайте) log — это натуральный логарифм, а в пакете Mathcad -десятичный. Этим и объясняется различный наклон логарифмических кривых. Если в формуле над кривыми функцию log заменить на In или log(. e), то эти две кривые сольются в одну.

Дифференциальные уравнения тоже можно разбить на типы. Есть, например, линейные дифференциальные уравнения, решения которых можно свести к решению алгебраических уравнений. Но это тема для отдельной статьи.

Каждая из рассмотренных функций «великолепной семерки Mathcad» обладает своими особенностями и ограничениями. Прежде чем приступать к решению задачи, следует продумать, какая из этих функций приведет к поставленной цели, причем наилучшим образом.

Школьнику, студенту, инженеру или ученому необходимо (а в ряде случаев и достаточно) освоить «великолепную семерку Mathcad», особенности численных, графических и аналитических методов решения задач, чтобы успешно решать на компьютере свои учебные или профессиональные задачи [4].

Математические формулы в LaTeX

Одним из главных мотивов для Дональда Кнута, когда он начал разрабатывать исходную систему TeX, было создание чего-то, что позволяло бы просто записывать математические формулы, но при этом выглядело бы профессионально на этапе печати. Тот факт, что ему это удалось, скорее всего и был причиной того, что TeX (а позже и LaTeX) стал настолько популярным в научном сообществе. Возможность набора математических формул — одна из самых сильных сторон LaTeX. Но при этом, это очень объёмная тема из-за существования большого количества математических обозначений.

Если для вашего документа требуется всего несколько простых математических формул, обычный LaTeX предоставит вам большинство инструментов, которые вам смогут понадобятся. Если же вы пишете научную статью, содержащую множество сложных формул, пакет amsmath привносит некоторое количество новых команд, которые являются более мощными и гибкими, чем те, которые предоставляются базовым LaTeX. Пакет mathtools исправляет некоторые причуды amsmath и добавляет полезные настройки, символы и окружения в amsmath. Чтобы использовать любой из данных пакетов, включите в преамбулу создаваемого документа:

\usepackageamsmath> 
\usepackagemathtools> 

Пакет mathtools загружает пакет amsmath и, следовательно, нет необходимости указывать \usepackage в преамбуле, если используется mathtools.

Математическое окружение [ править ]

Системе LaTeX необходимо сообщить, когда текст, который вы вводите, является математической формулой. Это необходимо из-за того, что LaTeX набирает математическую нотацию иначе, чем обычный текст. Поэтому для данной цели объявлены специальные окружения. Их можно разделить на две категории в зависимости от того, как они представлены:

  • text — текст формулы отображается прямо в строке, внутри текста, где он объявлен. Например, я могу написать формулу a + a = 2 a прямо в этом предложении.
  • displayed — для отображения формулы в отдельной строке.

Поскольку математические формулы требуют особых окружений, естественно, есть их соответствующие названия, которые вы можете использовать стандартным способом. Однако, в отличие от большинства других окружений, есть удобные сокращения для объявления ваших формул. Следующая таблица объединяет информацию о них:

Тип Встроенная (в текст) формула Выключенная (на отдельной строке) формула Выключенная формула с автонумерацией
Окружение math displaymath equation
Сокращение LaTeX \( . \) \[ . \]
Сокращение TeX $ . $ $$ . $$
Комментарий equation* (версия со звездочкой) убирает нумерацию, но требует использования amsmath

Внимание: Следует избегать использования $$ . $$ , так как это может вызывать проблемы, особнно с макросами AMS-LaTeX. Кроме того, в случае возникновения проблем сообщения об ошибках могут оказаться бесполезными.

Окружения equation* и displaymath являются функционально эквивалентными.

Если вы набираете текст в обычном режиме, говорят, что вы находитесь в текстовом режиме, но когда вы печатаете в одной из этих математических сред, вы, как говорят, находитесь в математическом режиме, который имеет некоторые отличия от текстового режима:

  1. Большинство пробелов и разрывов строк не имеют никакого значения, поскольку все пробелы либо получены логически из математических выражений, либо должны быть указаны с помощью специальных команд, таких как \quad
  2. Пустые строки не допускаются. Только один абзац на формулу.
  3. Каждая буква считается именем переменной и будет набрана как таковая. Если вы хотите набрать обычный текст в формуле (обычный вертикальный шрифт и нормальный интервал), вам необходимо ввести текст с помощью специальных команд.

Вставка «выключенных» математических формул внутри блоков текста [ править ]

Чтобы некоторые операторы, такие как \lim или \sum , правильно отображались в некоторых математических окружениях (имеется ввиду $ . $ ), может быть удобно написать класс \displaystyle внутри окружения. Это может увеличить длину строки, но приведет к более правильному отображению показателей и индексов для некоторых математических операторов. Например, $ \sum $ напечатает маленькую Σ а $ \displaystyle \sum $ напечатает большую ∑ , как в уравнениях (Работает только при включенном пакете AMSMATH). Можно принудительно настроить такое поведение для всех математических сред, объявив \everymath < \displaystyle >в самом начале (т.е. до \begin < document >).

Математические символы [ править ]

В математике существует достаточно много различных символов! Ниже приведены те, к которым можно получить доступ прямо с клавиатуры:

Помимо тех, что перечислены выше, для ввода некоторых символов могут потребоваться отдельные команды. Это требуется, например, для ввода греческих букв, символов множества и отношений, стрелок, бинарных операторов, и т.д.

\forall x \in X, \quad \exists y \leq \epsilon 

К счастью, есть инструмент, который может значительно упростить поиск команды для определенного символа. Найдите «Detexify» в разделе external links ниже. Другой вариант — посмотреть «Полный список символов LaTeX» в разделе external links ниже.

Греческие буквы [ править ]

Греческие буквы довольно часто используются в математике, но их достаточно просто набирать в математическом режиме. Вам просто нужно ввести название буквы после обратной косой черты: если первая буква названия строчная, вы получите строчную греческую букву, если первая буква названия заглавная (только первая буква), тогда вы получите прописную букву. Обратите внимание, что некоторые заглавные греческие буквы выглядят как латинские, поэтому они не предоставляются LaTeX (например, заглавные буквы Alpha и Beta это просто латинские «A» и «B» соответственно). Строчные буквы эпсилон, тета, каппа, фи, пи, ро и сигма представлены в двух разных версиях. Альтернативная (variant сокр. var) версия, создается добавлением «var» перед названием буквы:

\alpha, \Alpha, \beta, \Beta, \gamma, \Gamma, \pi, \Pi, \phi, \varphi, \mu, \Phi, \varPhi 

Прокрутите вниз до #List of mathematical symbols чтобы увидеть полный список греческих символов.

Математические операторы [ править ]

Оператор — это функция, которая записывается с помощью слова: например, тригонометрические функции (sin, cos, tan), логарифмы и экспоненты (log, exp), пределы (lim), а также след и определитель (tr, det). В LaTeX многие из них определены как команды:

\cos (2\theta) = \cos^2 \theta - \sin^2 \theta 

cos ⁡ ( 2 θ ) = cos 2 ⁡ θ − sin 2 ⁡ θ \theta -\sin ^\theta \,>

Для некоторых операторов, таких как Предел, нижний индекс помещается под оператором:

\lim\limits_x \to \infty> \exp(-x) = 0

Для оператора Сравнения по модулю существует две команды: \bmod и \pmod :

a \bmod b
x \equiv a \pmodb> 

Чтобы использовать операторы, которые не определены заранее, например argmax, см. [[../Высшая математика#Определяемые операторы|определяемые операторы]]

Степени и индексы [ править ]

Степени и индексы эквивалентны верхним и нижним индексам в обычном текстовом режиме. Символ каретки ( ^ ; так же известный как циркумфлекс) используется чтобы что-то поднять, а нижнее подчёркивание ( _ ) для опускания. Если необходимо повысить или понизить выражение, содержащее больше одного символа, его необходимо сгруппировать с помощью фигурных скобок ( < и >).

k_n+1> = n^2 + k_n^2 - k_n-1> 

Для степеней, состоящих из более чем одной цифры, заключите степень в <>.

Подчёркивание ( _ ) может использоваться с вертикальной чертой ( | ) при использовании выражения в качестве нижнего индекса (это предложение требует уточнения):

f(n) = n^5 + 4n^2 + 2 |_n=17> 

Дроби и биномы [ править ]

Дроби создаются с помощью команды \frac < numerator > < denominator >. Так же и Биномиальный коэффициент можно записать используя команду \binom :

\fracn!>k!(n-k)!> = \binomn>k> 

Дроби можно помещать одну внутри другой:

\frac\frac1>x>+\frac1>y>>y-z> 

Для относительно простых дробей, особенно внутри текста, может быть более эстетично использовать Степени и индексы:

Данная запись может показаться немного «растянутой» (занимающей много места), сжатую версию можно определить, вставив некоторое отрицательное пространство.

%running fraction with slash - requires math mode. \newcommand*\rfrac[2]^#1>\!/_#2>> \rfrac3>7> 

Если вам необходимо часто использовать подобную запись дробей в своём документе, рекомендуем использовать пакет xfrac. Данный пакет поддерживает команду \sfrac для создания наклонных дробей. Использование:

Take $\sfrac1>2>$ cup of sugar, \dots 3\times\sfrac1>2>=1\sfrac1>2> Take $<>^1/_2$ cup of sugar, \dots 3\times<>^1/_2=1<>^1/_2

Если в качестве показателя степени используются дроби, необходимо использовать фигурные скобки вокруг команды \sfrac :

$x^\frac$ % no error $x^\sfrac$ % error $x^<\sfrac>$ % no error
$x^\frac1>2>$ % no error 

В некоторых случаях добавление только данного пакета может привести к ошибкам о том, что определённые формы шрифтов недоступны. Тогда необходимо так же добавить пакеты lmodern и fix-cm.

В качестве альтернативы, пакет \[ \int\limits_a^b\frac12 (1+x)^\,\mathrmx= \left.-\frac> \right|_a^b \] предоставляет команду \nicefrac использование которой аналогично использованию \sfrac .

Непрерывные дроби [ править ]

Непрерывные дроби следует записывать с помощью команды \cfrac :

\beginequation> x = a_0 + \cfrac1>a_1 + \cfrac1>a_2 + \cfrac1>a_3 + \cfrac1>a_4> > > > \endequation> 

Умножение двух чисел [ править ]

Чтобы сделать умножение визуально похожим на дробь, можно использовать вложенный массив, например, умножение чисел, написанных одно под другим..

\beginequation> \frac \beginarray>[b]r> \left( x_1 x_2 \right)\\ \times \left( x'_1 x'_2 \right) \endarray> > \left( y_1y_2y_3y_4 \right) > \endequation> 

Корни [ править ]

Команда \sqrt создаёт символ квадратного корня, окружающий математическое выражение. Он принимает необязательный аргумент в квадратных скобках ( [ и ] ) для изменения показателя (степени) корня:

\sqrt\fraca>b>> 

a b >>>

\sqrt[n]1+x+x^2+x^3+\dots+x^n> 

Часто для написания корня люди предпочитают делать его «закрывающимся», когда заканчивается подкоренное выражение. Это позволяет более точно определиять границы верхней линии при чтении. Хотя обычно при печати формул на компьютере этим пренебрегают, LaTeX позволяет записывать корни таким образом. просто доабвьте следующий код в преамбулу Вашего документа:

% New definition of square root: % it renames \sqrt as \oldsqrt \let\oldsqrt\sqrt % it defines the new \sqrt in terms of the old one \def\sqrt\mathpalette\DHLhksqrt> \def\DHLhksqrt#1#2% \setbox0=\hbox$#1\oldsqrt2\,>$>\dimen0=\ht0 \advance\dimen0-0.2\ht0 \setbox2=\hbox\vrule height\ht0 depth -\dimen0>% \box0\lower0.4pt\box2>> 

Этот код сначала заменяет команду \sqrt на \oldsqrt , после чего переопределяет \sqrt , используя стандартный корень, сильно его дополняя. Вы можете увидеть пример использования нового стиля корня на картинке слева и сравнить его со старым видом на правой картинке. К сожалению, этот код не будет работать, если вы хотите дописать ему порказатель: если Вы попробуете напечатать a b ]>> как \sqrt [b] < a >после использования кода выше, то столкнётесь с тем, что TeX выдаст неправильный вывод. То есть Вы можете таким образом изменить команду квадратного корня только в том случае, если Вы не планируете указывать показатели у корней во всём Вашем документе.

Альтернативный код, позволяющий указывать показатели у корней, представлен ниже:

\usepackageletltxmacro> \makeatletter \let\oldr@@t\r@@t \def\r@@t#1#2% \setbox0=\hbox$\oldr@@t#12\,>$>\dimen0=\ht0 \advance\dimen0-0.2\ht0 \setbox2=\hbox\vrule height\ht0 depth -\dimen0>% \box0\lower0.4pt\box2>> \LetLtxMacro\oldsqrt>\sqrt> \renewcommand*\sqrt>[2][\ ]\oldsqrt[#1]#2> > \makeatother $\sqrt[a] \quad \oldsqrt[a] $ 

Но стоит учитывать, что этот способ предполагает подключение пакета \usepackage < letltxmacro >.

Ряды и интегралы [ править ]

Команды \sum и \int создают символы Ряда и Интеграла соответсвенно. Нижний предел задаётся символом «_», а верхний «^». Пример использования Ряда:

\sum_i=1>^10> t_i
\displaystyle\sum_i=1>^10> t_i

Пределы для интегралов задаются по правилам такой же нотации, что и для Рядов. Так же важно обозначать дифференциал некоторой величины прямым шрифтом, что достигается командой » \mathrm «, и с небольшим отступом от подынтегрального выражения с помощью команды » \, «

\int_0^\infty e^-x>\,\mathrmd>x

Есть много других «больших» команд, которые работают подобным образом:

\sum

\prod

\coprod
\bigoplus

\bigotimes

\bigodot
\bigcup

\bigcap

\biguplus
\bigsqcup

\bigvee

\bigwedge
\int

\oint

\iint [1]
\iiint [1]

\iiiint [1]

\idotsint [1] ∫ ⋯ ∫

Что бы использоваться больше интегральных символов, которые не входят в шрифт Computer Modern, подключите пакет \[ \int\limits_a^b\frac12 (1+x)^\,\mathrmx= \left.-\frac> \right|_a^b \].

Команда \substack command [1] позволяет использовать два обратных слэша \\ для записи пределов Ряда или интеграла в несколько строк:

\sum_\substack 0\\ 0>> P(i,j)

Если вы хотите, чтобы пределы интеграла были указаны выше или ниже символа, используйте команду \limits :

\int\limits_a^b

∫ a b \,>

Однако если вы хотите, чтобы это применялось ко ВСЕМ интегралам, то нужно указать параметр Шаблон:LaTeX/Parameter при подключении пакета \[ \int\limits_a^b\frac12 (1+x)^\,\mathrmx= \left.-\frac> \right|_a^b \]: Шаблон:LaTeX/Usage

Нижние и верхние пределы в других контекстах, а также другие параметры пакета \[ \int\limits_a^b\frac12 (1+x)^\,\mathrmx= \left.-\frac> \right|_a^b \] связанные с ними, описаны в главе Advanced Mathematics.

Для больших интегралов можно использовать пакет \[ \int\limits_a^b\frac12 (1+x)^\,\mathrmx= \left.-\frac> \right|_a^b \] [2] .

Скобки, фигурные скобки и разделители [ править ]

Как использовать фигурные скобки в многострочных уравнениях описано в главе Advanced Mathematics.

Использование разделителей, таких как скобки, становится важным при работе с чем угодно, кроме самых тривиальных уравнений. Без них формулы могут стать двусмысленными. Кроме того, специальные типы математических структур, такие как матрицы, невозможно представить без разделителей.

Существует множество разделителей, доступных для использования в LaTeX:

( a ), [ b ], \ c \>, | d |, \| e \|, \langle f \rangle, \lfloor g \rfloor, \lceil h \rceil, \ulcorner i \urcorner, / j \backslash 

( a ) , [ b ] , < c >, | d | , ‖ e ‖ , ⟨ f ⟩ , ⌊ g ⌋ , ⌈ h ⌉ , ⌜ i ⌝ , / j ∖ ,|d|,\|e\|,\langle f\rangle ,\lfloor g\rfloor ,\lceil h\rceil ,\ulcorner i\urcorner ,/j\backslash >

где \lbrack и \rbrack могут использоваться вместо «[» и «]».

Автоматическое определение размеров [ править ]

Очень часто математические функции будут отличаться друг от друга по размеру, и в этом случае разделители, окружающие выражение, должны изменяться соответственно. Это можно сделать автоматически с помощью команд \left , \right , и \middle . Любой из выше перечисленных разделителей может быть использован в сочетании с этими командами:

\left(\fracx^2>y^3>\right)
P\left(A=2\middle|\fracA^2>B>>4\right)

Фигурные скобки определяются иначе, с помощью \left\ < и \right\>,

\left\x^2>y^3>\right\> 

Если разделитель нужен только с одной стороны выражения, то с другой стороны разделить может быть обозначен точкой ( . ), что сделает его невидимым.

\left.\fracx^3>3>\right|_0^1

Ручное определение размеров [ править ]

В некоторых случаях автоматический размер, создаваемый командами \left и \right , может быть отличен от того, что вы ожидаете увидеть, или вам требуется более точно контролировать размеры разделителей. В этом случае могут использоваться команды-модификаторы \big , \Big , \bigg и \Bigg :

( \big( \Big( \bigg( \Bigg(

Эти команды в первую очередь полезны при работе с вложенными разделителями. Например, при наборе текста:

\frac\mathrm d>\mathrm d x> \left( k g(x) \right)

Мы видим, что команды \left и \right создают разделители такого же размера, что и вложенные в них. Это может создать трудности при чтении записей. Чтобы исправить это, мы пишем:

\frac\mathrm d>\mathrm d x> \big( k g(x) \big)

Ручное определение размеров также может быть полезно, когда уравнение слишком велико, поэтому заканчивается в конце страницы, и должно быть разделено на две строки с помощью команды «align». Хотя команды \left . и \right . можно использовать для автоматического определения размеров разделителей на каждой строке, это может привести к неправильным размерам. Кроме того, нужно использовать ручное определение размеров, чтобы избежать чрезмерно больших разделителей, если между ними появляется \underbrace или аналогичная команда.

Matrices and arrays [ править ]

A basic matrix may be created using the environment [1] : in common with other table-like structures, entries are specified by row, with columns separated using an ampersand ( & ) and a new rows separated with a double backslash ( \\ )

\[ \begin  a & b & c \\ d & e & f \\ g & h & i \end \] 

To specify alignment of columns in the table, use starred version [3] :

\beginmatrix> -1 & 3 \\ 2 & -4 \endmatrix> = \beginmatrix*>[r] -1 & 3 \\ 2 & -4 \endmatrix*> 

The alignment by default is Шаблон:LaTeX/Parameter but it can be any column type valid in environment.

However matrices are usually enclosed in delimiters of some kind, and while it is possible to use the \left and \right commands, there are various other predefined environments which automatically include delimiters:

Environment name Surrounding delimiter Notes
[1] ( )

centers columns by default
[3] ( )

allows to specify alignment of columns in optional parameter
[1] [ ]

centers columns by default
[3] [ ]

allows to specify alignment of columns in optional parameter
[1] < >> centers columns by default
[3] < >> allows to specify alignment of columns in optional parameter
[1] | |

centers columns by default
[3] | |

allows to specify alignment of columns in optional parameter
[1] ‖ ‖

centers columns by default
[3] ‖ ‖

allows to specify alignment of columns in optional parameter

When writing down arbitrary sized matrices, it is common to use horizontal, vertical and diagonal triplets of dots (known as ellipses) to fill in certain columns and rows. These can be specified using the \cdots , \vdots and \ddots respectively:

A_m,n> = \beginpmatrix> a_1,1> & a_1,2> & \cdots & a_1,n> \\ a_2,1> & a_2,2> & \cdots & a_2,n> \\ \vdots & \vdots & \ddots & \vdots \\ a_m,1> & a_m,2> & \cdots & a_m,n> \endpmatrix> 

A m , n = ( a 1 , 1 a 1 , 2 ⋯ a 1 , n a 2 , 1 a 2 , 2 ⋯ a 2 , n ⋮ ⋮ ⋱ ⋮ a m , 1 a m , 2 ⋯ a m , n ) =a_&a_&\cdots &a_\\a_&a_&\cdots &a_\\\vdots &\vdots &\ddots &\vdots \\a_&a_&\cdots &a_\end>>

In some cases you may want to have finer control of the alignment within each column, or want to insert lines between columns or rows. This can be achieved using the environment, which is essentially a math-mode version of the [[../Tables#The tabular environment| tabular environment]], which requires that the columns be pre-specified:

\beginarray>c|c> 1 & 2 \\ \hline 3 & 4 \endarray> 

You may see that the AMS matrix class of environments doesn’t leave enough space when used together with fractions resulting in output similar to this:

To counteract this problem, add additional leading space with the optional parameter to the \\ command:

M = \beginbmatrix> \frac5>6> & \frac1>6> & 0 \\[0.3em] \frac5>6> & 0 & \frac1>6> \\[0.3em] 0 & \frac5>6> & \frac1>6> \endbmatrix> 

If you need «border» or «indexes» on your matrix, plain TeX provides the macro \bordermatrix

M = \bordermatrix~ & x & y \cr A & 1 & 0 \cr B & 0 & 1 \cr> 

Matrices in running text [ править ]

To insert a small matrix, and not increase leading in the line containing it, use environment:

A matrix in text must be set smaller: $\bigl(\begin a&b \\ c&d \end \bigr)$ to not increase leading in a portion of text.

Adding text to equations [ править ]

The math environment differs from the text environment in the representation of text. Here is an example of trying to represent text within the math environment:

50 apples \times 100 apples = lots of apples^2

50 a p p l e s × 100 a p p l e s = l o t s o f a p p l e s 2 \,>

There are two noticeable problems: there are no spaces between words or numbers, and the letters are italicized and more spaced out than normal. Both issues are simply artifacts of the maths mode, in that it treats it as a mathematical expression: spaces are ignored (LaTeX spaces mathematics according to its own rules), and each character is a separate element (so are not positioned as closely as normal text).

There are a number of ways that text can be added properly. The typical way is to wrap the text with the \text < . >command [1] (a similar command is \mbox < . >, though this causes problems with subscripts, and has a less descriptive name). Let’s see what happens when the above equation code is adapted:

50 \textapples> \times 100 \textapples> = \textlots of apples>^2

The text looks better. However, there are no gaps between the numbers and the words. Unfortunately, you are required to explicitly add these. There are many ways to add spaces between maths elements, but for the sake of simplicity we may simply insert space characters into the \text commands.

50 \text apples> \times 100 \text apples> = \textlots of apples>^2

Formatted text [ править ]

Using the \text is fine and gets the basic result. Yet, there is an alternative that offers a little more flexibility. You may recall the introduction of font formatting commands, such as \textrm , \textit , \textbf , etc. These commands format the argument accordingly, e.g., \textbf < bold text >gives bold text. These commands are equally valid within a maths environment to include text. The added benefit here is that you can have better control over the font formatting, rather than the standard text achieved with \text .

50 \textrm apples> \times 100 \textbf apples> = \textitlots of apples>^2

Formatting mathematics symbols [ править ]

We can now format text; what about formatting mathematical expressions? There are a set of formatting commands very similar to the font formatting ones just used, except that they are specifically aimed at text in math mode (requires \[ \int\limits_a^b\frac12 (1+x)^\,\mathrmx= \left.-\frac> \right|_a^b \])

LaTeX command Sample Description Common use
\mathnormal < … >
(or simply omit any command)
A B C D E F a b c d e f 123456

The default math font Most mathematical notation
\mathrm

A B C D E F a b c d e f 123456 \,> This is the default or normal font, unitalicised Units of measurement, one word functions
\mathit

A B C D E F a b c d e f 123456 >\,> Italicised font Multi-letter function or variable names. Compared to \mathnormal , words are spaced more naturally and numbers are italicized as well.
\mathbf

A B C D E F a b c d e f 123456 \,> Bold font Vectors
\mathsf

A B C D E F a b c d e f 123456 >\,> Sans-serif Categories
\mathtt

A B C D E F a b c d e f 123456 >\,> Monospace (fixed-width) font
\mathfrak

A B C D E F a b c d e f 123456 >\,> Fraktur Almost canonical font for Lie algebras, ideals in ring theory
\mathcal

A B C D E F >\,> Calligraphy (uppercase only) Often used for sheaves/schemes and categories, used to denote cryptological concepts like an alphabet of definition ( A > ), message space ( M >> ), ciphertext space ( C >> ) and key space ( K >> ); Kleene’s O >> ; naming convention in description logic; Laplace transform ( L >> ) and Fourier transform ( F >> )
\mathbb < … >
(requires the \[ \int\limits_a^b\frac12

These formatting commands can be wrapped around the entire equation, and not just on the textual elements: they only format letters, numbers, and uppercase Greek, and other math commands are unaffected.

To bold lowercase Greek or other symbols use the \boldsymbol command [1] ; this will only work if there exists a bold version of the symbol in the current font. As a last resort there is the \pmb command [1] (poor man’s bold): this prints multiple versions of the character slightly offset against each other.

\boldsymbol\beta> = (\beta_1,\beta_2,\dotsc,\beta_n)

To change the size of the fonts in math mode, see [[../Advanced Mathematics#Changing font size|Changing font size]].

Accents [ править ]

So what to do when you run out of symbols and fonts? Well, the next step is to use accents:

a’ or a^

a ′

a ″
\hat

a ^ \,> \bar

a ¯ \,>
\grave

a ` \,> \acute

a ´ \,>
\dot

a ˙ \,> \ddot

a ¨ \,>
\not

⧸ a \mathring
\overrightarrow

A B → >\,> \overleftarrow

A B ← >\,>
a»’ a ‴

a»» a ⁗
\overline

a a a ¯ >\,> \check

a ˇ \,>
\breve

a ˘ \,> \vec

a → \,>
\dddot [1] \ddddot [1]
\widehat

A A A ^ >\,> \widetilde

A A A ~ >>
\stackrel\frown

A A A ⌢ >>
\tilde

a ~ \,> \underline

a _ \,>

Color [ править ]

The package \[ \int\limits_a^b\frac12 (1+x)^\,\mathrmx= \left.-\frac> \right|_a^b \], described in [[../Colors#Adding_the_color_package|Colors]], allows us to add color to our equations. For example,

k = \colorred>x> \mathbin\colorblue>-> 2

The only problem is that this disrupts the default Шаблон:LaTeX formatting around the — operator. To fix this, we enclose it in a \mathbin environment, since — is a binary operator. This process is described here.

Plus and minus signs [ править ]

LaTeX deals with the + and − signs in two possible ways. The most common is as a binary operator. When two maths elements appear on either side of the sign, it is assumed to be a binary operator, and as such, allocates some space to either side of the sign. The alternative way is a sign designation. This is when you state whether a mathematical quantity is either positive or negative. This is common for the latter, as in math, such elements are assumed to be positive unless a − is prefixed to it. In this instance, you want the sign to appear close to the appropriate element to show their association. If you put a + or a − with nothing before it but you want it to be handled like a binary operator you can add an invisible character before the operator using <> . This can be useful if you are writing multiple-line formulas, and a new line could start with a − or +, for example, then you can fix some strange alignments adding the invisible character where necessary.

A plus-minus sign is written as:

Similarly, there exists also a minus-plus sign:

Controlling horizontal spacing [ править ]

LaTeX is obviously pretty good at typesetting maths—it was one of the chief aims of the core TeX system that LaTeX extends. However, it can’t always be relied upon to accurately interpret formulas in the way you did. It has to make certain assumptions when there are ambiguous expressions. The result tends to be slightly incorrect horizontal spacing. In these events, the output is still satisfactory, yet any perfectionists will no doubt wish to fine-tune their formulas to ensure spacing is correct. These are generally very subtle adjustments.

There are other occasions where LaTeX has done its job correctly, but you just want to add some space, maybe to add a comment of some kind. For example, in the following equation, it is preferable to ensure there is a decent amount of space between the maths and the text.

\[ f(n) = \begin  n/2 & \quad \text n \text \\ -(n+1)/2 & \quad \text n \text \end \] 

This code produces errors with Miktex 2.9 and does not yield the results seen on the right. Use \mathrm instead of just \text.

(Note that this particular example can be expressed in more elegant code by the construct provided by the \[ \int\limits_a^b\frac12 (1+x)^\,\mathrmx= \left.-\frac> \right|_a^b \] package described in Advanced Mathematics chapter.)

LaTeX has defined two commands that can be used anywhere in documents (not just maths) to insert some horizontal space. They are \quad and \qquad

A \quad is a space equal to the current font size. So, if you are using an 11pt font, then the space provided by \quad will also be 11pt (horizontally, of course.) The \qquad gives twice that amount. As you can see from the code from the above example, \quad s were used to add some separation between the maths and the text.

OK, so back to the fine tuning as mentioned at the beginning of the document. A good example would be displaying the simple equation for the indefinite integral of y with respect to x:

If you were to try this, you may write:

\int y \mathrmd>x

However, this doesn’t give the correct result. LaTeX doesn’t respect the white-space left in the code to signify that the y and the dx are independent entities. Instead, it lumps them altogether. A \quad would clearly be overkill in this situation—what is needed are some small spaces to be utilized in this type of instance, and that’s what LaTeX provides:

Command Description Size
\, small space 3/18 of a quad
\: medium space 4/18 of a quad
\; large space 5/18 of a quad
\! negative space -3/18 of a quad

NB you can use more than one command in a sequence to achieve a greater space if necessary.

So, to rectify the current problem:

\int y\, \mathrmd>x
\int y\: \mathrmd>x
\int y\; \mathrmd>x

The negative space may seem like an odd thing to use, however, it wouldn’t be there if it didn’t have some use! Take the following example:

\left( \beginarray>c> n \\ r \endarray> \right) = \fracn!>r!(n-r)!> 

The matrix-like expression for representing binomial coefficients is too padded. There is too much space between the brackets and the actual contents within. This can easily be corrected by adding a few negative spaces after the left bracket and before the right bracket.

\left(\! \beginarray>c> n \\ r \endarray> \!\right) = \fracn!>r!(n-r)!> 

In any case, adding some spaces manually should be avoided whenever possible: it makes the source code more complex and it’s against the basic principles of a What You See is What You Mean approach. The best thing to do is to define some commands using all the spaces you want and then, when you use your command, you don’t have to add any other space. Later, if you change your mind about the length of the horizontal space, you can easily change it modifying only the command you defined before. Let us use an example: you want the d of a dx in an integral to be in roman font and a small space away from the rest. If you want to type an integral like \int x \, \mathrm < d >x , you can define a command like this: Шаблон:LaTeX/Usage in the preamble of your document. We have chosen \dd just because it reminds the «d» it replaces and it is fast to type. Doing so, the code for your integral becomes \int x \dd x . Now, whenever you write an integral, you just have to use the \dd instead of the «d», and all your integrals will have the same style. If you change your mind, you just have to change the definition in the preamble, and all your integrals will be changed accordingly.

Manually Specifying Formula Style [ править ]

To manually display a fragment of a formula using text style, surround the fragment with curly braces and prefix the fragment with \textstyle . The braces are required because the \textstyle macro changes the state of the renderer, rendering all subsequent mathematics in text style. The braces limit this change of state to just the fragment enclosed within. For example, to use text style for just the summation symbol in a sum, one would enter Шаблон:LaTeX/Usage The same thing as a command would look like this: Шаблон:LaTeX/Usage Note the extra braces. Just one set around the expression won’t be enough. That would cause all math after \tsum k to be displayed using text style.

To display part of a formula using display style, do the same thing, but use \displaystyle instead.

Advanced Mathematics: AMS Math package [ править ]

The AMS (American Mathematical Society) mathematics package is a powerful package that creates a higher layer of abstraction over mathematical LaTeX language; if you use it it will make your life easier. Some commands \[ \int\limits_a^b\frac12 (1+x)^\,\mathrmx= \left.-\frac> \right|_a^b \] introduces will make other plain LaTeX commands obsolete: in order to keep consistency in the final output you’d better use \[ \int\limits_a^b\frac12 (1+x)^\,\mathrmx= \left.-\frac> \right|_a^b \] commands whenever possible. If you do so, you will get an elegant output without worrying about alignment and other details, keeping your source code readable. If you want to use it, you have to add this in the preamble: Шаблон:LaTeX/Usage

Introducing dots in formulas [ править ]

\[ \int\limits_a^b\frac12 (1+x)^\,\mathrmx= \left.-\frac> \right|_a^b \] defines also the \dots command, that is a generalization of the existing \ldots . You can use \dots in both text and math mode and LaTeX will replace it with three dots «…» but it will decide according to the context whether to put it on the bottom (like \ldots ) or centered (like \cdots ).

Dots [ править ]

LaTeX gives you several commands to insert dots (ellipses) in your formulae. This can be particularly useful if you have to type big matrices omitting elements. First of all, here are the main dots-related commands LaTeX provides:

Code Output Comment
\dots

generic dots (ellipsis), to be used in text (outside formulae as well). It automatically manages whitespaces before and after itself according to the context, it’s a higher level command.
\ldots

the output is similar to the previous one, but there is no automatic whitespace management; it works at a lower level.
\cdots

These dots are centered relative to the height of a letter. There is also the binary multiplication operator, \cdot , mentioned below.
\vdots

vertical dots
\ddots

diagonal dots
\iddots inverse diagonal dots (requires the \[ \int\limits_a^b\frac12

Instead of using \ldots and \cdots , you should use the semantically oriented commands. It makes it possible to adapt your document to different conventions on the fly, in case (for example) you have to submit it to a publisher who insists on following house tradition in this respect. The default treatment for the various kinds follows American Mathematical Society conventions.

Code Output Comment
A _ 1,A _ 2, \dotsc , for «dots with commas»
A _ 1+ \dotsb +A _ N for «dots with binary operators/relations»
A _ 1 \dotsm A _ N for «multiplication dots»
\int _ a ^ b \dotsi for «dots with integrals»
A _ 1 \dotso A _ N for «other dots» (none of the above)

Write an equation with the align environment [ править ]

How to write an equation with the align environment with the \[ \int\limits_a^b\frac12 (1+x)^\,\mathrmx= \left.-\frac> \right|_a^b \] package is described in Advanced Mathematics.

List of mathematical symbols [ править ]

All the pre-defined mathematical symbols from the \TeX\ package are listed below. More symbols are available from extra packages.

Relation Symbols

Symbol Script Symbol Script Symbol Script Symbol Script Symbol Script
> \,> > =

=

\parallel

\nparallel

\leq

\geq

\doteq

\asymp

\bowtie

\ll

\gg

\equiv

\vdash

\dashv

\subset

\supset

\approx

\in

\ni

\subseteq

\supseteq

\cong

\smile

\frown

\nsubseteq

\nsupseteq

\simeq

\models

\notin

\sqsubset

\sqsupset

\sim

\perp

\mid

\sqsubseteq

\sqsupseteq

\propto

\prec

\succ

\preceq

\succeq

\neq

\sphericalangle

\measuredangle

\therefore

\because
Binary Operations

Symbol Script Symbol Script Symbol Script Symbol Script
±

\pm

\cap

\diamond

\oplus

\mp

\cup

\bigtriangleup

\ominus
×

\times

\uplus

\bigtriangledown

\otimes
÷

\div

\sqcap

\triangleleft

\oslash

\ast

\sqcup

\triangleright

\odot

\star

\vee

\bigcirc

\circ

\dagger

\wedge

\bullet

\setminus

\ddagger

\cdot

\wr ⨿

\amalg
Set and/or Logic Notation

Symbol Script Symbol Script

\exists

\rightarrow or \to

\nexists

\leftarrow or \gets

\forall

\mapsto
¬

\neg

\implies

\subset \impliedby

\supset

\Rightarrow or \implies

\in

\leftrightarrow

\notin

\iff

\ni

\Leftrightarrow (preferred for equivalence (iff))

\land

\top

\lor

\bot

\angle ∅ and ∅

\emptyset and \varnothing [1]

\rightleftharpoons
Delimiters

Symbol Script Symbol Script Symbol Script Symbol Script
|

| or \mid (difference in spacing)

\| / /

\backslash
\

> \,> \>

\langle

\rangle

\uparrow

\Uparrow

\lceil

\rceil

\downarrow

\Downarrow

\lfloor

\rfloor

Note: To use the Greek Letters in LaTeX that have the same appearance in the Latin alphabet, just use Latin: e.g., A instead of Alpha, B instead of Beta, etc.

Greek Letters

Symbol Script Symbol Script
A and α

A and \alpha N \,> and ν

N and \nu
B \,> and β

B and \beta Ξ and ξ

\Xi and \xi
Γ and γ

\Gamma and \gamma O \,> and o \,> O and o
Δ and δ

\Delta and \delta Π , π and ϖ

\Pi , \pi and \varpi
E \,> , ϵ and ε

E , \epsilon and \varepsilon P \,> , ρ and ϱ

P , \rho and \varrho
Z \,> and ζ

Z and \zeta Σ , σ and ς

\Sigma , \sigma and \varsigma
H \,> and η

H and \eta T \,> and τ

T and \tau
Θ , θ and ϑ

\Theta , \theta and \vartheta Υ and υ

\Upsilon and \upsilon
I \,> and ι

I and \iota Φ , ϕ , and φ

\Phi , \phi and \varphi
K \,> , κ and ϰ

K , \kappa and \varkappa X \,> and χ

X and \chi
Λ and λ

\Lambda and \lambda Ψ and ψ

\Psi and \psi
M \,> and μ

M and \mu Ω and ω

\Omega and \omega
Other symbols

Symbol Script Symbol Script Symbol Script Symbol Script Symbol Script

\partial ı

\imath

\Re

\nabla

\aleph
ð

\eth ȷ

\jmath

\Im

\Box

\beth

\hbar

\ell

\wp

\infty

\gimel

^ Not predefined in LATEX 2. Use one of the packages latexsym, amsfonts, amssymb, txfonts, pxfonts, or wasysym

Trigonometric Functions

Symbol Script Symbol Script Symbol Script Symbol Script
sin

\sin arcsin

\arcsin sinh

\sinh sec

\sec
cos

\cos arccos

\arccos cosh

\cosh csc

\csc
tan

\tan arctan

\arctan tanh

\tanh
cot

\cot arccot \,> \arccot coth

\coth

If LaTeX does not include a command for the mathematical operator you want to use, for example \cis (cosine plus i times sine), add to your preamble:

\DeclareMathOperator\cis

You can then use \cis in the document just like \cos or any other mathematical operator.

Summary [ править ]

As you begin to see, typesetting math can be tricky at times. However, because LaTeX provides so much control, you can get professional quality mathematics typesetting with relatively little effort (once you’ve had a bit of practice, of course!). It would be possible to keep going and going with math topics because it seems potentially limitless. However, with this tutorial, you should be able to get along sufficiently.

Notes [ править ]

Further reading [ править ]

  • meta:Help:Displaying a formula: Wikimedia uses a subset of LaTeX commands.

External links [ править ]

  • detexify: applet for looking up LaTeX symbols by drawing them
  • amsmath documentation
  • LaTeX — The Student Room
  • The Comprehensive LaTeX Symbol List
  • MathLex — LaTeX math translator and equation builder

МЕТОДЫ ОЦЕНКИ КОМПЕТЕНТНОСТИ СТУДЕНТОВ

На сегодняшний день по-прежнему актуальной является проблема создания методов и технологий оценки компетентности студентов. Повсе-местное введение компетентностного подхода в российских вузах (в рам-ках действующих ГОС) не решило данную проблему. Разработка эффек-тивных методов и измерительных процедур оценки компетентности воз-можна только на основе методов математического моделирования и си-стемного анализа.

Компетентностный подход; высшее образование; модель компетент-ности студентов

  • Страницы, использующие устаревший тег source
  • Страницы с устаревшим атрибутом подсветки синтаксиса «enclose»
  • Математические формулы в LaTeX
  • Страницы, использующие математические теги в устаревшем формате

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *