Уравнение с неизвестными неизвестным mathcad

Уравнение с неизвестными неизвестным mathcad

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 для студентов

Mathcad для начинающих

Скачать программы бесплатно

Уравнения с одним неизвестным в Mathcad

Простейший способ найти корень уравнения с одним неизвестным в Mathcad обеспечит функция root ( ). Аргументами функции root ( ) являются вид функции определяющей решаемое уравнение и имя переменой, относительно которой ищется решение — root (f(x),x) Если уравнение в Mathcad содержит несколько корней, то функция обеспечивает нахождение единственного корня, ближайшего к заданному начальному значению для искомой переменной. Точность вычислений может быть увеличена или уменьшена посредством задания значения переменной TOL, равной по умолчанию 10-3 и определённой в меню Math, Options (Математика, Опции). Установленное значение TOL также оказывает влияние на точность вычислений.

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

Другим способом решения уравнений в Mathcad является применение специального вычислительного блока, начинающегося с ключевого слова given с использованием функций find( ) и minerr ( ).

Блок имеет следующую структуру:

Начальное значение искомой переменной

Выражение с использованием функции find( ) или minerr ( )

Нахождение корней уравнения в Mathcad с использованием блока given…find ( ) в чем – то аналогично использованию функции root ( ). В Mathcad задается начальное значение для искомой переменной, после находится решение, ближайшее к заданному начальному условию. Использовании блока given…minerr ( ) имеет существенные особенности. Решение будет найдено в любом случае, даже при его отсутствии. Дело в том, что ищется не решение системы, а минимальная невязка уравнений. На листинге рассмотрена функция, заведомо не имеющая действительных корней и при использовании блока given…minerr ( ) найдено решение, значение, которое наиболее приближено к оси х, то есть обеспечивает минималь-ную невязку. Значение невязки (ошибки) показывает системная переменная ERR.

Электронная библиотека

Задача ставится следующим образом:

Пусть имеется алгебраическое уравнение с одним неизвестным х или система алгебраических уравнений

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

Отыскание корней численными методами связано с несколькими задачами:

Ø Исследование существования корней в принципе, определение их количества и примерного расположения;

Ø Отыскание корней с заданной погрешностью

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

Решение одного уравнения с одним неизвестным

Рассмотрим алгебраическое уравнение f(x)=0 с одним неизвестным х, например, sin(x)=0.

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

Мнемоника команды выглядит следующим образом:

root (f(x), x) или root (f(x), x, a, b),

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

Первый тип функции root требует дополнительного задания начального значе

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

Приведем пример решения очень простого уравнения sin(x)=0, корни которого известны заранее (рис. 38).

Обратите внимание, что, хотя уравнение имеет бесконечное количество корней MathCAD находит (с заданной точностью) только один из них, х0, лежащий наиболее близко к х = 0,5. Если задать другое начальное значение, например х = 3, то решением будет другой корень уравнения х1 = π и т.д. Таким образом, для поиска корня средствами MathCAD требуется его предварительная локализация. Это связано с особенностями выбранного численного метода, который называется методом секущих.

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

Рис. 7.1. Функция Minerr

Примечание: Для решения уравнения с одним неизвестным применимы и градиентные методы, относящиеся в MathCAD к системам уравнений.

Иногда удобнее задавать не начальное приближение к корню, а интервал [а, b], внутри которого корень заведомо находится. В этом случае следует использовать функцию root с четырьмя аргументами, а присваивать начальное значение х не нуж

но. Поиск корня будет осуществлен в промежутке между а и b альтернативным численным методом (Риддера или Брента). Явный вид функции f(x) может быть определен непосредственно в теле функции root (рис. 39).

Когда root имеет четыре аргумента, следует помнить о двух ее особенностях:

Ø внутри интервала [а, b] не должно находиться более одного корня, иначе будет найден один из них, заранее неизвестно, какой именно;

Ø значения f(а) и f(b) должны иметь разный знак, иначе будет выдано сообщение об ошибке.

Если уравнение не имеет действительных корней, но имеет мнимые, то их также можно найти. Например, уравнение х 2 +1=0, имеющее два чисто мнимых корня, решается два раза с разными начальными значениями (рис. 40).

При задании начального значения 0,5 численный метод отыскивает первый корень (отрицательную мнимую единицу –i), а при начальном значении –0,5 находится и второй корень i.

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

Нахождение корней полинома

Если функция f(x) является полиномом, то все его корни можно определить, использую встроенную функцию polyroots(v), где v – вектор, составленный из коэффициентов полинома.

Поскольку полином n-й степени имеет ровно n корней (некоторые из них могут быть кратными), вектор v должен состоять из n+1 элемента. Результатом действия функции polyroots является вектор, составленный из n корней рассматриваемого полинома. При этом нет надобности вводить какое-либо начальное приближение, как для функции root.

Например, найдем корни полинома четвертой степени f(x)=х 4 -6х 3 +12х 2 -10х+3 с

помощью функции polyroots (рис. 41).

Рис. 7.2. Функция Polyroots

Запишем коэффициенты рассматриваемого в примере полинома в виде вектора. Первым в векторе должен идти свободный член полинома, вторым – коэффициент при х 1 и т.д. Соответственно, последним n+1 элементом вектора должен быть коэффициент при старшей степени x N .

Совет: Иногда исходный полином имеется не в развернутом виде, а, например, как произведение нескольких полиномов. В этом случае определить все его коэффициенты можно, выделив его и выбрав в меню Symbolics (Символика) пункт Expand (Разложить). В результате символьный процессор MathCAD сам преобразует полином в нужную форму, пользователю надо будет только корректно ввести ее в аргументы функции polyroots.

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

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

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

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

В матричной форме СЛАУ записывается в эквивалентном виде:

где А – матрица коэффициентов СЛАУ размерности n×n; x – вектор неизвестных; В – вектор правых частей уравнений.

СЛАУ имеет единственное решение, если матрица А является невырожденной, т. е. ее определитель не равен нулю. С вычислительной точки зрения, решение СЛАУ не представляет трудностей, если матрица А не очень велика.

В MathCAD СЛАУ можно решить как в более наглядной форме (1), так и в более удобной для записи форме (2). Для первого способа следует использовать вычислительный блок Given/Find, а для второго – встроенную функцию решения системы линейных уравнений lsolve. Мнемоника написания команды следующая:

где А – матрица коэффициентов системы; В – вектор правых частей.

Применение функции lsolve показано на рис. 42.

В некоторых случаях, для большей наглядности представления СЛАУ, его можно решить точно так же, как систему нелинейных уравнений. Не забывайте, что при численном решении всем неизвестным требуется присвоить начальные значения (это сделано в первой строке листинга) (рис. 43). Они могут быть произвольными, так как решение СЛАУ с невырожденной матрицей единственно.

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

Рис. 7.4. Решение системы

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

Здесь fi(x1, … , xm) – некоторые скалярные функции от скалярных переменных x1, x2, …, хm и, возможно, от еще каких-либо переменных. Уравнений может быть как больше, так и меньше числа переменных. Заметим, что систему можно формально переписать в виде f(x)=0, где х – вектор, составленный из переменных x1, x2, …, хm; f(x) – соответствующая векторная функция.

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

1) Given – ключевое слово;

2) Система, записанная логическими операторами в виде равенств и, возможно, неравенств;

3) Find (х1, …, хm) – встроенная функция для решения системы относительно переменных х1, …, хm.

Вставлять логические операторы следует, пользуясь панелью инструментов Boolean (Булевы операторы). Если вы предпочитаете ввод с клавиатуры помните, что логический знак равенства вводится сочетанием клавиш + . Блок Given/Find используется для поиска решения итерационные методы, поэтому, как и для функции root, требуется задать начальные значения для всех х1, …, хm. Сделать это необходимо до ключевого слова Given. Значение функции Find есть вектор, составленный из решения по каждой переменной. Таким образом, число элементов вектора

Find равно числу аргументов.

В листинге (рис 44) приведен пример решения системы двух уравнений.

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

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

Рис. 7.6. Точность

В листинге найдено только одно из двух решений – находящееся в правой нижней части графика (рис. 45). Чтобы отыскать и второе решение, следует повторить вычисления, изменив начальные значения так, чтоб они лежали ближе к другой точке пересечения графиков, например, х=–1, y=–1.

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

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

Рис. 7.7. Ограничение на поиск

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

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

Примечание: Вычислительный блок использует константу CTOL в качестве погрешности выполнения уравнений, введенных после ключевого слова Given. Другая константа TOL определяет условие прекращения итераций численным алгоритмом. Значение CTOL может быть задано пользователем, так же как и TOL, например, CTOL:=0,01. По умолчанию принято, что CTOL=TOL=0,001, но по желанию можно переопределить их.

Рис. 7.8. Переопределение

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

смотренным в данном разделе примерам. Задача поиска корня рассматривается как решение системы, состоящей из одного уравнения. Единственным отличием будет скалярный, а не векторный тип числа возвращаемого функцией Find (рис 47).

Символьное решение уравнений

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

Как видно, вместо знака равенства после функции Find в листингах (рис. 48) следует знак символьных вычислений, который можно ввести с панели Symbolic, или, нажав клавиши + .

Рис. 7.9. Пример вычисления

Не забывайте, что сами уравнения должны иметь вид логических выражений, т.е. знаки равенства нужно вводить с помощью панели Booleans (Булевы операторы). Обратите внимание, что во втором листинге вычислены как два первых действительных корня, которые мы уже находили численным методом, так и два других мнимых корня. Эти два последних корня чисто мнимые, так как множитель

Срочно?
Закажи у профессионала, через форму заявки
8 (800) 100-77-13 с 7.00 до 22.00


источники:

http://allmathcad.com/ru/uravneniya-s-odnim-neizvestnym.html

http://libraryno.ru/7-reshenie-uravneniy-v-srede-mathcad-prog_sr_z_2013/