Как найти одно неизвестное в маткаде

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

  • Метод Given — Find
  • Метод Solve

Использование метода 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 не очень удобен для далнейшего использования результатов решения уравнения

Одно уравнение одно неизвестное 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

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

root( f(z), z) Возвращает значение z, при котором выражение или функция f(z) обращается в 0. Оба аргумента этой функции должны быть скалярами. Функция возвращает скаляр.

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

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

Рассмотрим пример, как найти a — решение уравнения e x = x 3 . Для этого выполните следующие шаги:

  • Определите начальное значение переменной x. Введите x:3. Выбор начального приближения влияет на корень, возвращаемый Mathcad (если выражение имеет несколько корней).
  • Определите выражение, которое должно быть обращено в ноль. Для этого перепишите уравнение e x = x 3 в виде x 3 — e x = 0. Левая часть этого выражения и является вторым аргументом функции root
  • Определите переменную a как корень уравнения. Для этого введите a:root(x^3[Space]-e^x[Space],x).
  • Напечатайте a=, чтобы увидеть значение корня.

При использовании функции root имейте в виду следующее:

  • Удостоверьтесь, что переменной присвоено начальное значение до начала использования функции root.
  • Для выражения с несколькими корнями, например x 2 — 1 = 0, начальное значение определяет корень, который будет найден Mathcad. На Рисунке 1 приведен пример, в котором функция root возвращает различные значения, каждое из которых зависит от начального приближения.
  • Mathcad позволяет находить как комплексные, так и вещественные корни. Для поиска комплексного корня следует взять в качестве начального приближения комплексное число.
  • Задача решения уравнения вида f(x) = g(x) эквивалентна задаче поиска корня выражения f(x) — g(x) =0. Для этого функция root может быть использована следующим образом:

Функция root предназначена для решения одного уравнения с одним неизвестным. Для решения систем уравнений используйте методику, описанную в следующем разделе “Системы уравнений”. Для символьного решения уравнений или нахождения точного численного решения уравнения в терминах элементарных функций выберите Решить относительно переменной из меню Символика. См. Главу “Символьные вычисления”.

Рисунок 1: Использование графика и функции root для поиска корней уравнения.

Что делать, когда функция root не сходится

Mathcad в функции root использует для поиска корня метод секущей. Начальное значение, присвоенное переменной x, становится первым приближением к искомому корню. Когда значение выражения f(x) при очередном приближении становится меньше значения встроенной переменной TOL, корень считается найденным, и функция root возвращает результат.

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

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

Чтобы установить причину ошибки, исследуйте график f(x). Он поможет выяснить наличие корней уравнения f(x)=0 и, если они есть, то определить приблизительно их значения. Чем точнее выбрано начальное приближение корня, тем быстрее функция root будет сходиться к точному значению. roots;using plots to find

Некоторые советы по использованию функции root

В этом разделе приведены несколько советов по использованию функции root:

  • Для изменения точности, с которой функция root ищет корень, можно изменить значение встроенной переменной TOL. Если значение TOL увеличивается, функция root будет сходиться быстрее, но ответ будет менее точен. Если значение TOL уменьшается, функция root будет сходиться медленнее, но ответ будет более точен. Чтобы изменить значение TOL в определенной точке рабочего документа, используйте определение вида TOL := 0.01. Чтобы изменить значение TOL для всего рабочего документа, выберите из меню Математика команду Встроенные переменные и введите подходящее значение в поле TOL. Нажав “OK”, выберите из меню Математика команду Пересчитать всё, чтобы обновить все вычисления в рабочем документе с использованием нового значения переменной TOL.
  • Если уравнение имеет несколько корней, пробуйте использовать различные начальные приближения, чтобы найти их. Использование графика функции полезно для нахождения числа корней выражения, их расположения и определения подходящих начальных приближений. Рисунок 1 показывает пример. Если два корня расположены близко друг от друга, можно уменьшить TOL, чтобы различить их.
  • Если f(x) имеет малый наклон около искомого корня, функция может сходиться к значению r, отстоящему от корня достаточно далеко . В таких случаях для нахождения более точного значения корня необходимо уменьшить значение TOL. Другой вариант заключается в замене уравнения f(x)=0 на g(x)=0, где
  • Для выражения f(x) с известным корнем a нахождение дополнительных корней f(x) эквивалентно поиску корней уравнения h(x)=0, где h(x)=f(x)/(x-a). Подобный приём полезен для нахождения корней, расположенных близко друг к другу. Часто бывает проще искать корень выражения h(x), определенного выше, чем пробовать искать другой корень уравнения f(x)=0, выбирая различные начальные приближения.
  • Решение уравнений с параметром

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

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

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

    Рисунок 2: Определение функции пользователя с функцией root.

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

    Для нахождения корней выражения, имеющего вид

    лучше использовать функцию polyroots, нежели root. В отличие от функции root, функция polyroots не требует начального приближения. Кроме того, функция polyroots возвращает сразу все корни, как вещественные, так и комплексные. На Рисунках 3 и 4 приведены примеры использования функции polyroots.

    polyroots(v) Возвращает корни полинома степени . Коэффициенты полинома находятся в векторе v длины n+1. Возвращает вектор длины n, состоящий из корней полинома.

    Функция polyroots всегда возвращает значения корней полинома, найденные численно. Чтобы находить корни символьно, используйте команду Решить относительно переменной из меню Символика. См. Главу “Символьные вычисления”.

    Рисунок 3: Использование функции polyroots для решения задачи, изображенной на Рисунке 1.

    Рисунок 4: Использование функции polyroots для поиска корней полинома.

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

    Категории

    • 3ds Max (12)
    • AutoCAD (9)
    • Mathcad (9)
    • Microsoft Excel (10)
    • Microsoft Word (18)
    • Mudbox (3)
    • Windows (24)
    • Главная (1)
    • Железо (14)
    • Компас 3D (5)
    • Компьютерные курсы (3)
    • Программирование (8)
      • PHP (5)
      • Python (3)
    • Программы (21)
    • Прочее (19)

    MathCad Решение уравнения с одной неизвестной

    Уравнение ax = b, где x — неизвестное, a и b — числа, является уравнением с одним неизвестным, или иначе говоря, линейным уравнением.

    Программа MathCad для решения этой задачи использует функцию root ( ). Выдаёт var значение для обнуления функции f. Если a и b определены, находится корень var на этом интервале. Иначе var должна быть определена с оценкой до вызова корня. Эта функция может включать в себя два или четыре аргумента, от их количества зависит и алгоритм расчетов.

    root (f (x) , x, a, b);

    f(x) — скалярная функция, определяющая уравнение f(x)=0;

    х — имя скалярной переменной, относительно которой решается уравнение;

    а, b — границы интервала, внутри которого происходит поиск корня.

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

    Внесение данных в программу.

    Определение этого выражения нужно обратить в ноль, а следовательно его необходимо переписать как:

    Зададим начальное приближение переменной х=0, (если уравнение имеет несколько корней, то начальное приближение будет влиять на результат, который выдаст программа). Далее зададим переменную а и присвоим ей значение нашего выражения:

    Вычисление результата.

    Далее вычисляем значение нашей переменной а и программа выдаст результат а=8.

    Проверка правильности решения.

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

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

    источники:

    http://old.exponenta.ru/soft/MathCAD/usersguide/chapter15/15_1.asp

    http://cl-box.ru/mathcad-uravnenie-1-peremennoi/

    Любой численный метод решения уравнения основан на уточнении какого-либо начального значения корня до заданной точности. Точность вычислений в MathCAD задается встроенной переменной TOL и по умолчанию равна 0,001. Для задания начального значения корня удобно сначала построить график функции, задающей уравнение.

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

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

    Given – ключевое слово, определяющее начало цикла или вычислительного блока;

    Уравнение, записанное с использованием жирного равно;

    Find(xn) –

    встроенная

    функция

    для

    решения

    уравнения

    относительно переменной xn.

    Вставлять логический

    оператор

    следует,

    пользуясь

    панелью

    инструментов Boolean

    (Булевы

    операторы).

    Если

    вы

    предпочитаете ввод с

    клавиатуры, помните, что логический знак равенства вводится сочетанием клавиш<Ctrl>+<=>. Блок Given/Find использует для поиска решения итерационные методы, поэтому требуется задать xn – начальные значения для неизвестной. Сделать это необходимо до ключевого словаGiven. Если начальные значения неизвестной задать в виде вектора(уравнение имеет несколько корней), то значение функции Find будет тоже вектор, составленный

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

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

    root(y(х),х,а,b);

    root(y(х),х); где

    y(х) – скалярная функция, определяющая уравнение;

    31

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

    а, b – границы интервала, внутри которого происходит поиск корня.

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

    Решение задачи 2 в Mathcad

    задание функции

    y (x) := 5 × sin(3 × x + 2) 2.5 × x

    + exp(x)

    10

    5

    y(x)

    0

    1

    2

    1

    5

    10

    x

    Первый способ

    æ 0.7 ö

    начальные приближения к корням, взятые из

    ç

    ÷

    xn := ç

    0.4

    ÷

    графика и заданные в виде вектора

    è

    1.5

    ø

    Given

    начало цикла

    y (xn)

    0

    тело цикла, равенство с жирным равно

    k := Find(xn)

    конец цикла, функция Find ищет корни уравнения

    с заданной точностью

    æ 0.635 ö

    ç

    ÷

    решение уравнение в виде вектора

    k = ç

    0.452

    ÷

    è

    1.506

    ø

    32

    k1 := k0 = 0.635

    k2 := k1 = 0.452

    k3 := k2 = 1.506

    три корня, вывод ответа

    проверка

    y (k1) = 0 y (k2) = 0 y (k3) = 0

    Второй способ:

    Использование встроенной функции root на интервале приближений

    xk1 := root(y (x) ,x ,-1 ,0)

    (1 ,0)

    — интервал значения корня

    xk1 = 0.635 первый корень

    xk2 := root(y (x) ,x ,0 ,1)

    xk2 = 0.452

    второй корень

    xk3 := root(y (x) ,x ,1 ,2)

    xk3 = 1.506

    третий корень

    Третий способ:

    Использование встроенной функции root с точкой начального приближения

    xn := 0.7

    начальное приближение к корню

    kk1 := root(y (xn) ,xn)

    kk1 = 0.635 первый корень

    xn := 0.4

    начальное приближение к корню

    kk2 := root(y (xn) ,xn)

    kk2 = 0.452

    второй корень

    xn := 1.5

    начальное приближение к корню

    kk3 := root(y (xn) ,xn)

    kk3 = 1.506

    третий корень

    10

    y(x)

    y(k)

    5

    y(xk1)

    y(xk2)

    y(xk3)

    1

    0

    1

    2

    y(kk1)

    y(kk2)

    5

    y(kk3)

    10

    x,k ,xk1,xk2,xk3 ,kk1 ,kk2 ,kk3

    33

    Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

    • #
    • #
    • #
    • #
    • #
    • #
    • #
    • #
    • #
    • #
    • #

    Уравнение и системы уравнений в математическом пакете Mathcad  в символьном виде решаются с использованием специального оператора символьного решения solve в сочетании со знаком символьного равенства, который может быть также введен с рабочей панели “Символика”. Например:

    Аналогичные действия при решении уравнений в Mathcad можно выполнить, используя меню “Символика”. Для этого необходимо записать вычисляемое выражение. Затем выделить переменную, относительно которой решается уравнение, войти в меню  Символика, Переменная, Разрешить. Например:

    В случае, если необходимо упростить полученный результат, используется знак равенства [=]. Например:

    При решении некоторых уравнений, результат включает большое количество символов. Mathcad сохраняет его в буфере, а на дисплей выводитcя сообщение: “


    This array has more elements than can be displayed at one time. Try using the “submatrix” function” – “Этот массив содержит больше элементов, чем может быть отображено одновременно. Попытайтесь использовать функцию “submatrix””. В этом случае рекомендуется использовать численное решение. Или, в случае необходимости, символьное решение может быть выведено и отображено на дисплее.

    Символьное решение может быть получено с использованием блока given … find. В этом случае при записи уравнения для связи его левой и правой части использует символ логического равенства “=” с панели инструментов Boolean, например:

    Аналогичным способом решаются системы уравнений в символьном виде. Ниже приводятся примеры решения систем уравнений в символьном виде различными способами. При использовании оператора символьного решения


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

    Пример использования блока given…find для решения системы уравнений:

    allmathcad.com

    Уравнения с одним неизвестным в 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 ( ).

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

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

    given

    Решаемое уравнение

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

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


    given…minerr ( ) найдено решение, значение, которое наиболее приближено к оси х, то есть обеспечивает минималь-ную невязку. Значение невязки (ошибки) показывает системная переменная ERR.

    allmathcad.com

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

    Первоначально рассмотрим СЛАУ в Mathcad. Для их решения может использоваться блок given …find() или специальная функция lsolve(). Применение блока given …find() предопределяет необходимость задания начальных значений искомых переменных. Далее после ключевого слова given описывается СЛАУ и с помощью find() находится решение. Следует указать, что в том случае, когда


    СЛАУ
     в Mathcad имеет бесконечное множество решений блок given …find() дает конкретный результат, что несомненно следует отнести к недостаткам. В случае отсутствия решения будет выдано сообщение “Matrix is singular. Cannot compute its inversу – Матрица сингулярная. Нельзя вычислить эту инверсию”.

    Применение функции lsolve( ) позволяет избежать этого недостатка. Функция lsolve(M,b) имеет два аргумента. M – матрица коэффициентов при неизвестных, b – вектор свободных членов. На листинге приведен пример решения СЛАУ.

    Пример решения СЛАУ:

    Для решения системы нелинейных уравнений используются два блока: given…find() и given…minerr (). Так как система нелинейных уравнений может иметь несколько решений, то полученные результаты зависят от начальных значений искомых переменных. В обоих случаях получаются приближенные решения, для которых рекомендуется делать проверку. Обычно в Mathcad требуется, чтобы количество уравнений было равно количеству искомых переменных, но в некоторых случаях, когда с точки зрения классической математики может быть получено точное решение и при меньшем количестве уравнений, данное условие может быть нарушено. На листинге представлены примеры использования блоков

    given…find() и given…minerr () для решения систем нелинейных уравнений.

    allmathcad.com

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

    Решение уравнений является важным для решения практических задач. Поэтому уделим уравнениям еще один урок.

    Блок решения в функции

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


    A
    :

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

    Функцию можно использовать сколько угодно раз:

    Использовать функцию можно с диапазоном переменных:

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


    A<0.7). Поэтому лучше заранее проверить свою функцию.

    Сообщения об ошибке можно избежать, написав маленькую программу:

    Если блок решения выдает сообщение об ошибке, на выходе получим значение NaN (Not a Number – «Не Число»), которое просто не отображается на графике:

    Построим две ветки уравнения с использованием этого приема:

    Когда переменных много

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

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

    Минимизация ошибки

    Find() – не единственный решатель в Mathcad. Еще один полезным решателем является Minnerr(), находящий решения, которые минимизируют ошибку в системе уравнений. Рассмотрим пример: есть набор данных, которые мы хотим аппроксимировать уравнением Бейтмена:

    Мы хотим подобрать три константы в уравнении Бейтмена таким образом, чтобы ошибка приближения была минимальна. У нас есть семь уравнений (по одной для каждого эксперимента) и три константы, так что в системе избыток данных. Minerr() может обработать эту проблему:

    Замечания:

    1. Три константы являются переменными для этой системы.
    2. Переменные не могут иметь счетных индексов.
    3. У параметров (t и c) могут быть счетные индексы.

    Возможно, Вам хотелось бы использовать цикл


    for для семи уравнений, но в блоке решений этого сделать нельзя.

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

    Резюме

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

    1. Вы можете определить вывод блока решения как функцию. Таким образом в блок решения можно передавать параметры и начальные приближения.
    2. Если при вычислении точек для графика хотя бы одно решение не будет найдено, то график не будет построен. Этой ошибки можно избежать, написав небольшую программу с использованием “try/on error”, которая выводит NaN (Not a Number – Не Число), если результат отсутствует.
    3. Для двух и более неизвестных (и уравнений) вывод блока решения является вектором. Если нужен один или два элемента этого вектора, их можно вывести, используя подстрочные индексы.
    4. Вместо функции Find() можно использовать Minerr() – она минимизирует ошибку для заданного набора ограничений, в том числе, если данные избыточны. Minerr() часто может дать приближенный результат, когда Find() выдает ошибку.

    Другие интересные материалы

    sapr-journal.ru

    2. Решение уравнений в Mathcad

    2.1. Численное решение уравнения

    Для простейших уравнений
    вида f(x) = 0
    решение в Mathcad находится с помощью
    функции root

    root(
    f(х1,
    x2,
    ),
    х
    1,
    a,
    b
    )

    Возвращает значение х1,
    принадлежащее отрезку [a,
    b],
    при котором выражение или функция f(х)
    обращается в 0. Оба
    аргумента этой функции должны быть
    скалярами. Функция возвращает скаляр.

    Аргументы:

    f(х1,
    x2,
    )
    функция,
    определенная где-либо в рабочем документе,
    или выражение. Выражение должно возвращать
    скалярные значения.

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

    a,
    b
    необязательны, если
    используются, то должны быть вещественными
    числами, причем a
    < b.

    Наиболее распространен
    графический способ
    определения начальных приближений.
    Принимая во внимание, что действительные
    корни уравнения f(x)
    = 0 — это точки пересечения графика функции
    f(x)
    с осью абсцисс, достаточно построить
    график функции f(x)
    и отметить точки пересечения f(x)
    с осью Ох,
    или отметить на оси Ох
    отрезки, содержащие по одному корню.
    Построение графиков часто удается
    сильно упростить, заменив уравнение
    f(x)
    = 0 равносильным
    ему уравнением:

    ,

    где функции
    f
    1(x)
    и f2(x)
    — более простые, чем функция
    f
    (x).
    Тогда, построив графики функций у
    =
    f
    1(x)
    и у
    = f2(x),
    искомые корни получим как абсциссы
    точек пересечения этих графиков.

    Пример.
    Графически отделить
    корни уравнения:

    Уравнение (1) удобно
    переписать в виде равенства:

    lg x=.

    Отсюда ясно, что корни
    уравнения (1) могут быть найдены как
    абсциссы точек пересечения логарифмической
    кривой y
    = lg x и
    гиперболы y
    =
    .
    Построив эти кривые, приближенно найдем
    единственный корень
    уравнения (1) или определим его содержащий
    отрезок [2, 3].

    Упражнение 1.
    Построить график
    функции f(x)
    (Таблица 1) и приблизительно
    определить один из корней уравнения.
    Решить уравнение f(x)=
    0 с
    помощью встроенной функции Mathcad root.

    Таблица 1

    Варианты упражнения 1

    x3
    + x2
    -2sin(x)
    =0

    5x
    — 8ln(x) = 8

    x2
    + x — cos(3x) = 1

    x2
    — sin(4x) = 0

    3x
    — 2ln(x) = 5

    2x
    -2,2x =0

    x2
    — 2x -sin(3x) =1

    x
    — sin(x)
    -0.25
    = 0

    3x —
    ex
    = 0

    3x
    — 2ln(x) = 5

    ex
    + e-3x
    = 4

    x
    +4sin(x) = 2

    2.7x
    — 1.5ln(x) = 2.8

    x3
    + x2
    -2sin(x)
    =0

    ex
    -6x =3

    studfiles.net

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

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

    Блок решения в функциях

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

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

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

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

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

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

    Когда блок решения начинает выдавать ошибки, мы получим значение NaN (Not a Number – «Не Число». Впрочем, на графике мы его не увидим.

    Теперь разработаем две ветки уравнения при использовании данного опционала:

    Что делать в случаях, когда переменных много

    Бывают расчеты, в которых вмещено несколько переменных. Вполне возможно, что когда-то с ними столкнетесь и вы. Для примера мы возьмем систему, которая состоит из восьми уравнений. Нам понадобится получить только X и Y. Сначала же зададим всем переменным начальное приближение.

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

    Устранение ошибки

    Теперь давайте на примере просмотрим набор данных, которые будут аппроксимированны в соответствии с уравнениями Бейтмена.

    Сейчас мы собираемся разработать три константы при помощи уравнения Бейтмена таким образом, чтобы актуальная ошибка приближения была минимизирована. Что мы имеем? Систему из семи уравнений. Каждая из них соответствует отдельному эксперименту. Также у нас есть три константы, а, следовательно, система пострадала от преизбытка данных. Опция Minerr () станет оптимальным инструментом для обработки данной проблемы.

    Константы – это переменные нашей системы. Переменные не имеют математических индексов. Параметры имеют индексы счетного типа.

    archicad-autocad.com

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

    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. Нелинейные уравнения являются головной болью для любого языка программирования. Попробуйте понять поведение Ваших уравнений, прежде чем приступать – часто уравнения могут не иметь решения.

    Другие интересные материалы

    sapr-journal.ru

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

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

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

    Синтаксис: root(f(z),z) – возвращает значение z, при котором выражение
    или функция
    f(z) обращается в ноль. Оба аргумента этой функции должны быть скалярами.
    Функция
    root возвращает скаляр.

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

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

    Рассмотрим пример, в котором необходимо найти a – решение уравнения ex=x3. Для этого выполним следующие шаги:

    ·        
    Определим начальное значение переменной x (x := 3).

    ·        
    Определим выражение, которое должно быть обращено в
    ноль. Для этого перепишем уравнение
    ex=x3 в виде exx3=0. Левая часть этого выражения и является вторым аргументом функции root.

    ·        
    Определим переменную a
    как корень уравнения:
    := root(exx3, x).

    ·        
    Напечатаем a=, чтобы увидеть значения корня: a = 1.857.

    Также существует второй способ записи функции root с четырьмя аргументами. Ее синтаксис следующий: root(f(z), z, a, b). В этом случае не требуется задавать начальное приближение, а MathCad самостоятельно будет пытаться найти корень уравнения f(z)=0 на отрезке [a; b]. Пример
    использования такой записи будет показан далее (рисунок 1).

    При использовании функции root
    имейте в виду следующее:

    ·        
    Удостоверьтесь, что переменной присвоено начальное
    значение до начала использования функции
    root
    случае использования формы записи функции
    root с
    двумя переменными).

    ·        
    Для выражения с несколькими корнями, начальное
    значение определяет корень, который будет найден
    MathCad.
    На рисунке 1 приведен пример, в котором функция
    root возвращает различные значения, каждое из которых зависит от начального
    приближения.

    ·        
    MathCad позволяет находить как комплексные, так и
    вещественные корни. Для поиска комплексного корня следует взять в качестве
    начального приближения комплексное число.

    ·        
    Задача решения уравнения вида f(x)=g(x) эквивалентна задаче поиска корня выражения f(x)‑g(x)=0. Для этого функция root может быть использована следующим образом: root(f(x)‑g(x), x).

    ·        
    Функция root
    предназначена только для решения одного уравнения с одним неизвестным.

    Рисунок 1. Использование функции root
    для нахождения корней уравнения.

    Что делать, когда функция root
    не сходится.

    MathCad в функции root для
    поиска корня использует метод секущей. Начальное приближение, присвоенное
    переменной
    x, становится первым приближением к
    искомому корню. Когда значение выражения
    f(x) при очередном приближении становится меньше
    значения встроенной переменной
    TOL (по умолчанию TOL=10-3 – допускаемая погрешность для
    различных алгоритмов аппроксимации, таких как интегрирование, решение уравнений
    и т.д.), корень считается найденным, и функция
    root
    возвращает результат.

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

    ·        
    Уравнение не имеет корней.

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

    ·        
    Выражение имеет локальные максимумы или минимумы между
    начальным приближением и корнями.

    ·        
    Выражение имеет разрыв между начальным приближением
    и корнями.

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

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

    Некоторые советы по использованию
    функции root.

    ·        
    Для изменения точности, с которой функция root ищет корень, можно изменить значение встроенной переменной TOL. Если значение TOL увеличивается, функция root будет сходиться быстрее, но ответ будет менее точен. Если значение TOL уменьшается, функция root будет сходиться
    медленнее, но ответ будет более точен. Чтобы изменить значение
    TOL в определенной точке рабочего документа, используется определение вида
    TOL:=0.01. Чтобы изменить
    значение
    TOL для всего рабочего документа, выберите
    из меню
    Math команду Options (в русской версии из меню Математика команду Встроенные
    переменные
    ), и на вкладке
    BuiltIn Variables (Встроенные переменные) введите подходящее значение в
    поле
    TOL. Нажав «ОК», выберите из меню Math команду Calculate Worksheet
    русской версии из меню Математика команду Пересчитать всё), чтобы
    обновить все вычисления в рабочем документе с использованием нового значения
    переменной
    TOL.

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

    ·        
    Если f(x) имеет малый наклон около искомого корня,
    функция
    root(f(x),x) может
    сходиться к значению
    r, отстоящему от корня
    достаточно далеко. В таких случаях для нахождения более точного значения корня
    необходимо уменьшить значения
    TOL. Другой вариант
    заключается в замене уравнения
    f(x)=0 эквивалентным ему уравнением g(x)=0, где

    На этом пункте остановимся поподробнее и рассмотрим пример.
    Пусть дана функция
    f(x)=0.000001×x2. Очевидно, что единственным кратным корнем
    уравнения
    f(x)=0 является значение x0=0. Однако, если воспользоваться функцией root с начальным приближением, равным 3, то МathCad выдаст результат: root(f(x),x)=1.501. Как раз в этом примере функция f(x) имеет очень малый наклон вблизи искомого
    корня. Теперь, если же воспользоваться заменой:

    то
    результат использования функции
    root будет
    следующим:
    root(g(x),x)=4.445×10-13. Достаточно точное решение уравнения f(x)=0 также можно получить, установив значение TOL=10-10. При этом будет получен
    следующий результат:
    root(f(x),x)=7.958×10-3.

    ·        
    Для выражения f(x) с известным корнем a нахождение дополнительных корней f(x) эквивалентно поиску корней уравнения h(x)=0, где h(x)=f(x)/(xa). Подобный прием полезен для нахождения корней, расположенных близко
    друг к другу. Часто бывает проще искать корень выражения
    h(x), определенного
    выше, чем пробовать искать другой корень уравнения
    f(x)=0, выбирая
    различные начальные приближения.

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

    Предположим, что нужно решить уравнение многократно при изменении
    одного из параметров этого уравнения. Например, пусть требуется решить
    уравнение
    ex=a×x2 для нескольких различных значений параметра a.
    Самый простой способ состоит в определении функции

    f(a,
    x):=root(ex‑a
    ×x2,
    x)

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

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

    Рисунок
    2. Решение уравнения с параметром.

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

    Для нахождения выражения, имеющего вид:

    vnxn+…+v2x2+v1x+v0

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

    Синтаксис: polyroots(v) – возвращает корни полинома степени n. Коэффициенты полинома находятся в векторе v длины n+1. Возвращает
    вектор длины
    n, состоящий из корней полинома.

    Функция polyroots всегда возвращает
    значение корней полинома, найденные численно. На рисунке 3 приведен пример
    использования функции
    polyroots.

    Рисунок 3. Пример использования функции polyroots.

    3. Системы уравнений.

    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, называются блоком решения уравнения.

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

    Рисунок 4. Пример использования функции Find для решения одного уравнения.

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

    Условие

    Как ввести

    Описание

    w=z

    [Ctrl]+=

    Булево равенство
    возвращает 1, если операнды равны; иначе 0.

    x>y

    Больше чем.

    x<y

    Меньше чем.

    x³y

    [Ctrl]+0

    Больше либо равно

    x£y

    [Ctrl]+9

    Меньше либо равно

    w¹y

    [Ctrl]+3

    Не равно

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

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

    ·        
    Неравенства вида a<b<c.

    Блоки решения уравнений не могут быть вложены друг в друга.
    Каждый блок решения уравнений может иметь только одно ключевое слово
    Given и имя функции Find. Можно, однако,
    определить функцию
    f(x):=Find(x) в конце одного блока решения уравнений и затем использовать f(x) в другом
    блоке.

    Рисунок 5. Пример использования функции Find для решения двух уравнений с двумя неизвестными.

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

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

    Как использовать найденное решение.

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

    ·        
    Можно вывести данное решение, напечатав выражение
    вида
    Find(переменная)=.
    Если решаются уравнения с несколькими неизвестными, то можно вывести вектор
    результатов, введя выражение вида
    Find(переменная1,
    переменная2,…)=
    .

    ·        
    Можно определить переменную с использованием этой
    функции. Для этого в конце блока решения уравнений необходимо ввести выражение
    типа
    a:=Find(x). Это удобно сделать, если требуется
    использовать решение системы уравнений в другом месте рабочего документа. Как
    только переменная
    a определена таким образом, она
    сразу же принимает значение искомого корня. Пример, иллюстрирующий такую
    возможность, был рассмотрен выше (рисунок 4). Если функция
    Find возвращает вектор значений, можно ввести выражение типа variable:=Find(переменная1, переменная2,…). После такого определения переменная становиться вектором (вместо
    скаляра). Можно также определить переменные, как показано на рисунке 5.

    ·        
    Используя Find, можно
    определить другую функцию. Для этого необходимо закончить блок решения
    уравнений выражением типа
    f(a, b, c,…):=Find(x, y, z,…). Эта конструкция удобна при многократном
    решении системы уравнений для различных значений некоторых параметров
    a, b, c,…, непосредственно входящих в систему уравнений.

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

    MathCad возвращает в блоке решения уравнений только одно
    решение. Однако система уравнений может иметь несколько различных решений. Если
    одно решение найдено, то для поиска других решений можно использовать различные
    начальные приближения либо дополнительные ограничения в виде неравенств,
    которым найденное решение не удовлетворяет. На рисунке 6 показано, как
    начальное приближение влияет на найденное решение. На рисунке 7 показано, как
    добавить ограничения в виде неравенства для поиска другого решения.

    Рисунок 7. Добавление ограничений позволяет найти другое
    решение.

    Что делать, когда MathCad не может
    найти решения.

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

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

    На рисунке 8 приведена задача, для которой MathCad не смог найти решение. В этом конкретном случае ошибка заключается в
    том, что в качестве начального приближения выбрано вещественное число, а решаемое
    уравнение имеет только комплексные корни. Если в этом примере в качестве
    начального приближения задать мнимую единицу (
    i), то MathCad выдаст ответ Find(x)=1.732i.

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

    Вообще, сообщение об ошибках «решение не найдено» («No
    solution was found») при решении
    уравнений появляется, когда различие между текущим приближением и приближением,
    полученным на предыдущем шаге итераций, больше, чем значение встроенной
    переменной
    TOL и выполнено одно из следующих
    условий:

    ·        
    Достигнута точка, из которой не может быть получено
    более точное приближение к решению.

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

    ·        
    Достигнут предел точности вычислений. Дальнейшие
    вычисления не увеличивают точность найденного решения вследствие влияния ошибок
    округления. Это часто случается, если значение переменной
    TOL установлено меньше, чем 10‑15.

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

    ·        
    Поставленная задача может не иметь решения.

    ·        
    Для уравнения, которое не имеет вещественных
    решений, в качестве начального приближения взято вещественное число. Этот
    пример был рассмотрен ранее (рисунок 8).

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

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

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

    Случай, когда число неизвестных больше
    числа уравнений.

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

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

    В этом случае MathCad пытается решить
    систему уравнения посредством подбора первых
    n переменных
    (
    n – число уравнений в системе), а остальные
    переменные
    MathCad приравнивает к нулю. В рассматриваемом
    примере у нас имеется система из двух уравнений, поэтому
    MathCad варьирует только два первых аргумента функции Find, а именно, x и y. Остальные же аргументы (z, w, v) MathCad полагает
    равными нулю.

    Рисунок 9. Пример использования функции Find в случае, когда число неизвестных превышает число ограничений.

    Многократное решение уравнений.

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

    ·        
    Как только используется функция Find, это означает, что блок решения уравнений завершен. Если употребить
    эту функцию еще раз, появится сообщение об ошибке «нет соответствующего
    Given» («Only allowed inside a solve block. Try typing Given above»).

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

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

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

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

    На рисунке 10 приведен конкретный пример. Коэффициент
    трения трубки
    f зависит от диаметра трубки D, шероховатости e и числа Рейнольдса R. Было бы
    неплохо экспериментировать с различными размерами трубки (
    D), сделанной из различных материалов с различной шероховатостью (e).

    Уравнение на рисунке 14 показывает связь между этими
    параметрами. Учитывая вид уравнения, можно отметить, что аналитически выразить
    значение величины
    f от R, D, e  нельзя.

    Можно, однако, определить функцию с использованием блока
    решения уравнений. Всякий раз, когда вычисляется функция
    FricFac(e, D, R), MathCad подставляет заданные конкретные
    значения аргументов
    e, D и R в блок решения уравнений, решает уравнение относительно неизвестного f и возвращает найденное значение корня.

    Рисунок 10. Определение функции с использованием блока
    решения уравнений.

    Предположим, что зафиксированы размер трубки и ее материал
    (
    D и e,), и нужно
    исследовать зависимость трения от значения числа Рейнольдса. Хотя функция
    FricFac на рисунке 10 была определена с использованием блока решения
    уравнений, она обладает теми же самыми свойствами, что и любая другая функция.
    Ее можно также использовать с дискретным аргументом.

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

    Рисунок 11. Построение графика функции FricFac при
    фиксированных значениях
    D и e  и переменном
    значении числа Рейнольдса.

    Предыдущий пример включает в себя только одно уравнение с
    одним неизвестным. Также возможно многократно решать и систему уравнений при
    различных значениях входящих в нее параметров. Однако в этом случае требуется
    проявить аккуратность при выводе результата, чтобы избежать сообщения об
    ошибке  «нескалярная величина» («
    Not a scalar»).

    Предположим, что ищется пересечение прямой и окружности переменного
    радиуса
    R. Аналогично предыдущему примеру можно
    определить функцию с использованием блока решения уравнений. В этом случае
    функция может быть определена следующим образом:
    F(R):=Find(xy). Эта
    функция возвращает вектор значений, элементы которого –
    x и y – содержат координаты точки
    пересечения.

    Рисунок 12. Пример вывода трех решений, каждое из которых
    является вектором.

    Основное отличие от предыдущего примера состоит в том, что
    определенная таким образом функция для каждого значения параметра
    R возвращает вектор, состоящий из двух элементов. Если попытаться вывести
    найденный ответ, печатая F(R)=, то это будет попытка вывести таким
    образом не таблицу чисел (скаляров), а таблицу, каждый элемент которой является
    вектором , состоящим из двух элементов.

    Решение этой проблемы состоит в раздельном отображении
    таблиц для разных элементов вектора
    F(R)0 и F(R)1. Напечатав F(R)[0=, получаем
    таблицу всех значений
    x – абсцисс точек
    пересечения. Аналогично, напечатав
    F(R)[1=, получаем таблицу всех значений y – ординат точек пересечения прямой и окружности.

    Приближенные решения.

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

    Синтаксис: Minerr(z1, z2, z3,…) – возвращает решение системы уравнений. Число аргументов равно числу
    неизвестных.

    На рисунках 13 и 14 приведен пример, в котором сравниваются
    результаты решения уравнения, полученные с использованием функций
    Find
    и Minerr.

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

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

    Рисунок 14. Сравнение работы функций Find и Minerr, в случае, когда функция Find возвращает решение уравнения. Результаты решения двумя способами
    совпадают. Величина ошибки при использовании функции
    Minerr равна 1.082×10-6.

    Понравилась статья? Поделить с друзьями:
  • Как найти точку на конической поверхности
  • Как составить таблицу квадратной функции
  • Как составить план стихотворения родина
  • Гта 5 как найти маслкары для ограбления
  • Как найти нужное число в массиве