Решение уравнений и их систем
Использование оператора solve для аналитического решения уравнений в Mathcad. Решение логарифмических и показательных уравнений. Численное и аналитическуое решение систем линейных уравнений. Составление матрицы коэффициентов и вектора правых частей.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 21.10.2013 |
Размер файла | 40,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Решение уравнений и их систем
1. Аналитическое решение уравнений
Для аналитического решения уравнений в Mathcad существует специальный оператор solve (решить). Чтобы с его помощью найти корни уравнения нужно выполнить следующую последовательность действий:
1) ввести оператор solve (решить) при помощи одноименной команды панели symbolie;
2) в левом маркере задать вид решаемого уравнения (в качестве знака равенства следует использовать логическое равенство на панели Boolean);
3) в правый маркер ввести переменную, относительно которой должно быть решено уравнение.
Ответ оператора solve представляет в виде выражения (численного или буквального). Если решений несколько, то они представляются в виде вектора (матрицы - столбца).
Лучше всего Mathcad справляется с поиском корней алгебраических полиномов. При этом находится все корни - как действительные, так и мнимые. Их общее число, как известно (исходя из знаменитой теоремы Гаусса), равно n ,где n- степень полинома.
Пример: Поиск всех решений уравнения
Решаемое уравнение можно задавать и со знаком равенства. Однако в качестве знака равенства следует использовать логическое равенство (на панели Boolean).
Весьма неплохо справляется символьный процессор Mathcad с показателями и логарифмическими уравнениями. При решении логарифмических уравнений нужно помнить, что натуральный логарифм задается функцией ln, десятичный - функцией log. Для задания логарифма при основании x также служит функция log, однако в этом случае она принимает два параметра: первый соответствует величине, от которой ищется логарифм, второй - основанию логарифма. Решая логарифмическое или показательное уравнение, ответ оператор solve дает обычно в виде сложного выражения из чисел и логарифмов от чисел. Чтобы привести его к более простому виду, следует использовать оператор simplify.
Пример: Решение логарифмических и показательных уравнений.
уравнение логарифмический линейный матрица
Хуже всего символьный процессор Mathcad решает тригонометрические уравнения. Большинство таких уравнений, как известно, имеет бесконечное множество корней. Так, например, решение уравнения sin(x)=0 запишется в виде , (R - множество цельных чисел). Однако Mathcad находит корни только на промежутке одного периода заданной в уравнении тригонометрической функции.
Пример: Решение тригонометрических уравнений.
2. Численное решение уравнений
Далеко не все уравнения можно решать аналитически. Чаще их приходится решать численными методами.
Для численного поиска решений алгебраических уравнений с одним неизвестным в Mathcad существует специальная встроенная функция root (корень). Функция эта может использоваться в двух различных формах, при этом реализуются разные численные алгоритмы. Так, если определена только одна точка приближения к корню, поиск решений будет осуществляться так называемым методом секущих. Если же задан интервал, на котором предположительно локализовано решение, то поиск его будет осуществлен с применением метода деления пополам (метод Больцано).
Если необходимо найти корень некоторого уравнения, причем известен интервал, в котором он локализован, проще всего использовать функцию root с четырьмя аргументами: root(f(x),x,a,b), где f(x) - функция, определяющая уравнение, x - переменная, a и b - границы интервала локализации.
Обязательным условием является то, что значения функции на концах интервала должны быть противоположных знаков. Если это условие нарушается, система выдает сообщение об ошибке. Кроме того, функция f(x) должна быть ограниченной и непрерывной на промежутке [a,b].
Очень важной характеристикой решения является его точность. В Mathcad можно регулировать величину погрешности решения, изменяя значение специальной системной переменной TOL (от англ. "tolerance" - точность). Изменить величину этой системной переменной можно либо при помощи панели, открываемой командой Math > Options (Инструменты >Опции документа), либо выполнив соответствующее присваивание непосредственно слева или сверху функции численного решения. По умолчанию TOL равняется 10-3.
Величина TOL должна задаваться исходя из того, сколько знаков в мантии ее решения являются значимыми. Например, если решение нужно получить с точностью до пятого знака после запятой, то TOL должен быть равен 10-5.
Пример: Найти первый положительный корен уравнения
Задаем функцию
Значение первого положительного корня очевидно.
TOL:=0,1. Ответ точен до первого знака после запятой:
TOL:=0,0001. Ответ точен до 4-го знака после запятой:
TOL:=0,0000000001. Ответ точен до 10-го знака:
Пример: Решение уравнений методом секущих.
Задаем функцию, описывающую уравнение:
Точное значение первого положительного корня:
Задаем начальное приближение: x:=0.2
Ищем корень при различных значениях TOL:
TOL:=10-4 root(f(x),x)=0.240805743114691
TOL:=10-4 root(f(x),x)=0.28518778874873
Одним из основных недостатков функции root является то, что одновременно она способна найти только один корень уравнения. Чтобы найти остальные корни, придется проделать те же операции, но для других приближений.
Однако, если уравнение представлено алгебраическим полиномом в Mathcad существует специальная функция поиска всех корней - функция polyroots (v), где v - вектор, составленный из коэффициентов полинома.
Важной особенностью задания v является то, что коэффициенты располагаются в векторе сверху вниз соответственно увеличению степеней членов полинома, к которым они относятся.
Пример: Поиск корней полинома численным методом
x4+x3+x-10=0
Переписывать коэффициенты из выражения в вектор не очень интересное и приятное занятие. К тому же довольно легко либо допустить ошибку в самом числе, либо просто перепутать знаки. Для решения этой проблемы нужно использовать специальный оператор coeffs, расположенный на панели symbolic. Причем, полином может быть представлен и в неразвернутой форме: к стандартному виду оператор coeffs приведет его автоматически.
Пример: Использование оператора coeffs.
(x2+x-3)2+(x-10)3=0
f(x):=(x2+x-3)2+(x-10)3
3. Решение систем линейных уравнений
Все методы решения систем линейных алгебраических уравнений можно разделить на две основные группы. К первой относятся так называемые прямые (или матричные) методы: Крамера и Гаусса. Во вторую группу входят довольно специфичные итерационные методы.
В системе Mathcad реализованы в виде специальных функций методы обеих групп, однако ниже остановимся только на прямых методах.
Ниже следующий пример демонстрирует аналитическое решение системы уравнений методом Крамера.
Пример: Решить систему линейных уравнений методом Крамера:
x+y+z+p=10
x-y-z-p=-8
x+y-z+p=4
-x-y+z+p=4
Прежде всего следует переписать систему в матричном виде
Если такой метод решения систем линейных уравнений не очень нравится, то можно воспользоваться специальной встроенной функцией lsolve(M,V), где M - матрица коэффициентов, V- вектор правых частей. Функция эта также использует метод Крамера.
Пример: Решение системы линейных уравнений при помощи функции lsolve
Особенностью функции lsolve является то, что она может найти решение системы уравнений не только численно, но и аналитически.
В Mathcad метод Крамера считается основным при решении систем линейных алгебраических уравнений. Однако, есть возможность решения такой системы уравнений и методом Гаусса. Для этого служит функция rref(M), где M - матрица, полученная слиянием матрицы коэффициентов и вектора правых частей.
Пример: Решить систему линейных алгебраических уравнений методом Гаусса.
3x+2y-z+10k=100
x-4y+5z-k=56
23x+56y-43z+12k=49
x+y+z+k=0
Составляем матрицу коэффициентов и вектор правых частей:
Объединяем матрицу коэффициентов и вектор правых частей в одну матрицу: M:=augment(KOF,PR)
Находим корни системы
Размещено на Allbest.ru
Подобные документы
Алгоритм решения систем линейных уравнений методом Гаусса, его этапы. Система уравнений для определения коэффициентов сплайна, представляющая собой частный случай систем линейных алгебраических уравнений. Программная реализация, тестовый пример.
курсовая работа [431,8 K], добавлен 15.06.2013Использование ранжированных переменных в программном пакете Mathcad. Создание матриц без использования шаблонов матриц, описание операторов для работы с векторами и матрицами. Решение систем линейных и нелинейных уравнений с помощью функций Mathcad.
контрольная работа [964,6 K], добавлен 06.03.2011Численные методы решения задач. Решение алгебраических и трансцендентных уравнений. Уточнение корня по методу половинного деления. Решение систем линейных уравнений методом итераций. Методы решения дифференциальных уравнений. Решение транспортной задачи.
курсовая работа [149,7 K], добавлен 16.11.2008Особенности решения уравнений с одной переменной методом половинного деления. Оценка погрешности метода простой итерации. Суть решения уравнений в пакете Mathcad. Векторная запись нелинейных систем. Метод Ньютона решения систем нелинейных уравнений.
курсовая работа [2,1 M], добавлен 12.12.2013Суть метода Рунге-Кутта и его свойства. Решение дифференциальных уравнений первого порядка. Вычислительный блок Given/Odesolve. Встроенные функции rkfixed, Rkadapt, Bulstoer. Решения линейных алгебраических уравнений в среде MathCad и Microsoft Excel.
курсовая работа [1,1 M], добавлен 02.06.2014Решение систем алгебраических линейных уравнений методом Крамера. Сущность метода прогонки. Программная реализация метода: блок-схема алгоритма, листинг программы. Проверка применимости данного способа решения для конкретной системы линейных уравнений.
курсовая работа [581,0 K], добавлен 15.06.2013Системы линейных алгебраических уравнений. Решение систем уравнений графическим способом. Разработка программного кода модуля, реализующего приближенное решение систем линейных уравнений графическим способом. Отладка программного модуля "Метод Гаусса".
курсовая работа [858,5 K], добавлен 01.12.2013Точность вычислений, классификация погрешностей. Оценка апостериорной погрешности, численное дифференцирование. Численное решение систем линейных уравнений. Аппроксимация функций методом наименьших квадратов. Решение нелинейных уравнений с неизвестным.
методичка [611,8 K], добавлен 10.10.2010Проектирование приложения, позволяющего находить решение системы алгебраических линейных уравнений матричным методом. Выбор количества уравнений, заполнение значений коэффициентов системы уравнений и свободных членов, алгоритм решения линейных уравнений.
курсовая работа [939,4 K], добавлен 16.01.2014Матричная форма записи системы линейных уравнений, последовательность ее решения методом исключений Гаусса. Алгоритмы прямого хода и запоминания коэффициентов. Решение задачи о сглаживании экспериментальных данных с помощью метода наименьших квадратов.
курсовая работа [610,7 K], добавлен 25.06.2012