Смекни!
smekni.com

Решение уравнений, неравенств и их систем (стр. 1 из 2)

Кафедра: Информационные Технологии

Лабораторная Работа

На тему: РЕШЕНИЕ УРАВНЕНИЙ, НЕРАВЕНСТВ И ИХ СИСТЕМ.

Москва, 2008 год


РЕШЕНИЕ УРАВНЕНИЙ, НЕРАВЕНСТВ И ИХ СИСТЕМ

Цели работы:

· знать команды, используемые при решении уравнений и их систем, неравенств и их систем в системе аналитических вычислений Maple;

· уметь применять указанные команды для решения математических задач.

ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

1. Введение

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

Два выражения, соединенные знаком равенства (=), представляют самостоятельный тип данных Maple - уравнение(equation). Уравнения можно присваивать обычным переменным Maple, с уравнениями можно осуществлять преобразования, используя обычные арифметические действия, которые выполняются отдельно для левой и правой частей уравнений. Эти действия позволяют преобразовать уравнения к виду, удобному для использования, а иногда и облегчающему Maple поиск решения. Некоторые преобразования, которые можно осуществлять с уравнениями в системе Maple, приведены в примере 1.

Пример 1. Допустимые операции с уравнениями.

> 3*x^3+7=2*x+x^5;

> whattype(%);

> d:=3*x^3+7=2*x+x^5;

> whattype(d);

> d-(x^4=x^4);

> d+(x^4=x^4);

При проверке типа переменной, значением которой является уравнение, с помощью команды whattype () результатом является равенство =, означающее, что тип проверяемой переменной является уравнением.

Как и при задании уравнений два выражения, соединенные знаками >=(больше или равно), <=(меньше или равно), >(больше) или (меньше), представляют новый тип - неравенство (inequation).

Пример 2. Неравенства.

> a<b;

> whattype(%);

> d:=a>b;

> whattype(d);

> d-(h>4);

> d-(h<4);

При проверке типа объекта, представляющего неравенство, в области вывода отображается либо <>, либо <, либо <=. Дело в том, что Maple “понимает” только эти три типа. Неравенства противоположного знака приводятся к ним перестановкой левой и правой частей с заменой знаков на противоположные.

2. Команда: solve ( )

Команда solve() позволяет решать уравнения и системы уравнений, неравенства и системы неравенств. Эта команда всегда пытается найти замкнутое решение в аналитической форме. Ее синтаксис достаточно прост:

solve (ypaвнение, переменная);

solve ({уравнение l, уравнение 2, ... }, {переменная l, переменная 2, …});

Первая форма команды предназначена для решения одного уравнения относительно заданной переменной. Вторая форма позволяет решать системы уравнений относительно переменных, заданных вторым параметром. Заметим, что система уравнений и ее неизвестные переменные задаются в виде множеств, результатом в этом случае является также множество значений неизвестных в виде уравнений. В случае задания одного уравнения результатом будет выражение (в случае одного корня уравнения) или последовательность выражений (в случае нескольких корней). Если не задана переменная/переменные, относительно которых следует решать уравнение/систему уравнений, то Maple выдаст все решения относительно всех неопределенных переменных в исходных уравнениях. Если вместо уравнения задано выражение с неизвестными, то оно рассматривается как левая часть уравнения, тогда как правая часть предполагается равной 0. Некоторые из перечисленных ситуаций иллюстрирует пример 3.

Пример 3. Решение уравнений и систем уравнений.


> a:=x^2+7*x+y^3=0;

> solve(a,x);

> solve({a},x);

> a1:=2*x+y=0;

> solve({a,a1},{x,y});

> solve(a1);

В некоторых случаях команда solve() возвращает пустую последовательность NULL. Это означает, что решения или не существует, или Maple не удалось его найти. Если не удалось найти все решения, то глобальная переменная _SolutionsMayBeLost устанавливается равной true.

Последнее уравнение из примера 3. решалось без указания переменной, относительно которой следовало бы решать уравнение. Maple решил их относительно всех неизвестных величин, входящих в уравнение. Причем он выбрал неизвестную х в качестве параметра (х = х), а неизвестную переменную у выразил через введенный параметр х. Чтобы получить решение, следует параметру х присвоить произвольное значение, тогда значение неизвестной у будет определено однозначно.

В общем случае полиномиальное уравнение степени выше 4 может не иметь решения, выраженного с помощью радикалов. В этом случае для представления результатов Maple использует специальную функцию RootOf(), которая применяется для обозначения любого корня выражения, заданного в качестве ее параметра:

> eq:=x^5+x^4+x^3+8=0;

> d:=solve(eq,x);

> evalf(d[1]);

> solve(x=-2*cos(x));

В этом примере функция RootOf (_Z + 2 cos(_Z)) представляет любое решение уравнения _Z + 2 cos(_Z) =0. Переменная _Z – это системная переменная, сгенерированная Maple, которая всего лишь заменяет переменную х нашего уравнения. Опция index со значением, равным целому числу, служит для нумерации и упорядочивания корней уравнения. Заметим, что с помощью функции evalf ( ) можно получить приближенные числовые значения функции RootOf.

С помощью команды solve() можно решать и тригонометрические

уравнения. По умолчанию Maple решает их на промежутке [–p, p]. Для получения всех решений тригонометрических уравнений следует задать значение глобальной переменной _EnvAllSolutions равным true. Использование глобальной переменной _EnvAllSolutions показано на следующем примере:

> b:=sin(x)^2-2*sin(x)-1=0;

> s:=solve(b,x);

> _EnvAllSolutions:=true;

> s:=solve(b,x);

> about(_Z1);

Originally _Z1, renamed _Z1~:

is assumed to be: integer

> about(_B1);

Originally _B1, renamed _B1~:

is assumed to be: OrProp(0,1)

Как видно, в случае _EnvAllSolutions:=true Maple действительно строит все решения тригонометрического уравнения с использованием целочисленной системной переменной _Z1~. Знак тильда (~) означает, что на значения переменной наложены некоторые ограничения. В данном случае эта переменная может принимать только целочисленные значения. (В этом можно убедиться, выполнив команду about(_Z1).) Подобные переменные используются Maple для представления всех решений тригонометрических уравнений. Префикс _Zв имени переменной, сгенерированной Марlе, служит указанием того, что эта переменная может принимать только целые значения. Кроме указанных переменных также используются переменные с префиксом _NN, принимающие неотрицательные целые значения, и префиксом _B, для представления переменных с двоичной областью значении (0 или 1).

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

Обычно, решив уравнение или систему уравнений, мы осуществляем проверку полученного решения, подставляя его в исходное уравнение или систему. Точно также следует поступать и при работе в Maple. Для проверки решений можно использовать функцию eval( ):

> fs:={x+2*y=3,y+1/x=2};

> answ:=solve(fs,{x,y});

> eval(fs,answ[1]);

> eval(fs,answ[2]);