Какие функции для решения одного уравнения в mathcad вы знаете
Перейти к содержимому

Какие функции для решения одного уравнения в mathcad вы знаете

  • автор:

Решение уравнений в MathCad

Для решения уравнений в Mathcad можно воспользоваться двумя способами:

Использование метода Given — Find:

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

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

Рис. 1. Ввод данных в поле mathcad

Далее вводится уравнение. Его можно записать в явном или неявном виде. Само уравнение набирается с клавиатуры вручную с использованием панели Calculator. Из этой панели можно взять основные математические операции: дроби, тригонометрию, факториалы и прочее. Уравнение нужно записывать с использованием логического символа «ровно». На панели Boolean он выделен жирным шрифтом (см. рис. 2)

Рис. 2. Панели Boolean и Calculator

После уравнения вводится функция Find(x) (где х — переменная). Это функция, которая возвращает результат. Значение функции Find(x) можно присвоить какой-либо переменной с помощью символа «:=» и использовать ее далее в расчетах

Для получения результата, после Find(x) следует поставить символ «» либо «=» из панели Evaluation (см. рис. 3). Причем, если вы используете символ ««, то mathcad определит все корни уравнения и сформирует матрицу результатов. Но если вы используете символ «=«, то mathcad выведет единственный корень, который был наиболее близок к начальному приближению. Так что, если вы не знаете сколько корней имеет уравнение, то лучше использовать стрелочку

Рис. 3. Панель «Evaluation»

В зависимости от сложности уравнения через определенное время MathCad выведет результат. На рис.4 можно рассмотреть синтаксис и различие результатов выводимых mathcad. Обратите внимание, что выводимые результаты одного и того же уравнения различны

Рис. 4. Результат численного решения уравнения

Mathcad позволяет решать уравния в символьном виде. Например, если мы заменим все числовые константы на неизвестные параметры и решим уравнение относительно x, то результат выведется в символьном виде (см. рис. 5). Причем, обратите внимание, что в данном случае нам не нужно вводить начальное приближение и мы должны использовать символ «» для вывода результата

Рис. 5. Результат символьного решения уравнения

Использование метода Solve:

Этот метод отличается от выше рассмотренного синтаксисом. На свободном поле вводим уравнение с использованием логического символа «ровно» из панели Boolean. После ввода уравнения, не смещая курсор ввода, на панели Symbolic нажимаем кнопку solve (см. рис. 6)

Рис. 6. Панель Symbolic

Затем ставим запятую и вводим переменную, относительно которой нужно решить уравнение (в нашем случае это x). Нажимаем Enter на клавиатуре и смотрим результат (см. рис. 7)

Рис. 7. Результат решения уравнения методом Solve

Обратите внимание, что метод подходит как для численного так и для символьного представления результатов

Как показывает моя личная инженерная практика, иногда не удается решить уравнения с помощью Given — Find, но получается в Solve. При этом, к сожалению, метод Solve не очень удобен для далнейшего использования результатов решения уравнения

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

5.2.2. Уравнение с одним неизвестным: функция root MathCAD 12 руководство

Для решения уравнения с одним неизвестным в Mathcad, помимо вычислительного блока Given / Find , предусмотрена встроенная функция root , которая, в зависимости от типа задачи, может включать либо два, либо четыре аргумента и, соответственно, использует разные алгоритмы поиска корней.

  • root(f(x),x) ;
  • root (f (x) , x, a, b) ;
  • f(x) — скалярная функция, определяющая уравнение f(x)=0 ;
  • х — имя скалярной переменной, относительно которой решается уравнение;
  • а, b — границы интервала, внутри которого происходит поиск корня.

Первый тип функции root , аналогично встроенной функции Find , требует дополнительного задания начального значения переменной х , для чего нужно просто перед применением функции root присвоить х некоторое число. Таким образом, присвоение начального значения требует априорной информации о примерной локализации корня, т. к. поиск корня будет производиться вблизи этого числа. Пример работы функции root объясняется листингом 5.13.

Листинг 5.13. Два варианта уравнения методом секущих

Как вы можете убедиться (первая строка листинга 5.13), для решения уравнения при помощи функции root (f (x) ,x,a,b) не требуется задавать начального приближения, а достаточно указать интервал [а,b] . Поиск корня будет осуществлен в промежутке между а и b альтернативным численным методом (Риддера или Брента). Когда root имеет четыре аргумента, следует помнить о двух ее особенностях. Во-первых, внутри интервала не должно находиться более одного корня, иначе будет найден один из них, заранее неизвестно, какой именно. Во-вторых, значения f (а) и f (b) должны иметь разный знак, иначе будет выдано сообщение об ошибке.

В чем же отличие встроенной функции Find от функции root ? Оно состоит в том, что для решения одних и тех же задач используются различные численные алгоритмы (градиентные и метод секущих соответственно). В примерах уравнений с одним неизвестным, которые мы рассматривали до сего момента, выбор метода не влиял на окончательный результат, поскольку фигурировавшие в них функции были «хорошими», т. е. достаточно гладкими для поиска корня одним из градиентных методов, требующих, как известно, вычисления производных. Между тем бывают ситуации, когда применение того или иного метода имеет решающее значение.

Приведем пример простой функции f(x), корни которой удается отыскать только при помощи функции root (листинг 5.14). Она определена в первой строке этого листинга, а ее корень вычислен во второй строке. Из графика, представленного на рис. 5.5, видно, что f (х) имеет особенность в окрестности своего корня, являясь в ней разрывной. В завершающей части листинга 5.14 предпринимается попытка отыскать нулевое значение f (х) посредством вычислительного блока Given/Find , которая оказывается неудачной.

Листинг 5.14. Пример уравнения, которое удается решить только методом секущих

Рис. 5.5. Модельная функция f (х) (продолжение листинга 5.14)

Остается добавить, что f (х) может быть функцией не только х , а любого количества аргументов. Именно поэтому в самой функции root необходимо определить, относительно какого из аргументов следует решить уравнение. Эта возможность проиллюстрирована листингом 5.15 на примере функции двух переменных f (x,y)=x 2 -y 2 +1 . В нем сначала решается уравнение f (х, 0) =0 относительно переменной х, а потом — другое уравнение f (0, у) =0 относительно переменной у, причем, благодаря удачному подбору начальных значений, вычисляются все корни данного квадратичного уравнения.

Таким образом, в обоих случаях один из аргументов функции f (х) воспринимается как неизвестное, а другой — как параметр. Не забывайте при численном решении уравнений относительно одной из переменных предварительно определить значения остальных переменных. Иначе попытка вычислить уравнения приведет к появлению ошибки «This variable or function is not defined above» , в данном случае говорящей о том, что другая переменная ранее не определена.

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

Листинг 5.15. Поиск корней уравнения, зависящего от двух переменных

Какие функции для решения одного уравнения в mathcad вы знаете

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

2. Введите начальное приближение x для решения и изменяйте его до тех пор, пока решатель не сойдется должным образом.

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

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

3. Определите первое значение root (без дополнительных параметров интервала).

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

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

4. Определите второе значение root и укажите дополнительные параметры интервала.

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

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

5. Постройте график функции и укажите ее корни r0 и r1 .

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

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

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

1. Задайте выражение.

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

2. Определите f как функцию r0 .

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

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

3. Определите f как функцию r1 .

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

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

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

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

4. Определите f как функцию r2 .

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

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

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

Чтобы найти более точные значения корней, нужно уменьшить значение TOL . Функция root задается с максимумом TOL в 10 -5 , поскольку данное значение является быстрым для большинства оценок, а значения большего размера приводят к плохой сходимости. Если уравнение представляет полином, можно одновременно найти все корни с помощью функции polyroots .

Единицы измерения и корневая функция
С функцией root также можно использовать единицы измерения.
1. Задайте R в омах, а C в фарадах.

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

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

2. Рассчитайте произведение RC и удостоверьтесь в том, что ответ измеряется в секундах.

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

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

3. Задайте напряжение как функцию γ.

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

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

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

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

5. Вызовите функцию root (без дополнительных параметров интервала).

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

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

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

6. Измените значение st , чтобы найти различные времена нарастания, при которых достигается определенное напряжение.

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

Допуск решения
Чтобы изменить точность решений корневой функции, нужно изменить TOL для документа.
1. Задайте показ предыдущих значений.

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

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

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

2. Уменьшайте значение TOL (увеличьте допуск) со значения по умолчанию 10 -3 .

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

3. Повторите расчеты, используя новое значение TOL .

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

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

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

Уменьшение TOL до слишком малых значений может увеличить время расчета и привести к отсутствию схождения решателя, если критерии схождения значения функции в корне и изменение между последовательными решениями не достигнут заданного допуска. Значения, меньшие 10 -12 , вероятно, не являются значимыми.

Численные методы решения нелинейных уравнений. Метод парабол

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

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

Рис.1. Метод парабол

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

где — точка в которой функция заменяется интерполяционным многочленом

, , , …, — коэффициенты уравнения, которые вычисляются по следующим формулам:

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

— по двум крайним точкам интервала: , ;

— по средней точке .

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

Преобразуем данное уравнение к квадратному виду:

,

где коэффициенты уравнения вычисляются следующим образом

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

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

› Первый корень уравнения определяется по формуле:

› Второй корень уравнения определяется по формуле:

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

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

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

Алгоритм нахождения корня нелинейного уравнения по методу парабол

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

2. Определить среднюю точку в рассматриваемом интервале и найти значения функции в трех точках: по краям рассматриваемого интервала , и в середине интервала.

3. Выполнить расчет приближенного значения корня функции в соответствии с формулой:

,

где параметра A,B и C определяются следующим образом

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

если

если

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

В соответствии с данным методом нахождения корня уравнения получается два возможных интервала неопределенности:

1 интервал: если , то новый интервал

2 интервал: если , то новый интервал

5. Проверяем приближенное значение корня на предмет заданной точности, в случае:

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

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

Пример решения уравнений методом парабол

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

Вариант решения нелинейного уравнения в программном комплексе MathCAD.

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

Рис.2. Результаты расчета по методу хорд

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

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

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