Перейти к содержимому

Given find mathcad как использовать

  • автор:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Donec eget ex magna. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fergiat. Pellentesque in mi eu massa lacinia malesuada et a elit. Donec urna ex, lacinia in purus ac, pretium pulvinar mauris. Curabitur sapien risus, commodo eget turpis at, elementum convallis elit. Pellentesque enim turpis, hendrerit tristique.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis dapibus rutrum facilisis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam tristique libero eu nibh porttitor fermentum. Nullam venenatis erat id vehicula viverra. Nunc ultrices eros ut ultricies condimentum. Mauris risus lacus, blandit sit amet venenatis non, bibendum vitae dolor. Nunc lorem mauris, fringilla in aliquam at, euismod in lectus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In non lorem sit amet elit placerat maximus. Pellentesque aliquam maximus risus, vel venenatis mauris vehicula hendrerit.

Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fersapien risus, commodo eget turpis at, elementum convallis elit. Pellentesque enim turpis, hendrerit tristique lorem ipsum dolor.

3 Решение систем уравнений: вычислительный блок Given/Find

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

Здесь , …, – некоторые скалярные выражения, зывисящие от скалярных переменных и возможно еще каких–то переменных.

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

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

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

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

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

Задание: Решить систему уравнений .

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

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

Задание: Решить алгебраическое уравнение

Оптимизация

1 Экстремум функции одной переменной

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

Для решения задач поиска минимума или максимума в MathCAD имеются встроенные функции Minimize и Maximize. Поиск экстремума функции включает в себя задачи нахождения локального и глобального экстремумов. В MathCAD с помощью встроенных функций решается только задача поиска локального экстремума. Чтобы найти глобальный максимум (или минимум), требуется либо сначала вычислить все их локальные значения, а затем выбрать из них наибольшее (наименьшее), либо предварительно просканировать с некоторым шагом рассматриваемую область, чтобы выделить из нее подобласть наибольших (наименьших) значений функции и осуществить поиск глобального экстремума, уже находясь в его окрестности.

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

Minimize(f, ) – вектор значений аргументов, при которых функция f достигает минимума

Maximize(f, ) – вектор значений аргументов, при которых функция f достигает максимума, где

f() – функция,

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

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

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

Задание: Найти минимум и максимум функции одной переменной .

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

Решение уравнений

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

Выражения с функцией Find()

Find(vl, v2, …, vn) — возвращает значение одной или ряда переменных для точного решения;

Знак равенства в уравнениях вызывается с математической панели БУЛЕВО(Boolean) или с клавиатуры клавишами «CTRL http://www.intuit.ru/2010/edi» >

Как и в предыдущем случае, сначала необходимо провести локализацию корней – задание начальной точки, от которой будет происходить поиск решения. Решение ищется методом итераций и при наличии нескольких корней, очевидно, будет найдено лишь ближайшее решение, если оно существует. Блок Given…Find(.) можно использовать и для решения уравнений одним неизвестным.

Пример 4.4

Решить систему уравнений <y-e^<\frac<x><3>>=0\choose y-x^2-1=0>» />.</p>
<p>Осуществляется решение системы нелинейных уравнений при помощи блока <i>Given…Find(.)</i> (Рис.4.3).</p>
<ul>
<li>Локализация корней: задаем систему уравнений, строим график.</li>
<li>По графику определяем три корня.</li>
<li>Задаем последовательно разные начальные значения корней.</li>
</ul>
<p><img decoding=

Листинг решения примера 4.4

x:=1, y:=1

Given

e^<\frac<x><3>>-y=0″ /></p>
<p><img decoding=

Find(x,y)=\begin<pmatrix>0.354 \\ 1.125 \end<pmatrix>» /></p>
<p><img decoding=, y:=0.1

Given

e^<\frac<x><3>>-y=0″ /></p>
<p><img decoding=

Find(x,y)=\begin<pmatrix>-2.631 \cdot 10^ <-9>\\ 1 \end<pmatrix>» /></p>
<p><img decoding=, y1:=100

Given

e^<\frac<x1><3>>-y1=0″ /></p>
<p><img decoding=

Find(x1,y1)=\begin<pmatrix>17.015 \\ 290.506 \end<pmatrix>» /></p>
<h5>Поиск корней при помощи блока Given Minerr()</h5>
<p>Функция <i>Minerr</i> использует тот же самый алгоритм, что и функция <i>Find</i>. Различие состоит в следующем. Функция <i>Find</i> ищет решение с заданной точностью и, если в результате поиска не может быть получено дальнейшее уточнение текущего приближения к решению, то она возвращает сообщение об ошибке. Функция <i>Minerr</i> возвращает это приближение. Системная переменная ERR дает величину ошибки.</p>
<p><i>Minerr (vl, v2, …, vn )</i> возвращает значения ряда переменных для приближенного решения.</p>
<p><i>Minerr()</i> пытается найти максимальное приближение даже к несуществующему решению путем минимизации среднеквадратичной погрешности решения. При использовании функции <i>Minerr</i> обязательно предусматривать проверку решений. Полезно как можно точнее указывать начальные приближения к решению.</p>
<h6>Пример 4.5</h6>
<p>Решить систему уравнений <img decoding=

-2y+6z-25=0

y(z):=z^3+9z^2-20z+1

y1(z):=3z-12.5

 Листинг решения примера 4.5

z:=1, y:=-1

Given

z^3+9z^2-20z+1-y=0

-2y+6z-25=0

Система не решается:

Система не решается

z:=1, y:=-1

Given

z^3+9z^2-20z+1-y=0

-2y+6z-25=0

Minerr(z,y)=\begin<pmatrix>1.082 \\ -9.169 \end<pmatrix>» /></p>
<p><img decoding=

z0:=1.082, y0:=-9.169

Решение уравнений в MathCad

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

Использование метода 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

Обратите внимание, что метод подходит как для численного так и для символьного представления результатов

Donec eget ex magna. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fergiat. Pellentesque in mi eu massa lacinia malesuada et a elit. Donec urna ex, lacinia in purus ac, pretium pulvinar mauris. Curabitur sapien risus, commodo eget turpis at, elementum convallis elit. Pellentesque enim turpis, hendrerit tristique.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis dapibus rutrum facilisis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam tristique libero eu nibh porttitor fermentum. Nullam venenatis erat id vehicula viverra. Nunc ultrices eros ut ultricies condimentum. Mauris risus lacus, blandit sit amet venenatis non, bibendum vitae dolor. Nunc lorem mauris, fringilla in aliquam at, euismod in lectus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In non lorem sit amet elit placerat maximus. Pellentesque aliquam maximus risus, vel venenatis mauris vehicula hendrerit.

Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fersapien risus, commodo eget turpis at, elementum convallis elit. Pellentesque enim turpis, hendrerit tristique lorem ipsum dolor.

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

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