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

REDMOND

Одно уравнение с одним неизвестным

Рассмотрим одно алгебраическое уравнение с одним неизвестным х.

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

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

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

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

Листинг 8.1. Поиск корня нелинейного алгебраического уравнения

Рис. 8.1. Графическое решение уравнения sin(x)=0

График функции f (x)=sin(x) и положение найденного корня показаны на рис. 8.1. Обратите внимание, что, хотя уравнение имеет бесконечное количество корней xn=npi (n=0,±1,±2. ), Mathcad находит (с заданной точностью) только один из них, х0, лежащий наиболее близко к х=0.5. Если задать другое начальное значение, например х=3, то решением будет другой корень уравнения х1=pi и т. д. Таким образом, для поиска корня средствами Mathcad требуется его предварительная локализация. Это связано с особенностями выбранного численного метода, который называется методом секущих и состоит в следующем (рис. 8.2):

  • Начальное приближение принимается за 0-е приближение к корню: х0=х.
  • Выбирается шаг h=TOLх и определяется первое приближение к корню x1=x0+h. Если х=0, то принимается h=TOL.
  • Через эти две точки проводится секущая — прямая линия, которая пересекает ось х в некоторой точке х2. Эта точка принимается за второе приближение.
  • Новая секущая проводится через первую и вторую точки, тем самым определяя третье приближение, и т. д.
  • Если на каком-либо шаге оказывается, что уравнение выполнено, т. е. |If (x) |<TOL, то итерационный процесс прерывается, и х выдается в качестве решения.

Рис. 8.2. Иллюстрация метода секущих

Результат, показанный на рис. 8.2, получен для погрешности вычислений, которой в целях иллюстративности предварительно присвоено значение TOL=0.5. Поэтому для поиска корня с такой невысокой точностью оказалось достаточно одной итерации. В вычислениях, приведенных в листинге 8.1, погрешность TOL=0.001 была установлена по умолчанию, и решение, выданное численным методом, лежало намного ближе к истинному положению корня х=0. Иными словами, чем меньше константа TOL, тем ближе к нулю будет значение f (x) в найденном корне, но тем больше времени будет затрачено вычислительным процессором Mathcad на его поиск.

Соответствующий пример можно найти в Быстрых шпаргалках, на странице Ресурсов Mathcad. Он расположен в разделе "Solving Equations" (Решение уравнений) и называется "Effects of TOL on Solving Equations" (Влияние константы TOL на решение уравнений).

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

Для решения уравнения с одним неизвестным применимы и градиентные методы, относящиеся в Mathcad к системам уравнений. Информация об этом приведена в разд. 8.3.

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

Листинг 8.2. Поиск корни алгебраического уравнения заданном интервале

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

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

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

Если уравнение не имеет действительных корней, но имеет мнимые, то их также можно найти. В листинге 8.3 приведен пример, в котором уравнение x 2 +i=0, имеющее два чисто мнимых корня, решается два раза с разными начальными значениями. При задании начального значения 0.5 (первая строка листинга) численный метод отыскивает первый корень (отрицательную мнимую единицу -i), а при начальном значении -0.5 (третья строка листинга) находится и второй корень (i).

Листинг 8.3. Поиск мнимого корня

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

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

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

В первой строке листинга определяется функция f (x,y), во второй и третьей — значения, для которых будет производиться решение уравнения по у и х, соответственно. В четвертой строке решено уравнение f (x,0)=0, а в последней —уравнение f (1,y)=0. Не забывайте при численном решении уравнений относительно одной из переменных предварительно определить значения остальных переменных. Иначе попытка вычислить уравнения приведет к появлению ошибки "This variable or function is not defined above", в данном случае говорящей о том, что другая переменная ранее не определена. Конечно, можно указать значение других переменных непосредственно внутри функции root, беспрепятственно удалив, например, вторую и третью строки листинга 8.4 и введя его последние строки в виде root(f (x,0) ,х)= и root(f (1,у) ,у)=, соответственно.

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

Решение алгебраических уравнений в MathCAD.

Ответ: Для алгебраических уравнений вида f(x)=0 решение в MathCad находится с помощью функции root. Общий вид функции следующий: root( f(х), х), где f(х) – функция, описывающая левую часть выражения вида f(x)=0, х – имя переменной, относительно которой решается уравнение. Функция rootреализует алгоритм поиска корня численным методом и требует предварительного задания начального приближения искомой переменной х. Поиск корня будет производиться вблизи этого числа. Таким образом, присвоение начального значения требует предварительной информации о примерной локализации корня. Функция позволяет найти как вещественные корни, так и комплексные. В случае комплексного корня начальное приближение нужно задать в виде комплексного числа. Если после многих итераций Mathcad не находит подходящего приближения, то появится сообщение «отсутствует сходимость». Эта ошибка может быть вызвана следующими причинами: 1)уравнение не имеет корней; 2)корни уравнения расположены далеко от начального приближения; 3)выражение f(x) имеет разрывы между начальным приближением и корнем; 4)выражение имеет комплексный корень, но начальное приближение было вещественным и наоборот. Для изменения точности, с которой функция root ищет корень, нужно изменить значение системной переменной TOL. Например, просле задания в документе оператора TOL:=0.00001 точность вычисления корня станет равной 0.00001. Для нахождения корней полиномиального уравнения вида:

используется функция polyroots. В отличие от функции root, polyrootsне требует начального приближения и вычисляет сразу все корни, как вещественные, так и комплексные. Общий вид: polyroots(v),где 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 можно несколькими способами: Find(x1, x2,…) = — корень или корни уравнения вычисляются и выводятся в окно документа. x := Find(x1, x2,…) – формируется переменная или вектор, содержащий вычисленные значения корней. Сообщение об ошибке «Решение не найдено» появляется тогда, когда система не имеет решения или для уравнения, которое не имеет вещественных корней, в качестве начального приближения взято вещественное число и наоборот. Приближенное решение уравнения или системы можно получить с помощью функции Minerr.Если в результате поиска не может быть получено дальнейшее уточнение текущего приближения к решению, Minerr возвращает это приближение. Функция Find в этом случае возвращает сообщение об ошибке. Правила использования функции Minerrтакие же, как и для функции Find. Часть документа, расположенная между ключевыми словами Given и Minerr так же носит название решающего блока.Примеры решения систем уравнений с помощью решающего блока приведены на рисунке 2.6.2. Для решения систем линейных уравнений можно использовать общепринятые математические методы: метод Крамера, матричный метод и т.д. Матричный метод решения системы линейных уравнений реализован в функции lsolve. Общий вид функции:lsolve(а, b)

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

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

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

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

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

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

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

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

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

· КомандаSymbolic Þ Variable Þ Solve позволяет решить уравнение относительно некоторой переменной и выразить его корни через остальные параметры уравнения.

Чтобы решить уравнение символьно необходимо:

· Напечатать выражение (для ввода знака равенства используйте комбинацию клавиш [Ctrl]=).

· Выделить переменную, относительно которой нужно решить уравнение, щелкнув на ней мышью.

· Выбрать пункт менюSymbolic Þ Variable Þ Solve.

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

Чтобы решить систему уравнений в символьном виде, необходимо выполнить следующее:

· Напечатать ключевое слово Given.

REDMOND

· Напечатать уравнения в любом порядке ниже слова Given. Удостоверьтесь, что для ввода знака = используется [Ctrl]=.

· Напечатать функцию Find, соответствующую системе уравнений.

· Нажать [Ctrl].(клавиша CTRL, сопровождаемая точкой). MathCAD отобразит символьный знак равенства ®.

· Щелкнуть мышью на функции Find.

Символьное решение системы уравнений в MathCAD иллюстрируется в примере 2 рис. 3.

Контрольные вопросы

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

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

3. Как изменить точность, с которой функция root ищет корень?

4. Назовите функции для решения систем уравнений в MathCAD и особенности их применения.

5. Какой знак равенства используется в блоке решения? Какой комбинацией клавиш вставляется в документ?

6. Опишите способы использования функции Find.

7. В каких случаях MathCAD не может найти решение системы уравнений?

8. Дайте сравнительную характеристику функциям Find и Minerr.

9. Какие уравнения называются матричными? Как решать матричные уравнения? Назовите способы решения матричных уравнений.

10. Как символьно решить уравнение или систему уравнений в MathCAD? Какой знак равенства используется? Какой комбинацией клавиш вставляется в документ?

Варианты заданий к лабораторной работе № 4

Задание 1.Построить график функции f(x)(Таблица 1) и приблизительно определить один из корней уравнения. Решить уравнение f(x)= 0с точностью e = 10 – 4 с помощью встроенной функции MathCAD root;

Варианты задания 1

Вариант f(x) Вариант f(x)

Задание 2. Для полинома g(x) (Таблица 2) выполнить следующие действия:

1) с помощью команды Symbolic Þ Polynomial Coefficientsсоздать вектор V, содержащий коэффициенты полинома;

2) решить уравнение g(x) = 0 с помощью функции polyroots;

3) решить уравнение символьно, используя команду Symbolic Þ Variable Þ Solve.

Варианты задания 2

Вариант g(x) Вариант g(x)
x 4 — 2x 3 + x 2 — 12x + 20 x 4 — 4x 3 — 2x 2 — 20x + 25
x 4 + 6x 3 + x 2 — 4x — 60 x 4 + 5x 3 + 7x 2 + 7x — 20
x 4 — 14x 2 — 40x — 75 x 4 — 7x 3 + 7x 2 — 5x + 100
x 4 — x 3 + x 2 — 11x + 10 x 4 + 10x 3 +36x 2 +70x+ 75
x 4 — x 3 — 29x 2 — 71x -140 x 4 + 9x 3 + 31x 2 + 59x+ 60

Задание 3.Решить систему линейных уравнений (Таблица 3):

1) используя функцию Find;

2) матричным способом и используя функцию lsolve.

Варианты задания 3

Вариант СЛАУ Вариант СЛАУ

Задание 4. Преобразовать нелинейные уравнения системы из Таблицы 4 к виду f 1(x) = y и f 2 (y)= x. Построить их графики и определить начальное приближение решения. Решить систему нелинейных уравнений с помощью функции Minerr.

Варианты задания 4

Вариант СЛАУ Вариант СЛАУ

Продолжение табл. 4

Варианты задания 4

Вариант СЛАУ Вариант СЛАУ

Задание 5. Символьно решить системы уравнений:

Содержание отчета

· Титульный лист (Приложение Г).

· Листинг документа MathCAD.

· Ответы на контрольные вопросы.

· Выводы по работе.

Список литературы

1. Плис, Александр Иванович. MATHCAD 2000; Математический практикум для экономистов и инженеров: учебное пособие для вузов / А. И. Плис, Н. А. Сливина. – М.: Финансы и статистика, 2000. – 656 с.

2. Глушаков, Сергей Владимирович. Математическое моделирование MathCAD 2000, MatLab 5: Учебный курс / С. В. Глушаков, И. А. Жакин, Т. С. Хачиров. – Харьков; М. : Фолио : АСТ, 2001. – 524 с.

3. Дьяконов, Владимир. Mathcad 2000: Учебный курс / В. Дьяконов. – СПб. : Питер, 2001. – 592 с.

REDMOND

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

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