|
|||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
РЕШЕНИЕ УРАВНЕНИЙ, НЕРАВЕНСТВ И ИХ СИСТЕМЦели работы: · знать команды, используемые при решении уравнений и их систем, неравенств и их систем в системе аналитических вычислений 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]); Из примера видно, что последовательность множеств, представляющих два полученных решения, сохранена в переменной answ. Для проверки правильности полученных решений, подставляем эти решения в исходную систему и вычисляем полученные выражения с помощью команды eval(). В результате вычисления системы уравнений на двух полученныхрешенияхмыполучили тождества, что говорит о правильности наших решений. Если для дальнейших вычислений необходимо иметь значения первого решения в виде отдельных переменных, то той же самой командой eval () можно извлечь их, вычислив, соответственно, неизвестную х и у на первом решении: > x1:=eval(x,answ[1]); > y1:=eval(y,answ[1]); Для проверки решения можно использовать функцию mар() вместе с функцией subs(), которая за одну операцию проверит все решения. Это удобно, когда решений очень много и для каждого из них пришлось бы выполнять команду eval(), если использовать предыдущий подход. Для решения нашей системы вызов команды mар() выглядит так: > map(subs,[answ],fs); Команда solve () может решать неопределенные системы уравнений, в которых количество уравнений меньше числа неизвестных. В этом случае система Maple сама решает, какие из неизвестных принять за параметры, а какие за неизвестные, относительно которых следует строить решение: > fs1:=x+3*y+4*z+5*t=50; > fs2:=3*x+3*y+2*z+t=30; > answ1:=solve({fs1,fs1}); Здесь решение получено в параметрической форме относительно неизвестных y, t и z, которые выбраны системой. Можно явно указать, относительно каких неизвестных следует решать систему уравнений, тогда оставшиеся будут рассматриваться как параметры: > answ2:=solve({fs1,fs1},{y,z}); В этом решении явно указаны неизвестные у и z, и полученное решение зависит от двух параметров х и t. С помощью функции eval () можно вычислить значения решения при конкретных значениях параметров: > eval(answ2,{x=1,z=1,t=1}); Бывает, что при решении систем уравнений ответ получается в виде множества уравнений, в которых левая часть является неизвестной переменной. Чтобы присвоить найденные значения переменным, относительно которых решалась система, следует применять команду assign(). Эта команда присваивает переменным, стоящим в левой части уравнений из множества решений, значения, равные правым частям. Можно сказать, что эта команда заменяет знак равенства (=) на знак операции присваивания (:=) во множестве, состоящем из уравнений, в которых левые части представлены неизвестными: > {q=a+b,w=g+p}; > assign(%);q;w; > eq:=x*a+y*b=c; > s:=solve({eq,x+y=1},{x,y}); > assign(s);x;y; Если решение получено в виде последовательности выражений, то получить значение соответствующего решения можно с помощью индекса. > fs:=y^4+2*y^2+2=0; > d:=solve(fs); > y1:=d[1];y1; Напомним, что в приведенном примере I означает комплексную мнимую единицу, равную .
3. Команда: fsolve (). По умолчанию Maple пытается найти аналитическое выражение для корней уравнения. Если это не удается, то, как отмечалось выше, в области вывода ничего не печатается. В подобных случаях (если корни действительно существуют) можно воспользоваться командой fsolve(), которая находит численное решение уравнения или системы уравнений. Формат команды отличается от формата команды solve() наличием третьего параметра опция: fsolve (уравнения, переменные, опция); Задание первых двух параметров соответствует заданию аналогичных параметров в команде solve(), а параметр опция может принимать значения из таблицы 1. Таблица 1. Значения параметра опцuя команды fsolve ()
Для произвольного уравнения по умолчанию эта функция находит одно решение, но для полиномов определяются все действительные корни. Для нахождения всех корней полинома, включая комплексные, следует задать опцию complex. В примере 4 показано использование команды численного решения уравнений. Пример 4. Численное решение уравнений. > eq:=x^4+2*x^2-2=0; > s:=fsolve(eq,x); > s:=fsolve(eq,x,complex); > fsolve(ln(sin(x))=0,x); > fsolve(ln(sin(x))=0,x,x=2..infinity); > fsolve(ln(sin(x))=0,x,x=15..infinity); Здесь также показано, как можно последовательно находить корни произвольного уравнения, задавая интервал изменения неизвестной величины с учетом полученного решения на предыдущем шаге нахождения корня (последние три команды).
4. Другие команды решения уравнений. Кроме универсальных команд solve () и fsolve () решения уравнений и систем уравнений, система Maple содержит специализированные команды, предназначенные либо для решения определенного класса уравнений, либо нахождения решений в заданном числовом поле. Здесь эти команды описаны предельно кратко для того, чтобы читатель знал об их существовании. Более подробно об этих командах можно узнать в справочной системе Maple, выполнив команду?имя_команды, где вместо параметра имя_команды следует подставить ее действительное имя. Команда isolve () ищет все целые решения уравнений. Если в уравнении задано несколько неизвестных, то строится решение относительно всех заданных неизвестных. Пример 5. Целочисленное решение уравнений. > isolve({(x+1)*(x-1/2)*(x-2)=0}); > isolve({5*x+6*y=1}); Врешении последнего уравнения примера 5 использована целочисленная переменная _Z1 сгенерированная Maple. Команда msolve () также ищет целочисленные решения уравнения, но только по модулю, заданному вторым параметром. Пример 6. Целочисленное решение уравнений по заданному целому модулю. > solve({3*x-4*y=1,7*x+y=2}); > msolve({3*x-4*y=1,7*x+y=2},11); > msolve({3^n=4},11); Команда rsolve () строит общее решение рекуррентного уравнения, используя начальные значения, если они заданы, или через их символьные обозначения, если они не заданы. Пример 7. Решение рекуррентных уравнений. > rsolve({F(n+2)=F(n+1)+F(n)},F(n)); # Без начальных условий
> rsolve({F(n+2)=F(n+1)+F(n),F(0)=1,F(1)=1},{F(n)}); # Используя заданные начальные условия
5. Решение неравенств. Команда solve () используется для решения неравенств и систем неравенств в области вещественных чисел точно так же, как и для решения уравнений и систем уравнений. Ответ выражается либо в виде множества неравенств, либо через функции RealRange () иOpen (). Первая определяет замкнутый отрезок действительных чисел, а вторая используется для указания того, что граничная точка не входит в построенное решение. Для задания решения в виде множества, следует задать в виде множества либо само неравенство, либо неизвестную, относительно которой ищется решение. Если этого не сделать, то ответ будет получен с использованием указанных функций определения действительных отрезков. Пример 8. Решение неравенств. > solve((x+3)/(4-x)>4,x); > solve((x+3)/(4-x)>4,{x}); > solve(log[1/2](log[2](x^2-8))>=-1); > solve({log[1/2](log[2](x^2-8))>=-1}); Впримере 8решены два неравенства, для каждого из которых построено решение в виде множества и в форме действительных интервалов.
Задачи для самостоятельного решения. 1. Решить уравнение и проверить правильность полученных решений: 1.1. 1.28. 1.2. 1.29. 1.3. 1.30. 1.4. 1.31. 1.5. 1.32. 1.6. 1.33. 1.7. 1.34. 1.8. 1.35. 1.9. 1.36. 1.10. 1.37. 1.11. 1.38. 1.12. 1.39. 1.13. 1.40. 1.14. 1.41. 1.15. 1.42. 1.16. 1.43. 1.17. 1.44. 1.18. 1.45. 1.19. 1.46. 1.20. 1.47. 1.21. 1.48. 1.22. 1.49. 1.23. 1.50. 1.24. 1.51. 1.25. 1.52. 1.26. 1.53. 1.27. 1.54. 1.55.
2. Решить систему уравнений:
2.1. 2.7. 2.2. 2.8. 2.3. 2.9. 2.4. 2.10. 2.5. 2.11. 2.6. 2.12. 2.13.
3. Решить неравенство:
3.1. 3.7. 3.2. 3.8. 3.3. 3.9. 3.4. 3.10. 3.5. 3.11. 3.6. 3.12. 3.13.
Варианты заданий.
. 1.1; 1.14; 1.27; 1.40; 2.1; 3.1; . 1.2; 1.15; 1.28; 1.41; 2.2; 3.2; . 1.3; 1.16; 1.29; 1.42; 2.3; 3.3; . 1.4; 1.17; 1.30; 1.43; 2.4; 3.4; . 1.5; 1.18; 1.31; 1.44; 2.5; 3.5; . 1.6; 1.19; 1.32; 1.45; 2.6; 3.6; . 1.7; 1.20; 1.33; 1.46; 2.7; 3.7; . 1.8; 1.21; 1.34; 1.47; 2.8; 3.8; . 1.9; 1.22; 1.35; 1.48; 2.9; 3.9; . 1.10; 1.23; 1.36; 1.49; 2.10; 3.10; . 1.11; 1.24; 1.37; 1.50; 2.11; 3.11; . 1.12; 1.25; 1.38; 1.51; 2.12; 3.12; . 1.13; 1.26; 1.39; 1.52; 2.13; 3.13; . 1.52; 1.53; 1.54; 1.55; 2.1; 3.1; . 1.53; 1.3; 1.5; 1.35; 2.2; 3.3;
Контрольные вопросы.
1. Команда solve (), ее предназначение и синтаксис. 2. Команда fsolve (), ее предназначение и синтаксис. 3. Команда isolve (), ее предназначение и синтаксис. 4. Команда assign (), ее предназначение и синтаксис. 5. Какой интервал чисел по умолчанию использует система Maple при решении тригонометрических уравнений с помощью команды solve ()? 6. Что нужно сделать, чтобы система Maple при решении тригонометрических уравнений выдавала абсолютно все решения? 7. С помощью каких команд осуществляется проверка полученного решения уравнения?
Литература
1. Говорухин В.Н., Цибулин В.Г. Введение в Maple. Математический пакет для всех. – М.: Мир, 1997. – 208 с. 2. Дьяконов В.П. Математическая система Maple V. – М.: Издательство “Солон”,1998. 3. Двайт Г.Б. Таблицы интегралов и другие математические формулы. – М.: Наука. Главная редакция физико-математической литературы, 1983. – 176 с. 4. Матросов А.В. Maple 6. Решение задач высшей математики и механики. – СПб.:БХВ - Петербург, 2001.– 528 с. 5. Манзон Б.М. Maple V Power Edition – М.: Информационно-издательский дом “Филинъ”,1998г.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.042 сек.) |