MathCAD. MatLab
Обойти эти трудности можно довольно просто, если решить уравнение на новом рабочем листе.
Покажем ещё решение для полинома третьего порядка.
Мы определили заранее значение констант, в противном случае решение получится в общем виде и на лист не помещается. Попробуйте его вывести и посмотрите, что получится.
Символьные операции в MathCAD
Интегрирование и дифференцирование
Интегрирование и дифференцирование — самые простые, с вычислительной точки зрения, операции, реализованные в MathCAD в виде операторов. Тем не менее, если расчеты выполняются с помощью вычислительного процессора, необходимо хорошо представлять себе особенности численных алгоритмов, действие которых остается для пользователя \»за кадром\».
Интегрирование, дифференцирование, как и множество других математических действий, устроено в MathCAD по принципу \»как пишется, так и вводится\». Чтобы вычислить определенный интеграл, следует напечатать его обычную математическую форму в документе. Делается это с помощью панели Calculus (Вычисления) нажатием кнопки со значком интеграла или вводом с клавиатуры сочетания клавиш + (или символа \»&\», что то же самое). Появится символ интеграла с несколькими местозаполнителями, в которые нужно ввести нижний и верхний интервалы интегрирования, подынтегральную функцию и переменную интегрирования.
Можно вычислять интегралы с одним или обоими бесконечными пределами. Для этого на месте соответствующего предела введите символ бесконечности, воспользовавшись, например, той же самой панелью Calculus (Вычисления). Чтобы ввести -°° (минус бесконечность), добавьте знак минус к символу бесконечности, как к обычному числу.
Чтобы получить результат интегрирования, следует ввести знак равенства или символьного равенства. В первом случае интегрирование будет проведено численным методом, во втором — в случае успеха, будет найдено точное значение интеграла с помощью символьного процессора MathCAD.
Об алгоритмах интегрирования
Результат численного интегрирования — это не точное, а приближенное значение интеграла, определенное с погрешностью, которая зависит от встроенной константы TOL.
Ввод в документ MathCad функций
При выполнении сложных и громоздких вычислений можно пользоваться всем арсеналом функций, которые заложены разработчиками в систему Mathcad. Вводить имена таких функций можно с клавиатуры, но чтобы избежать возможных ошибок в их написании, лучше использовать диалоговое окно Insert Function (Поместить функцию), рис. 1.4.
Рис. 1.4. Вставка встроенной функции с помощью диалогового окна
Чтобы ввести встроенную функцию в выражение, нужно определить место в выражении, куда следует вставить функцию, нажать кнопку f(x) на стандартной панели инструментов. В списке Function Category (Категория) появившегося диалогового окна Insert Function (Поместить функцию), рис. 1.4, нужно выбрать категорию, к которой принадлежит функция, а в списке Function Name (Имя функции) — имя встроенной функции и нажать кнопку Оk. Когда формат функции появится в документе, в ее маркеры нужно ввести требуемые аргументы.
Подобно присваиванию числовых значений переменным, можно определить функции пользователя от одного или нескольких аргументов, например,

Ч
тобы построить график функцииf(x), следует нажать на панели Graph (График) кнопку с шаблоном декартового графика и заполнить маркеры на осях именами х и f(х), рис. 1.5.
Рис. 1.5. Построение графика функции
Типы данных, используемые в Mathcad’e
Перечислим основные типы переменных, которые используются в Mathcad.
Действительные числа
Л
юбое выражение, начинающееся с цифры, Mathcad интерпретирует как число. Можно организовать ввод чисел в десятичной (decimal), двоичной (binary), восьмеричной (octal) или шестнадцатеричной (hexadecimal) системах счисления. При записи чисел используются суффиксы b, o, h, например, рис. 1.6.
Рис. 1. 6. Ввод чисел в различных системах счисления
Большинство операций в среде Mathcad по умолчанию осуществляются над комплексными числами. Комплексное число является суммой действительного и мнимого числа, получающегося путем умножения любого действительного числа на мнимую единицу (imaginary unit) i. По определению полагается, i 2 = -1. Чтобы ввести мнимое число, например 3i, надо нажать клавиши <3>, <i>. Если просто ввести символ «i», то Mathcad интерпретирует его как переменную i. Кроме того, мнимая единица имеет вид 1i, только когда соответствующая формула выделена. В противном случае мнимая единица отображается просто как i (рис. 1.7).

Рис. 1.7. Ввод мнимой единицы
К
омплексное число можно ввести в виде обычной суммы действительной и мнимой частей или в виде любого выражения, содержащего мнимое число. Примеры ввода и вывода комплексных чисел иллюстрируются рис. 1.8.
Рис. 1.8. Ввод/вывод комплексных чисел
Можно выводить мнимую единицу в результатах вычислений не как i, а как j. Для смены представления можно выбрать нужное в списке Imaginary Value (Мнимое значение) диалогового окна Result Format (Формат результата), доступного по команде Format/ Result/ Display Options (Формат/ Результат/ Установки экрана).
Для работы с комплексными числами имеются встроенные функции, рис. 1.9.

Рис. 1.9.Использование встроенных функций
Некоторые имена в Mathcad зарезервированы под системные переменные, которые называются встроенными константами (built-in constants). Встроенные константы делятся на два типа: математические (math constants), хранящие значения некоторых общеупотребительных специальных математических символов, и системные (system variables), определяющие работу большинства численных алгоритмов, реализованных в Mathcad. При желании можно изменить значение любой из перечисленных констант или использовать их в качестве переменных в расчетах. Если присвоить константе новое значение, прежнее станет недоступным.
Математические константы по-разному интерпретируются при численных и символьных вычислениях. Вычислительный процессор просто воспринимает их как некоторые числа, а символьный распознает каждое из них, исходя из математического контекста, и способен выдавать математические константы в качестве результата. Перечислим математические константы:
— ∞- символ бесконечности (вводится клавишамиCtrl+Shift+z);
— е- основание натурального логарифма (клавишае);
— π — число «пи» (вводится клавишамиCtrl+Shift+p);
— i, j- мнимая единица (вводится клавишами1iили1j);
Системные переменные определяют работу численных методов, заложенных во встроенные функции. Допускается их менять в любой части документа. К ним относятся:
— TOL- точность численных методов;
— CTOL- точность выполнения выражений, используемая в некоторых численных методах;
— ORIGIN- номер начального индекса в массивах и строковых переменных;
— PRNPRECISION- установка формата данных при выводе в файл;
— PRNCOLWIDTH- установка формата столбца при выводе в файл;
— CWD- строковое представление пути к текущему рабочему каталогу.
Значением переменной или функции может быть не только число, но и строка, состоящая из любой последовательности символов, заключенной в двойные кавычки. Можно определять пользовательские функции строкового типа.
Системная константа ORIGIN может устанавливать не только номер начального индекса массивов, но и начало отсчета для соответствующих встроенных функций строкового (текстового) аргумента. Для включения этой опции нужно установить флажок проверки Use ORIGIN for string indexing (Использовать ORIGIN для индексации строк) на вкладке Calculations (Вычисление) диалогового окна Worksheet options (Свойства таблицы) меню Tools (Инструменты).
Начиная с версии Mathcad 12 введен новый тип данных, носящий имя NaN — NotANumber (НеЧисло). Он предназначен, главным образом, для идентификации элементов массивов, содержащих пропущенные (по тем или иным причинам) данные. В частности, при импорте матрицы данных из внешнего файла элементам, соответствующим пропускам (пустым местам в файле), будет автоматически присвоено значение NaN. Если какие-либо элементы вектора или матрицы, имеющие тип NaN, будут откладываться на графике, то они станут просто игнорироваться при построении кривой. Тем самым, во-первых, повышается надежность импорта данных из файлов; во-вторых, улучшается качество построения графиков рядов данных при наличии пропусков; и, в-третьих, пользователю предоставляются дополнительные средства по управлению вычислениями, т. к. любой переменной можно присвоить значение НеЧисло, например: x:=NaN. Математическое выражение, включающее в себя число типа NaN, тоже имеет тип NaN. Идентифицировать значение переменной или выражения как НеЧисло можно при помощи новой служебной функции isNaN:
Как поставить знак "бесконечность" в Mathcade?
RPI.su — самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected] . Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.
MathCAD — это просто! Часть 14. Глубины интегрирования и другие интересные вещи
Изучая MathCAD с помощью серии статей «MathCAD — это просто», мы с вами добрались до такого непростого вопроса, как интегрирование функций. Поговорив с вами о таких полезных вещах, как полные и частные производные, мы, если вы помните, перебрались сначала к неопределенным, а потом — и к определенным интегралам. Говоря об определенных интегралах, мы выяснили, что вычислять их можно двумя (как это обычно и водится в MathCAD’е) способами: аналитически, препоручая наш интеграл заботам символьного процессора, или численно. Второй способ вычисления интегралов позволяет вычислять даже так называемые неберущиеся интегралы — то есть такие, которые не могут быть проинтегрированы в виде неопределенного интеграла таким образом, чтобы результат мог быть получен в виде композиции элементарных функций. Однако здесь, что называется, зарыта собака, способная напрочь испортить все то хорошее, что мы имеем, применяя численные методы интегрирования. Вот об этой злокозненной собаке, а также о некоторых других интересных и полезных вещах мы с вами прямо сейчас и станем говорить.
Несобственные интегралы
Перед тем, как углубляться во внутренние процессы вычисления интегралов численными методами, стоит немного поговорить о вычислении несобственных интегралов. Тема эта, впрочем, совсем не сложная, а потому и говорить о них мы с вами будем совсем чуть-чуть.
Напомню, что несобственным называется определенный интеграл, у которого хотя бы одна из границ интегрирования равняется бесконечности. Несобственные интегралы могут быть сходящимися или расходящимися, то есть не равными или равными бесконечности. Например, значения несобственного интеграла от нуля до плюс бесконечности для любой возрастающей функции всегда будет бесконечным. Для убывающих функций, как правило, подобные интегралы сходятся, хотя это тоже не всегда так — для этого функция, помимо убывания, должна удовлетворять еще ряду критериев, найти которые можно в любом учебнике по математическому анализу. Что касается вычисления несобственных интегралов в среде MathCAD, то здесь, в общем-то, особой разницы между несобственными и всеми остальными определенными интегралами нет. Для вычисления несобственного интеграла достаточно установить в качестве граничного значения бесконечность (напомню: для этого достаточно воспользоваться соответствующей кнопкой на панели Calculus), и MathCAD посчитает вам несобственный интеграл.
Как и в случае с остальными определенными интегралами, лучше по возможности считать их с помощью символьного процессора, то есть аналитически. Если это по какой-либо причине невозможно, то тогда уже придется обратиться к численному расчету. Однако здесь многих может ожидать довольно неприятная неожиданность: несходящиеся интегралы при численном интегрировании MathCAD считает чем-то вроде природной аномалии. Потому, если у вас при численном вычислении несобственного интеграла MathCAD выдает ошибку (см. соответствующую иллюстрацию к статье), то знайте, что вы, скорее всего, все сделали правильно, просто значение этого интеграла равно бесконечности.
Кухня численного интегрирования
В общем и целом вычисление интегралов численными методами — это фактически использование математического определения (простите за тавтологию) определенного интеграла. Что это значит? Давайте попробуем вспомнить, как трактуются определенные интегралы с точки зрения математического анализа.
Для иллюстрации понятия определенного интеграла чаще всего прибегают к прикладной задаче, легко решаемой с помощью интегрирования — определению площади фигуры под кривой, заданной какой-либо функцией. Для вычисления этой площади используется следующий подход: участок оси OX от a до b (см. иллюстрацию) разбивается на несколько мелких участков, для каждого из которых рассчитывается площадь прямоугольника, ограниченного прямыми, проведенными до пересечения с графиком функции, который ограничивает фигуру. Если мы просуммируем потом площади этих прямоугольников, то как раз и получится величина, приблизительно равная площади фигуры под графиком. Для того, чтобы от приблизительного равенства перейти к точному, надо устремить к нулю длину каждого из отрезков, на которые мы разбиваем участок оси OX от a до b, и тогда определенный интеграл будет равен пределу суммы площадей получившихся в результате прямоугольников. Такой определенный интеграл математики называют определенным интегралом в римановом смысле, или интегралом в смысле Римана.
Фактически большая часть численных методов вычисления определенных интегралов использует как раз риманово определение. Конечно, отрезки берутся не бесконечно малыми, но, тем не менее, довольно мелкими. Однако именно конечные размеры отрезков разбиения являются, по существу, основным источником ошибок и погрешностей при численном интегрировании. С ними (погрешностями) борются. Конечно, здесь тоже есть вариации. Например, если вы внимательно посмотрите на иллюстрацию к определению интеграла в римановом смысле, то легко сможете заметить, что использование прямоугольников в качестве базовых фигур для расчета площади — далеко не лучший из возможных вариантов. Если мы воспользуемся трапециями, верхние стороны которых будут соединять пересечения прямых, проведенных из концов отрезков разбиения, с графиком функции, то итоговое значение площади фигуры получится куда более точным, чем в том случае, когда мы использовали прямоугольники. Еще большей точности можно добиться, используя вместо прямых линий графики полиномов, однако это уже может существенно замедлить процесс вычисления значения определенного интеграла.
В MathCAD основным алгоритмом, используемым при численном интегрировании, является алгоритм, основанный как раз на использовании трапеций — этот метод вычисления определенных интегралов называется методом Ромберга. Есть в MathCAD и другой численный метод, используемый для вычисления интегралов от быстро изменяющихся функций — его разработчики этого математического пакета называли адаптивным. Его отличие от метода Ромберга заключается в том, что шаг разбиения интервала, на котором производится интегрирование, изменяется в соответствии со скоростью изменения значения самой функции, что позволяет дополнительно минимизировать погрешность. Еще одно преимущество этого метода интегрирования заключается в том, что мы можем с его помощью хорошо управляться с разрывами первого рода, которые при использовании метода Ромберга часто вообще приводят к тому, что функцию становится невозможным проинтегрировать численно. Напомню, что разрывом первого рода называется точка, для которой правосторонний и левосторонний пределы функции не равны друг другу, но при этом конечны. Если же хотя бы один из пределов бесконечен, то тогда точка называется разрывом второго рода.
MathCAD по умолчанию использует именно адаптивный метод вычисления определенных интегралов, поскольку он, как я уже говорил, более гибок в отношении различных типов функций. Впрочем, вы можете воспользоваться и методом Ромберга, если в этом возникнет необходимость. Для этого кликните правой кнопкой мыши по тому интегралу, метод вычисления которого вы желаете изменить, и выберите в появившемся контекстном меню пункт Romberg. Впрочем, наилучшим вариантом все же будет используемый по умолчанию Auto Select, поскольку тогда сам MathCAD определит метод, согласно которому будет вычисляться данный интеграл. А метод он подбирает обычно правильно, то есть, если вы предоставите выбирать все самому MathCAD’у, то это будет, пожалуй, самым удачным решением.
Вы наверняка заметили, что, кроме метода Ромберга и адаптивного метода вычисления интегралов, в контекстном меню можно выбрать еще два других метода — Infinite Limit и Singular Endpoint. Эти методы используются для вычисления несобственных интегралов. Метод Singular Endpoint — это еще одна разновидность метода Ромберга, специально предназначенная для несобственных интегралов, а про Infinite Limit разработчики MathCAD распространяться по каким-то одним им известным причинам не захотели.
Интегралы с параметрами
Напоследок еще совсем чуть-чуть поговорим про интегралы с параметрами. Почему чуть-чуть? Да потому, что работать с ними в MathCAD’е ничуть не сложнее, чем со всеми остальными типами интегралов, с которыми мы с вами уже сталкивались. Параметры могут стоять как в подынтегральном выражении, так и (для определенных интегралов) в границах интегрирования. Вы можете применять любые обозначения для параметров (лучше, конечно, чтобы они не конфликтовали со встроенными переменными среды MathCAD — но в случае конфликта MathCAD вам сам об этом сообщит). Для работы с интегралами с параметрами вам, конечно же, придется использовать только аналитические способы интегрирования.
Мощь среды MathCAD позволяет вам в процессе интегрирования использовать самые разнообразные операторы для получения значений интегралов — вы можете использовать интегралы для вычисления границ интегрирования других интегралов, дифференцировать подынтегральные выражения и делать многое другое, вычисляя при этом интегралы и с использованием параметров. На иллюстрации видно, что MathCAD легко справился с «трехэтажным» интегралом, который содержит в себе все эти элементы.
Что ж, вот мы с вами, пожалуй, и разобрались с таким важным аспектом применения среды MathCAD, как работа с производными, пределами, рядами, интегралами — словом, со всем тем, что в ВУЗовском курсе математики зовется математическим анализом. Как видите, MathCAD способен сильно облегчить жизнь студенту, который борется с интегралами для написания курсовой, или даже профессору, который использует методы математического анализа в своей научной работе.
SF, spaceflyer@tut.by
Компьютерная газета. Статья была опубликована в номере 27 за 2008 год в рубрике soft