Рефераты
 

Система Mathcad

p align="left">7. Как осуществляется в системе MathCAD решение неоднородных систем линейных уравнений, когда определитель равен нулю и при условии, что ранг матрицы системы равен рангу расширенной матрицы системы?

8. Как осуществляется в системе MathCAD решение однородных систем линейных уравнений, когда определитель матрицы равен нулю (т.е. ранг матрицы должен быть меньше порядка матрицы)?

Лекция № 14

Символьные вычисления

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

Способы символьных вычислений.

Символьные вычисления в MathCAD можно осуществить в двух различных вариантах:

1. с помощью команд меню;

Последняя команда в меню “Evaluation Style” определяет стиль вывода результата: результат можно располагать вертикально (сверху или снизу вычисляемого выражения) или горизонтально.

2. с помощью оператора символьного вывода , ключевых слов символьного процессора и обычных формул. Оператор символьного вывода можно ввести несколькими способами: с помощью клавиш Ctr+< . >, с панелей <Evaluation> или <Symbolic>

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

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

Наличие меню символьных вычислений - своего рода дань прежним версиям MathCAD.

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

Алгебраические вычисления.

1. Simplify (Упростить)

2. Expand (разложение выражений по степеням).

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

3. Factor (разложение выражений на множители)

Эта операция позволяет разложить полиномы на произведение более простых полиномов, а целые числа - на простые сомножители.

В вышеприведенном примере местозаполнитель после ключевого слова factor надо удалить.

4. Collect (приведение подобных слагаемых ).

После ключевого слова collect допускается задание нескольких переменных через запятую. В этом случае приведение подобных слагаемых выполняется последовательно по всем переменным.

5. Polynomial Coefficients (коэффициенты полинома)

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

6. Ряды и произведения.

Шаблоны для ввода сумм и произведений находятся на панели Calculus. Там же находится символ .

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

7. Convert to Partial Fractions (Разложение на элементарные дроби)

8. Substitute (подстановка переменной)

9. Матричная алгебра

Символьно можно осуществлять следующие матричные операции:

- Transpose (транспонирование)

- Invert (Обратная матрица)

- Determinant (Определитель)

Аналогично производятся две другие матричные операции.

Математический анализ.

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

1. Пределы последовательностей и функций.

Вычисление пределов является одной из основных задач математического анализа. Система MathCAD позволяет с высокой эффективностью находить любые пределы.

Операторы MathCAD для вычисления пределов расположены на панели Calculus. Данная панель содержит три кнопки:

Two-sided Limit (двухсторонний предел), Left-sided Limit (левосторонний предел) и Right-sided (правосторонний предел), при нажатии на которые появляются соответственно

Необходимо помнить, что пределы, в отличие от большинства математических операций в MathCAD, можно вычислить только в символьном виде, а при попытке вычислить предел численно (с помощью знака “=”) будет выдано сообщение об ошибке.

Предел последовательности. Фактически предел последовательности, если он существует, - это число, к которому приближаются элементы последовательности при значении индекса n, стремящегося к . Для вычисления предела последовательности надо ввести шаблон для двухстороннего предела, заполнить его, затем ввести соответствующую команду из символьного меню или знак символьного вывода .

Если последовательность не имеет предела, то будет выдано слово undefined (не определено).

Знак символьного вывода позволяет использовать функцию пользователя.

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

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

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

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

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

2. Дифференцирование.

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

Символьное дифференцирование можно осуществить тремя способами:

1. Вставить шаблон из панели Calculus, заполнить его и применить команду из меню

Symbolics/Simplify или Symbolics/Evaluate/Symbolically

2. Вставить шаблон из панели Calculus, заполнить его и применить команду символьного вывода или ключевое слово simplify c панели Symbolics (кардинальская шапка);

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

Symbolics/Variable/Differentiate.

В вышеприведенном примере показано и численное дифференцирование функции в точке x=2, при этом символьная производная запоминается в функции D(x), затем происходит обращение к этой функции и дается команда численного вычисления (знак “=”). Для численного дифференцирования MathCAD применяет довольно сложный алгоритм Риддера, вычисляющий производную с колоссальной точностью до 7-8 знака после запятой. Существенно, что погрешность дифференцирования не зависит от констант TOL и CTOL, в противоположность большинству остальных численных методов, а определяется непосредственно алгоритмом.

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

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

Частные производные. С помощью обоих процессоров MathCAD можно вычислять производные функций любого количества аргументов. В этом случае, как известно, производные по разным аргументам называются частными. Чтобы вычислить частную производную, необходимо, как обычно, ввести оператор производной с панели Calculus и в соответствующем местозаполнителе напечатать имя переменной, по которой должно быть осуществлено дифференцирование. Для того, чтобы изменить вид оператора дифференцирования на представление частной производной, необходимо выбрать из контекстного меню для области оператора дифференцирования пункт View Derivative As (Изображать производную как), в появившемся подменю выбрать пункт Partial Derivative (Частная производная).

Частные производные высших порядков рассчитываются точно так же, как и обычные производные высших порядков.

3. Интегрирование.

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

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

Для вычисления определенного интеграла надо вставить в документ шаблон оператора определенного интеграла с панели Calculus. После заполнения всех полей ввода для вычисления интеграла следует ввести знак “=”.

При численном интегрировании основная проблема состоит в том, что интегрирование с высокой точностью сложных функций требует значительного времени. В таких случаях приходится искать компромисс между точностью и скоростью расчета. В MathCAD вы сами можете контролировать точность проводимых вычислений. Для этого служит встроенная переменная TOL. Но нельзя сказать однозначно, какой будет точность вычисления того или иного интеграла при заданном значении TOL. Все численные методы интегрирования в MathCAD строятся на последовательных приближениях, и значение переменной TOL указывает, какой должна быть разница между двумя последовательными приближениями для остановки вычислений. Поэтому не стоит воспринимать значение этой переменной как точность вычисления интеграла, можно лишь с уверенностью сказать, точность будет не ниже значения TOL. Также следует помнить, что слишком низкое значение TOL может привести к тому, что MathCAD не сможет вычислить интеграл и выдаст ошибку, поэтому для большинства однократных интегралов значение TOL лучше выбирать в диапазоне 10-310-4.

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

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

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

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

Значение переменной TOL не имеет никакого значения для символьных вычислений.

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

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

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

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

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

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

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

Дополнительные возможности символьного процессора.

1. С помощью символьного процессора можно рассчитать численное значение выражения (действительное или комплексное). Иногда такой путь считается более удобным, чем применение численного процессора.

Вычисления по команде complex позволяют представить выражение в виде a+jb. Вышеприведенные действия можно осуществить и с помощью соответствующих команд из меню Symbolic.

2. Последовательности символьных команд.

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

3. Решение неравенств в символьной форме

4. Решение систем уравнений в символьной форме

Вопросы

1. Что такое символьные вычисления? Какие способы символьных вычислений имеются в системе MathCAD? В чем преимущество вычислений с помощью оператора символьного равенства перед вычислениями с помощью меню Symbolic?

2. Какой оператор осуществляет численные вычисления? И какой - символьные вычисления?

3. Какие алгебраические символьные вычисления может делать система MathCAD? Можно ли вычислить сумму или произведение ряда с помощью оператора численного вычисления, если верхний предел равен ?

4. Какие матричные операции можно осуществить символьно?

5. Какие операторы предусмотрены для вычисления пределов в MathCADе? Можно ли вычислить предел численно?

6. Как осуществляется вычисление предела последовательности? Функции в точке, когда функция непрерывна, и в точках разрыва? Как можно обойти на графике особые точки функции (типа 0/0)?

7. Назовите три способа символьного дифференцирования. Приведите пример. Как можно определить производную в точке? Влияют ли константы TOL и CTOL на точность численного дифференцирования? Как можно определить производную вблизи точки разрыва?

8. Как вычисляются в MathCADе производные высших порядков и частные производные? Производные только каких порядков можно вычислить численно и почему?

9. Что такое численное интегрирование в MathCADе и как оно осуществляется? С помощью какой встроенной переменной можно контролировать точность численного интегрирования? От чего еще зависит точность численного интегрирования?

10. Назовите три способа символьного вычисления неопределенного интеграла в системе MathCAD. Приведите пример. Как осуществляется вычисление определенного интеграла с помощью оператора символьного равенства?

11. Как вычисляются интегралы с параметром, расходящиеся интегралы, кратные интегралы?

12. Как можно с помощью символьного процессора рассчитать численное значение выражения (вещественное или комплексное)?

13. Как создаются последовательности символьных команд? Приведите примеры.

14. Как решаются в MathCADе уравнения, неравенства и системы уравнений в символьной форме?

Лекция № 15

Решение дифференциальных уравнений в MathCAD

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

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

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

Как известно, одно обыкновенное дифференциальное уравнение или система ОДУ имеет единственное решение, если помимо уравнения определенным образом заданы начальные или граничные условия. Имеется два типа задач, для которых возможно численное решение ОДУ с помощью MathCAD:

- задачи Коши, для которых определены начальные условия на искомые функции, т.е. заданы значения этих функций в начальной точке интервала интегрирования уравнения;

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

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

В MathCAD нет универсальной функции для решения дифференциальных уравнений, а есть около двадцати функций для различных видов уравнений, дополнительных условий и методов решения. Эти функции можно найти в библиотеке Insert/Function, категория “Differential Equation Solving (решение дифференциальных уравнений).

Решение Обыкновенных Дифференциальных Уравнений (ОДУ)

ОДУ первого порядка.

ОДУ первого порядка называется уравнение

F(x,y,y')=0

F - известная функция трех переменных;

x - независимая переменная на интервале интегрирования[a,b];

y - неизвестная функция;

y' - ее производная.

Функция y(x) является решением дифференциального уравнения, если она при всех x[a,b] удовлетворяет уравнению

F(x,y(x),y'(x))=0

График решения y(x) называется интегральной кривой дифференциального уравнения. Если не заданы начальные условия, таких решений y(x) будет множество. При известных начальных условиях y(x0)= y0 решение y(x) будет единственным.

Вычислительный процессор MathCAD может работать только с нормальной формой ОДУ. Нормальная форма ОДУ - это ОДУ, разрешенное относительно производной

y'=f(x,y)

ОДУ высших порядков.

Обыкновенным дифференциальным уравнением n-го порядка называется уравнение вида

F(x,y,y',y'', …,y(n))=0

F - известная функция n+2 переменных;

x - независимая переменная на интервале интегрирования[a,b];

y - неизвестная функция;

n - порядок уравнения.

Функция y(x) является решением дифференциального уравнения, если она при всех x[a,b] удовлетворяет уравнению

F(x, y(x), y'(x), y''(x),…, y(n)(x))=0

Нормальная форма ОДУ высшего порядка имеет вид

Y(n) =f(x, y, y', …, y(n-1))

Если не заданы начальные условия, то дифференциальное уравнение n - го порядка имеет бесконечное множество решений, при задании начальных условий y(x0)= y0, y'(x0)= y0,1, y''(x0)= y0,2, …, y(n-1)(x0)= y0,n-1 решение становится единственным (задача Коши).

Задача Коши для дифференциального уравнения n - го порядка может быть сведена к задаче Коши для нормальной системы n дифференциальных уравнений 1 го порядка, которая в векторной форме имеет вид

Y' = F(x, Y), Y(x0) = Y0

Y(x0) = Y0 - вектор начальных условий;

Y'=(y'1, y'2, …, y'n) - вектор первых производных;

F(x, Y) = (y2, y3, …, yn, f(x,y1, … , yn) - вектор правых частей;

Y = (y2, y3, …, yn) - вектор искомого решения.

Эта система получается в результате следующей замены:

,где

Для численного интегрирования ОДУ в MathCAD имеется выбор - либо использовать вычислительный блок Given/Odesolve, либо встроенные функции. Оба способа обладают одинаковыми возможностями, но при использовании блока решения запись уравнений более привычна и наглядна, однако отдельная функция может быть использована в составе других функций и программ. Рассмотрим оба варианта решения.

Вычислительный блок Given/Odesolve

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

Вычислительный блок для решения одного ОДУ состоит из трех частей:

- ключевое слово given;

- ОДУ и начальные условия, записанные с помощью логического равенства;

- встроенная функция Odesolve(x, b) относительно независимой переменной x на интервале [a, b]; b - верхняя граница отрезка интегрирования. Допустимо и даже предпочтительнее задание функции Odesolve(a, b, step) с тремя параметрами, где step - внутренний параметр численного метода, определяющий количество шагов; чем больше step, тем с лучшей точностью будет получен результат, но тем больше времени будет затрачено на его поиск.

Функция Odesolve возвращает решение задачи в виде функции. Эта функция не имеет символьного представления и может только вернуть численное значение решения уравнения в любой точке интервала интегрирования.

Функция Odesolve использует для решения дифференциальных уравнений наиболее популярный алгоритм Рунге-Кутта четвертого порядка, описанный в большинстве книг по методам вычислений. Он обеспечивает малую погрешность для широкого класса систем ОДУ за исключением жестких систем. Если щелчком правой кнопки мыши на блоке формул с функцией Odesolve вызвать контекстное меню, то можно изменить метод вычисления решения, выбрав один из трех вариантов: Fixed - метод Рунге-Кутта с фиксированным шагом интегрирования (этот метод используется по умолчанию), Adaptive - также метод Рунге-Кутта, но с переменным шагом, изменяемым в зависимости от скорости изменения функции решения, Stiff - метод, адаптированный для решения жестких уравнений и систем (используется так называемый метод PADAUS).

Альтернативный метод решения ОДУ заключается в использовании одной из встроенных функций: rkfixed, Rkadapt, или Bulstoer. Все они решают задачу Коши для системы дифференциальных уравнений первого порядка, но каждая из них использует для этого свой метод. Для простых систем не играет большой роли, какой метод использовать - все равно получите решение достаточно быстро и с высокой точностью. Но для сложных или специфических систем бывает, что некоторые методы вообще не могут дать удовлетворительного решения за приемлемое время. Именно для таких сложных, но не редких случаев в MathCAD и введено несколько различных методов решения систем ДУ.

- rkfixed - метод Рунге-Кутта с фиксированным шагом интегрирования. Самый простой и быстрый метод, но далеко не всегда самый точный. Полностью аналогичен использованию функции Odesolve с выбранным в контекстном меню методом Fixed.

- Rkadapt - метод Рунге-Кутта с переменным шагом интегрирования. Величина шага адаптируется к скорости изменения функции решения. Данный метод позволяет эффективно находить решения уравнений, в случае если оно содержит как плавные, так и быстро меняющиеся участки. Там, где решение меняется слабо, шаги выбираются более редкими, а в областях его сильных изменений - частыми. В результате для достижения одинаковой точности требуется меньшее число шагов, чем для rkfixed. Полностью аналогичен использованию функции Odesolve с выбранным в контекстном меню методом Adaptive.

- Bulstoer - метод Булирша - Штера. Этот метод более эффективен, чем метод Рунге-Кутта, в случае если решение является плавной функцией.

Имена функций Rkadapt и Bulstoer начинаются с прописной буквы. В MathCAD для некоторых имен функций неважно, с какой буквы они записаны, но для перечисленных функций это принципиально, т.к. в MathCAD также существуют функции с такими же именами, только записанные с маленькой буквы - rkadap, bulstoer. Эти функции используются в тех случаях, когда важным является решение задачи в конечной точке интервала интегрирования.

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

Применение встроенных функций в документах MathCAD выглядит сходным образом, т.е. функции Rkadapt и Bulstoer имеют тот же синтаксис, что и выше приведенная функция rkfixed. Назначение аргументов в этих встроенных функциях следующее:

- y - вектор начальных значений неизвестных функций, входящих в систему. В случае одного уравнения и одной неизвестной функции - это просто число.

- а - начало отрезка, на котором ищется решение системы (отрезка интегрирования). Именно в этой точке значения неизвестных функций принимаются равными элементам вектора y.

Страницы: 1, 2, 3, 4


© 2010 BANKS OF РЕФЕРАТ