Разное

Маткад решение нелинейных уравнений: Урок 23. Нелинейные уравнения в Mathcad

Урок 23. Нелинейные уравнения в Mathcad

Павел Демидов 26.11.2014 Уроки Mathcad 0

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

Изучение «решения» начнем с уравнений с одной переменной. В этом случае поведение уравнения можно понять, построив график. Позже мы рассмотрим системы уравнений.

Уравнения с одной переменной

Уравнение, которое мы рассмотрим, достаточно простое:

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

Первая (самая верхняя) линия дважды пересекается с параболой около точек x=-0. 3 и x=1.3. У второй линии – одно пересечение (или два близко расположенных) возле точки x=0.5. Пересечений с третьей прямой (самой нижней) нет.

Решения

Сначала рассмотрим самую верхнюю линию. Чтобы получить решение, нам нужен Блок решения (вкладка Математика –> Области –> Блок решения). Заполним блок для решения первого уравнения:

Здесь есть три области для различных записей:

— начальные приближения;

— ограничения;

— решатель.

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

Как видно, решение 1.366 – это правое пересечение прямой и параболы. Начальное приближение не критично – можно ввести 1.6, щелкнуть мышью вне блока и получить тот же результат:

Изменим начальное приближение на значение, близкое к левому пересечению, скажем, -0.5. Решение изменится на -0. 366:

Измените начальное приближение обратно на 1.3.

Теперь поменяем константу 0.5 в уравнении на -0.25. Решение изменится на 0.5:

Этот же ответ мы будем получать для любого значения начального приближения – это единственное решение.

Наконец, изменим константу в уравнении на -1 (последнее уравнение). Щелкнем вне блока и получим сообщение об ошибке:

Решения нет. Изменим константу обратно на 0.5.

Вывод решения

Переменные в блоке решений локальны. Вы не можете использовать их значения вне блока. Вернемся к уравнению, где приближенное значение задано 1.3. Мы решили уравнение, чтобы найти более точное решение x=1.366. Однако если мы попробуем вывести значение x, мы получим вектор, которые определили для нашего графика.

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

Тогда получим верный результат:

Решение систем уравнений

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

Все три ответа можно вывести в вектор:

Удалите последнее из трех уравнений. Решение все равно будет найдено, с учетом двух оставшихся уравнений:

Однако, такое решение может быть не тем, которое Вам нужно.

Обратите внимание еще на некоторые детали. В блоке решения используются два вида знака «равно»: знак присваивания для начальных приближений и для решателя Find, и знак булева равенства в уравнении. Эта разница очень важна. Еще один момент – щелкните по слову Find в области решателя, откройте вкладку Математика. В строке Обозначения должно быть отмечено «Ключевое». Некоторые другие ключевые слова мы рассмотрим в последующих уроках.

Растворимость вещества

Рассмотрим растворение вещества DOH. Это двухстадийный процесс: сначала растворяется твердая фаза, затем растворенные части диссоциируют на D и OH. Малую растворимость можно повысить, добавив небольшое количество сильной кислоты HA. Она диссоциирует, и ионы водорода вступают в реакцию с гидроксильной группой:

Как зависит общая растворимость D от количества добавленной кислоты? Концентрацию будем считать в моль/л. Концентрация насыщения нерастворенной кислоты:

Начнем с концентрации кислоты:

Константы равновесия реакции:

Блок решения начинается с трех неизвестных и их начальных приближений:

Решение:

Общая концентрация вещества:

Расчет для построения графика (подробнее о таких расчетах поговорим в следующем уроке):

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

Если концентрация кислоты мала, решение содержит низкую концентрацию DOH, которая диссоциирует только частично. При увеличении концентрации кислоты, все больше и больше вещества диссоциирует.

Резюме

  1. Если есть уравнение или система уравнений, Вы можете дать приближенное решение, а Mathcad улучшит эту оценку. Такой способ используется в Блоке решения.
  2. Первая часть блока решения – начальные приближения, т.е. Ваши оценки. Здесь используется знак присваивания «:=». Эти значения могут быть помещены и до блока.
  3. В области «Ограничения» (уравнения) нужно использовать булево равенство [Ctrl+=]. Это единственный знак, по обе стороны от которого могут быть выражения.
  4. Блок решения заканчивается функцией для решения. Мы рассмотрели Find(), которая содержит неизвестные, которые нужно найти.
  5. Чтобы использовать результат решения в дальнейших расчетах, присвойте Find() переменной. Это может быть как одна переменная, так и вектор.
  6. Для решения системы нелинейных уравнений нужно быть внимательным. Число уравнений должно быть равно числу неизвестных. Кроме того, приближенные значения должны быть как можно ближе к решению.
  7. Если решение не было найдено, не спешите обвинять Mathcad. Нелинейные уравнения являются головной болью для любого языка программирования. Попробуйте понять поведение Ваших уравнений, прежде чем приступать – часто уравнения могут не иметь решения.
About Павел Демидов

Выпускник МГТУ им. Н.Э. Баумана, технический специалист по продуктам PTC Mathcad и Solid Edge.

View all posts by Павел Демидов →

Урок 22. Линейные уравнения в Mathcad

Урок 24. Решение уравнений в Mathcad – использование функций

Pers.narod.ru. Обучение. Лекции по MathCAD. Решение нелинейных уравнений и систем уравнений в пакете MathCAD

Pers.narod.ru. Обучение. Лекции по MathCAD. Решение нелинейных уравнений и систем уравнений в пакете MathCAD

Этот сайт больше не обновляется. Подключите Javascript, чтобы увидеть новый адрес страницы или перейдите к статье

Pers.

narod.ru. Обучение. Лекции по MathCAD. 7. Решение нелинейных уравнений и систем уравнений в пакете MathCAD

 

 

Вычисление корней численными методами включает два основных этапа:

·      отделение корней;

·      уточнение корней до заданной точности.

Рассмотрим эти два этапа подробно.

 

Отделение корней нелинейного уравнения

 

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

Пример. Дано алгебраическое уравнение

.

Определить интервалы локализации корней этого уравнения.

 

 

Пример. Дано алгебраическое уравнение

.

Определить интервалы локализации корней этого уравнения.

На рисунке приведен график функции , построенный в MathCAD. Видно, что в качестве интервала изоляции можно принять интервал . Однако уравнение имеет три корня. Следовательно, можно сделать вывод о наличии еще двух комплексных корней. ¨

 

Уточнение корней нелинейного уравнения

 

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

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

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

 

 

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

 

Функция root с двумя аргументами требует задания (до обращения к функции) переменной  начального значения корня из интервала локализации.

 

Пример 8.1.5. Используя функцию root, вычислить изменения корня нелинейного уравнения   при изменении коэффициента а от 1 до 10 с шагом 1.

 

 

 

Функция polyroots. Для вычисления всех корней алгебраического уравнения порядка  (не выше 5) рекомендуется использовать функцию polyroots. Обращение к этой функции имеет вид polyroots(v), где v – вектор, состоящий из n +1 проекций, равных коэффициентам алгебраического уравнения, т.е. . Эта функция не требует проведения процедуры локализации корней.

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

 

 

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

 

 

Решаемое уравнение задается в виде равенства, в котором используется «жирный» знак равно, вводимый с палитры Логичес­кий.

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

 

Функция Find уточняет корень уравнения, вызов этой функции имеет вид Find(x), где x – переменная, по которой уточняется корень. Если корня уравнения на заданном интервале не существует, то следует вызвать функцию Minerr(x), которая возвращает приближенное значение корня.

 

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

 

Аналогично можно задать алгоритм решения и для функции   Minerr(x).

 

Использование численных методов в функциях Find(x), Minerr(x) требует перед блоком Given задать начальные значения переменным, по которым осуществляется поиск корней уравнения.

 

Пример. Используя блок Given, вычислите корень уравнения  в интервале отделения .

 

 

 

В зависимости от того, какие функции входят в систему уравнений, можно выделить два класса систем:

·      алгебраические системы уравнений;

·      трансцендентные системы уравнений.

Среди алгебраических систем уравнений особое место занимают системы линейных алгебраических уравнений (СЛАУ).

 

Системы линейных алгебраических уравнений

 

Системой линейных алгебраических уравнений (СЛАУ) называется система вида:

 

В матричном виде систему можно записать как

 

,

где  – матрица размерности ,  – вектор с  проекциями.

 

Для вычисления решения СЛАУ следует использовать функцию lsolve, обращение к которой имеет вид: lsolve(А,b), где А – матрица системы,  – вектор правой части.

Решение систем нелинейных уравнений

 

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

Для решения системы уравнений необходимо выполнить следующие этапы.

 

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

Пример. Дана система уравнений:

Определить начальные приближения для решений этой системы.

 

 

Видно, что система имеет два решения: для первого решения в качестве начального приближения может быть принята точка (-2, 2), а для второго решения – точка (5, 20). ¨

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

 

Функция Find вычисляет решение системы уравнений с заданной точностью, и вызов этой функции имеет вид Find(x), где x – список переменных, по которым ищется решение. Начальные значения этим переменным задаются в блоке < Начальные условия >. Число аргументов функции должно быть равно числу неизвестных.

 

Следующие выражения недопустимы внутри блока решения:

·      ограничения со знаком ¹;

·      дискретная переменная или выражения, содержащие дискретную переменную в любой форме;

·      блоки решения уравнений не могут быть вложены друг в друга, каждый блок может иметь только одно ключевое слово Given и имя функции Find (или Minerr).

 

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

 

 

Пример. Используя функцию , вычислите решение системы уравнений

 

 

 

 

 


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

Результаты обучения

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

Система нелинейных уравнений — это система двух или более уравнений с двумя или более переменными, содержащая хотя бы одно нелинейное уравнение. Напомним, что линейное уравнение может иметь вид [латекс]Ах+Ву+С=0[/латекс]. Любое уравнение, которое нельзя записать в таком виде, является нелинейным. Метод подстановки, который мы использовали для линейных систем, — это тот же метод, который мы будем использовать для нелинейных систем. Мы решаем одно уравнение для одной переменной, а затем подставляем результат во второе уравнение для решения другой переменной и так далее. Однако есть вариации возможных результатов.

Пересечение параболы и прямой

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

Общее примечание: возможные типы решений для точек пересечения параболы и прямой

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

  • Нет решения. Линия никогда не пересечет параболу.
  • Одно решение. Прямая касается параболы и пересекает параболу ровно в одной точке.
  • Два решения. Прямая пересекает параболу внутри и пересекает параболу в двух точках.

Как: Дана система уравнений, содержащая прямую и параболу, найти решение.


  1. Решите линейное уравнение для одной из переменных.
  2. Подставьте выражение, полученное на первом шаге, в уравнение параболы. 9{2}-y=0 \end{gathered}[/latex]

     

    Показать решение

    Пересечение окружности и прямой

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

    Общее примечание: возможные типы решений для точек пересечения окружности и прямой

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

    • Нет решения. Линия не пересекает окружность.
    • Одно решение. Прямая касается окружности и пересекает окружность ровно в одной точке.
    • Два решения. Прямая пересекает окружность и пересекает ее в двух точках.

    Как: Дана система уравнений, содержащая прямую и окружность, найти решение.


    1. Решите линейное уравнение для одной из переменных.
    2. 9{2}=10\hfill \\ x — 3y=-10\hfill \end{массив}[/latex]

      Показать решение

      Решение системы нелинейных уравнений с помощью исключения

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

      Общее примечание: возможные типы решений для точек пересечения окружности и эллипса

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

      • Нет решения. Окружность и эллипс не пересекаются. Одна фигура находится внутри другой или круг и эллипс находятся на расстоянии друг от друга.
      • Одно решение. Окружность и эллипс касаются друг друга и пересекаются ровно в одной точке. 9{2}=10\end{собрано}[/latex]

        Показать решение

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

        Поддержите!

        У вас есть идеи по улучшению этого контента? Мы будем признательны за ваш вклад.

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

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