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

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

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

Для решения системы уравнений выполните следующее:

  • Задайте начальные приближения для всех неизвестных, входящих в систему уравнений. Mathcad решает уравнения при помощи итерационных методов. На основе начального приближения строится последовательность, сходящаяся к искомому решению.
  • Напечатайте ключевое слово Given. Оно указывает Mathcad, что далее следует система уравнений. При печати слова Given можно использовать любой шрифт, прописные и строчные буквы. Убедитесь, что при этом Вы не находитесь в текстовой области или параграфе.
  • Введите уравнения и неравенства в любом порядке ниже ключевого слова Given. Удостоверьтесь, что между левыми и правыми частями уравнений стоит символ =. Используйте [Ctrl]= для печати символа =. Между левыми и правыми частями неравенств может стоять любой из символов , , и .
  • Введите любое выражение, которое включает функцию Find. При печати слова Find можно использовать шрифт любого размера, произвольный стиль, прописные и строчные буквы.
Find(z1, z2, z3, . . . )Возвращает решение системы уравнений. Число аргументов должно быть равно числу неизвестных.

Функция Find возвращает найденное решение следующим образом:

  • Если функция Find имеет только один аргумент, то она возвращает решение уравнения, расположенного между ключевым словом Given и функцией Find.
  • Если функция Find имеет более одного аргумента, то она возвращает ответ в виде вектора. Например, Find(z1, z2) возвращает вектор, содержащий значения z1 и z2 , являющиеся решением системы уравнений.

Ключевое слово Given, уравнения и неравенства, которые следуют за ним, и какое-либо выражение, содержащее функцию Find, называются блоком решения уравнений.

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

Рисунок 5: Блок решения уравнений для одного уравнения с одним неизвестным.

Между ключевым словом Given и функцией Find в блоке решения уравнений могут появляться выражения строго определенного типа. Ниже приведен список всех выражений, которые могут быть использованы в блоке решения уравнений. Использование других выражений не допускается. Эти выражения часто называются ограничениями. В таблице, приведенной ниже, через x и y обозначены вещественнозначные скалярные выражения, а через z и w обозначены любые скалярные выражения.

УсловиеКак ввестиОписание
w = z[Ctrl] =Булево равенство возвращает 1, если операнды равны; иначе 0
x > y>Больше чем.
x

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

  • Ограничения со знаком .
  • Дискретный аргумент или выражения, содержащие дискретный аргумент в любой форме.
  • Неравенства вида a -15 .

Причиной появления этого сообщения об ошибке может быть следующее:

  • Поставленная задача может не иметь решения.
  • Для уравнения, которое не имеет вещественных решений, в качестве начального приближения взято вещественное число. Если решение задачи комплексное, то оно не будет найдено, если только в качестве начального приближения не взято также комплексное число. На Рисунке 11 приведен соответствующий пример.
  • В процессе поиска решения последовательность приближений попала в точку локального минимума невязки. Метод поиска решения, который используется в Mathcad, не позволяет в этом случае построить следующее приближение, которое бы уменьшало невязку. Для поиска искомого решения пробуйте использовать различные начальные приближения или добавьте ограничения на переменные в виде неравенств, чтобы обойти точку локального минимума.
  • В процессе поиска решения получена точка, которая не является точкой локального минимума, но из которой метод минимизации не может определить дальнейшее направление движения. Метод преодоления этой проблемы — такой же, как для точки локального минимума: измените начальное приближение или добавьте ограничения в виде неравенств, чтобы миновать нежелательную точку остановки.
  • Возможно, поставленная задача не может быть решена с заданной точностью. Если значение встроенной переменной TOL слишком мало, то Mathcad может достигнуть точки, находящейся достаточно близко к решению задачи, но уравнения и ограничения при этом не будут выполнены с точностью, задаваемой переменной TOL. Попробуйте увеличить значение TOL где-нибудь выше блока решения уравнений.

Что делать, когда имеется слишком мало ограничений

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

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

При использовании блока решения уравнений в Mathcad необходимо задать количество уравнений по крайней мере не меньшее, чем число искомых неизвестных. Если зафиксировать значения некоторых переменных, удастся решить уравнения относительно оставшихся переменных. На Рисунке 13 показано, как, зафиксировав часть переменных, решить недоопределенную задачу из Рисунка 12. Поскольку функция Find содержит только два аргумента, z и w, Mathcad определяет переменные x, y и v как имеющие фиксированные значения 10, 50 и 0 соответственно. Блок решения уравнений становится в этом случае корректно определенным, потому что теперь имеются только две неизвестных, z и w, и два уравнения.

Рисунок 12: Функция Find имеет пять аргументов, поэтому Mathcad определяет, что требуется решить два уравнения с пятью неизвестными.

Рисунок 13: Проблема может быть решена, если уменьшить количество аргументов функции Find.

Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter

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

Для решения уравнений в Mathcad можно воспользоваться двумя способами. Эти способы были частично рассмотрены в разделе «Решение уравнений»:

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

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

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

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

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

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

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

Рис. 3. Ввод функции Find()

Для того чтобы увидеть результат решения системы уравнений, после Find(x, y, z. ) следует поставить символ «» либо «=» из панели Evaluation (см. рис. 4).

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

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

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

Mathcad позволяет решать системы уравний в символьном виде. Обычно это полезно, когда требуется получить не точное значение переменных, а их выражения через константы. Например, если мы заменим все числовые константы на неизвестные параметры и решим уравнение относительно x, y и z, то результат выведется в символьном виде (см. рис. 6). Причем, обратите внимание, что в данном случае нам не нужно вводить начальное приближение и мы должны использовать символ «» для вывода результата. Как правило, символьное решение получается громоздким, поэтому не всегда рекомендуется использовать этот метод

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

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

Как показывает практика, методом solve иногда удается решить системы уравнений, которые не поддаются решению с помощью функции Find()

Синтаксис следующий: на панели matrix нажимаем иконку Matrix or Vector и в появившемся окне указываем количество уравнений входящих в систему. В нашем примере их будет три (см. рис. 7)

Рис. 7. Создание матрицы для метода SOLVE

Заполняем систему, вводя последовательно все уравнения используя логический символ «ровно» из панели Boolean. Каждый элемент матрицы-столбца содержит одно уравнение (см. рис. 8)

Рис. 8. Ввод системы уравнений для метода SOLVE

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

Рис. 9. Синтаксис метода SOLVE для решения систем

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

Рис. 10. Синтаксис метода SOLVE для решения систем

Как показывает моя инженерная практика, решение систем в символьном виде сопряжено с большими вычислительными трудностями. То есть иногда решение системы занимает массу времени, и в итоге 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.

23. Тема 6. Решение уравнений и систем. Краткие теоретические сведения

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

Общий вид функции следующий:

F(х) – функция, описывающая левую часть выражения вида F(x)=0,

Х – имя переменной, относительно которой решается уравнение.

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

Если после многих итераций Mathcad не находит подходящего приближения, то появится сообщение «отсутствует сходимость».

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

· уравнение не имеет корней;

· корни уравнения расположены далеко от начального приближения;

· выражение F(x) имеет разрывы между начальным приближением и корнем;

· выражение имеет комплексный корень, но начальное приближение было вещественным и наоборот.

Для изменения точности, с которой функция Root ищет корень, нужно изменить значение системной переменной TOL. Например, просле задания в документе оператора TOL:=0.00001 точность вычисления корня станет равной 0.00001.

Для нахождения корней полиномиального уравнения вида

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

Где V – вектор коэффициентов полинома длины N+1, n – степень полинома. Вектор V формируется следующим образом: в первый его элемент заносится значение коэффициента полинома при х0, т. е. V0, во второй элемент — значение коэффициента полинома при х1, т. е. V1 и т. д. Таким образом, вектор заполняется коэффициентами перед степенями полинома справа налево.

Функция вычисляет вектор длины N, состоящий из корней полинома.

На рисунке 2.6.1 приведены примеры вычисления корней уравнений с помощью функций Root и Polyroots.

Рисунок 2.6.1 – Примеры решения уравнений

MathCAD дает возможность решать системы уравнений и неравенств.

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

A) задать начальное приближение для всех неизвестных, входящих в систему уравнений;

Б) задать ключевое слово Given, которое указывает, что далее следует система уравнений;

В) ввести уравнения и неравенства в любом порядке (использовать кнопку логического равенства на панели знаков логических операций Для набора знака «=» в уравнении);

Г) ввести любое выражение, которое включает функцию Find.

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

После набора решающего блока Mathcad возвращает точное решение уравнения или системы уравнений.

Обратиться к функции Find можно несколькими способами:

X := Find(x1, x2,…) – формируется переменная или вектор, содержащий вычисленные значения корней.

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

Приближенное решение уравнения или системы можно получить с помощью функции Minerr.

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

Примеры решения систем уравнений с помощью решающего блока приведены на рисунке 2.6.2.

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

Матричный метод решения системы линейных уравнений реализован в функции Lsolve. Общий вид функции:

Где А – матрица коэффициентов перед неизвестными, B – вектор свободных членов.

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

Рисунок 2.6.2 – Примеры решения систем уравнений

Из рисунка 6.2 видно, что при решении системы уравнений блочным методом можно получить численные значения корней системы уравнений, без присваивания и с присваиванием их в переменные x1 и x2. При решении системы уравнений матричным методом продемонстрированы два варианта: с использованием стандартной функции Lsolve и обратной матрицы.


источники:

http://student-engineer.pro/mathcadold/sys_equation/

http://matica.org.ua/metodichki-i-knigi-po-matematike/reshenie-zadach-v-srede-mathcad/23-tema-6-reshenie-uravnenii-i-sistem-kratkie-teoreticheskie-svedeniia