17153

Розв’язання рівнянь, нерівностей і їх систем

Лекция

Информатика, кибернетика и программирование

Лекція №24 Тема: Розв’язання рівнянь нерівностей і їх систем. План Команда solve Maple. Функція RootOf. Використання функції eval. Команда fsolve. Інші команди рішення рівнянь. Рішення нерівностей. Практично жодна задача не обходиться без рішення ...

Украинкский

2013-06-29

63.34 KB

16 чел.

Лекція №24

Тема: Розв’язання рівнянь, нерівностей і їх систем.

План

  1.  Команда solve() Maple.
  2.  Функція RootOf().
  3.  Використання функції eval().
  4.  Команда fsolve().
  5.  Інші команди рішення рівнянь.
  6.  Рішення нерівностей.

Практично жодна задача не обходиться без рішення якого-небудь рівняння або системи рівнянь, нерівності або системи нерівностей. Команда solve() системи Maple є універсальним засобом, що дозволяє вирішувати рівняння алгебри, нерівності і їх системи. Зупинимося на тих об'єктах, з якими ця команда працює, — на рівняннях і нерівностях.

Два вирази, сполучені знаком рівності (=), представляють самостійний тип даних Maple — рівняння (equation). Рівняння можна привласнювати звичним змінним Maple, з ними можна здійснювати перетворення, використовуючи звичні арифметичні дії, які виконуються окремо для лівої і правої частин рівнянь. Ці дії дозволяють перетворити рівняння до вигляду, зручного для використовування, а іноді і полегшуючому Maple пошук рішення. У примере1  приведені деякі перетворення, які можна здійснювати з рівняннями в Maple.

Приклад 1. Допустимі операції з рівняннями

> 2*x^2+5=x+x^4;





2

x

2

5



x

x

4

> whattype(%);

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

Так само. як і при завданні рівнянь, два вирази, сполучені знаками >= (більше або рівно), <= (менше або рівно), > (більше) або < (менше), представляють новий тип — нерівність (inequation).

Приклад 2. Нерівності

> f:=x>y;

> whattype(%);

> f-(z>4);

При перевірці типу об'єкту, що представляє нерівність, у області висновку відображається або про, або <, або <=. Річ у тому, що Maple "розуміє" тільки ці три типи. Нерівності протилежного знаку приводяться до них перестановкою лівої і правої частин із заміною знаків на протилежні.

Команда solve()

Команда solve()  дозволяє вирішувати рівняння і системи рівнянь, нерівності і системи нерівностей. Вона завжди намагається знайти замкнуте рішення в аналітичній формі. Її синтаксис, як і синтаксис всіх команд Maple, достатньо простий і легко запам'ятовується:

solve (рівняння, змінна);

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

Перша форма команди призначена для вирішення одного рівняння щодо заданої змінної, тоді як друга форма дозволяє вирішувати системи рівнянь щодо змінних, заданих другим параметром. Звернемо увагу на те, що система рівнянь і її невідомі змінні задаються у вигляді множин. Результатом в цьому випадку є також безліч значень невідомих у вигляді рівнянь, тоді як у разі завдання одного рівняння результатом буде вираз (у разі одного коріння рівняння) або послідовність виразів (у разі декількох коріння). Якщо не задана переменная/переменные, щодо яких слід вирішувати рівняння/систему рівнянь, то Maple видасть всі рішення щодо всіх невизначених змінних в початкових рівняннях. Якщо замість рівняння заданий вираз з невідомими, то воно розглядається як ліва частина рівняння, тоді як права частина передбачається рівною 0. Пример3 ілюструє деякі з перерахованих ситуацій.

 

Приклад 3 Рішення рівнянь і систем рівнянь

> eq:=x^2-2*x+y^2=0;

> solve(eq,x);

> solve({eq},x);

> eq1:=x+y=0;

> solve({eq,eq1},{x,y});

> solve(eq);

Коли Maple не може знайти жодного рішення, то команда solve() про повертає порожню послідовність null. Це означає, що або рішення не існує, або Maple не вдалося його знайти. Якщо не вдалося знайти всі рішення, то глобальна змінна _SolutionsMayBeLost встановлюється рівною true.

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

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

> eq:=x^5+x^3+1=0;

> s:=solve(eq,x);

> evalf(s[1]);

> solve(x=cos(x));

В даному прикладі функція RootOf (_Z - cos(_ Z)) представляє будь-яке рішення рівняння _Z-cos(_Z)= 0. Звернемо увагу на змінну _Z. Це системна змінна, що згенерує Maple, яка всього лише замінює змінну х нашого рівняння. Опція index із значенням, рівним цілому числу, служить для нумерації і впорядковування коріння рівняння. Звернемо увагу, що за допомогою функції evalf() можна набути наближені числові значення функції RootOf.

Особливо відзначимо рішення за допомогою команди solve() тригонометричних рівнянь. За умовчанням Maple вирішує їх на проміжку [-р, π ] . Для отримання всіх рішень тригонометричних рівнянь слід задати значення глобальної змінної _EnvAllSolutions рівним true. Наступний приклад ілюструє використовування глобальної змінної _EnvAllSolutions:

> eq:=sin(x)^2+2*sin(x)+1=0;

> s:=solve(eq,x);

> _EnvAllSolutions:=true;

> s:=solve(eq,x);

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

Коли ми уручну вирішуємо рівняння або системи рівнянь, то після отримання відповіді ми завжди здійснюємо перевірку одержаного рішення. підставляючи його в початкове рівняння або систему. Точно також слід поступати і при роботі в Maple. І рішення, одержувані у вигляді послідовностей множин, коли рівняння або система рівнянь задані у вигляді множин, виявляються самими відповідними для цих цілей.

Найзручнішим і відповідним методом перевірки рішень є використовування функції eval(). Хай ми вирішили, наприклад, систему рівнянь:

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

> sols:=solve(eqns,{x,y});

Послідовність множин, що представляють два одержані рішення, збережена в змінній sols. Тепер, щоб перевірити правильність одержаних рішень, слід підставити їх в початкову систему і обчислити одержані вирази за допомогою команди eval():

> eval(eqns,sols[1]);

> eval(eqns,sols[2]);

Як бачимо, в результаті обчислення системи рівнянь на двох одержаних рішеннях ми одержали тотожність, що говорить про правильність наших рішень. Якщо нам для подальших обчислень необхідно мати значення першого рішення у вигляді окремих змінних, то тією ж самою командою eval() можна витягнути їх, обчисливши, відповідно, невідому х і у на першому рішенні:

> x1:=eval(x,sols[1]);

> y1:=eval(у,sols[2]);

Для перевірки рішення можна використовувати функцію map() разом з функцією subs(), яка за одну операцію виконає перевірку всіх рішень. Це методика достатньо зручна, особливо тоді, коли рішень дуже багато і для кожного з них довелося б виконувати команду eval(), якщо використовувати попередній підхід. Для вирішення нашої системи виклик команди map () виглядає так:

> map(subs,[sols],eqns);

Команда solve() може вирішувати невизначені системи рівнянь, в яких кількість рівнянь менше числа невідомого. В цьому випадку система Maple сама вирішує, які з невідомих прийняти за параметри, а які за невідомі, щодо яких слід будувати рішення:

> eqn1:=x+2*y+3*z+4*t=41:

> eqn2:=5*x+5*y+4*z+3*t=20:

> sols:=solve({eqn1,eqn2});

Тут рішення одержане в параметричній формі щодо невідомих z і t, які вибрані системою. Можна явно вказати, щодо яких невідомих слід вирішувати систему рівнянь, тоді ті, що залишилися розглядатимуться як параметри:

> sols:=solve({eqn1,eqn2},{у,z});

Якщо при рішенні систем рівнянь відповідь виходить у вигляді безлічі рівнянь, в яких ліва частина є невідомою змінною, то для того, щоб привласнити знайдені значення змінним, щодо яких розв'язувалася система, слід застосовувати команду assign(). Ця команда привласнює змінним, стоїть в лівій частині рівнянь з безлічі рішень, значення, рівні правим частинам. Про цю команду можна мислити як про команду, яка замінює знак рівності (=) на знак операції привласнення (:=) в множині, що складається з рівнянь, в яких ліві частини представлені невідомими:

> eq:=x*a+y*b=c;

> s:=solve({eq,x+y=1},{x,y});

> assign(s);x;y;

Команда fsolve()

За умовчанням Maple намагається знайти аналітичний вираз для коріння рівняння. Якщо це йому не вдається, то, він просто нічого не друкує у області висновку. У подібних випадках (якщо коріння дійсно існує) можна скористатися командою fsolve(), яка знаходить чисельне рішення рівняння або системи рівнянь. Формат команди відрізняється від формату команди solve() наявністю третього параметра опція:

fsolve (рівняння, змінні, опція);

Завдання перших двох параметрів відповідає завданню аналогічних параметрів в команді solve(), а параметр опція може приймати значення з табл.1

Таблиця 1. Значення параметра опція команди fsolve()

Значення

Значення

complex

Розшукується комплексне коріння (тільки для поліномів)

Fulldigits

Використовується арифметика з максимальною мантисою

Maxsols=n

Розшукується n рішень (тільки для поліномів)

а. .b або x=а..b

Заданий проміжок   [а, b], на якому розшукується рішення (у другій формі завдання цієї опції х позначає ім'я невідомої змінної в рівнянні)

За умовчанням для довільного рівняння ця функція знаходить одне рішення, але для поліномів визначається все дійсне коріння. Щоб знайти все коріння полінома, включаючи комплексні, слід задати опцію complex. Використовування команди чисельного рішення рівнянь показане в прикладі.

Приклад  Чисельне рішення рівнянь

> eq:=x^4+2*x^2-1=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);

В даному прикладі також показано, яким чином можна послідовно знаходити коріння довільного рівняння, задаючи інтервал зміни невідомої величини з урахуванням одержаного рішення на попередньому кроці знаходження коріння.

Інші команди рішення рівнянь

Окрім універсальних команд solve() і fsolve() рішення рівнянь і систем рівнянь, Maple містить спеціалізовані команди, призначені для вирішення або певного класу рівнянь, або знаходження рішень в заданому числовому полі.

Команда isolve() шукає всі цілі рішення рівнянь. Якщо в рівнянні задано дещо невідомих, то будується рішення щодо всіх заданих невідомих.

Приклад  Цілочисельне рішення рівнянь

> isolve({(x-1)*(x-1/2)=0});

> isolve({3*x+4*y=1});

У рішенні останнього рівняння прикладу  використана цілочисельна змінна _Z1, що згенерує Maple.

Команда msolve() також шукає цілочисельні рішення рівняння, але тільки по модулю, заданому другим параметром.

Приклад. Цілочисельне рішення рівнянь  по заданому цілому модулю

> solve({3*x-4*y=1,7*x+y=2});

> msolve({3*x-4*y=1,7*x+y=2},11);

Для вирішення рекуррентних рівнянь в Maple включена спеціальна команда rsolve(), яка будує загальне рішення рекуррентного рівняння, використовуючи початкові значення, якщо вони задані, або через їх символьні позначення, якщо вони не задані.

Рішення нерівностей

Для вирішення нерівностей і систем нерівностей у області дійсних чисел слід використовувати команду solve() точно так, як і для вирішення рівнянь і систем рівнянь. Відповідь виражається або у вигляді безлічі нерівностей, або через функції RealRange() і Open(). Перша визначає замкнутий відрізок дійсних чисел, а друга використовується для вказівки того, що гранична крапка не входить в побудоване рішення. Для того, щоб задати рішення у вигляді множини, слід задати у вигляді множини або саму нерівність, або невідому, щодо якої шукається рішення. Якщо цього не зробити, то відповідь буде одержана з використанням вказаних функцій визначення дійсних відрізків.

Приклад  Рішення нерівностей

> solve((x+2)/(3-х)>2,x);

> solve((x+2)/(3-х)>2,{x});

 Література:

       Матросов А.В. Maple 6. Решение задач высшей математики и механики, Москва, 2000 – 528 с. [4], 128-145

Контрольні запитання:

  1.  Використання функції eval().
  2.  Дайте характеристику команді solve().


 

А также другие работы, которые могут Вас заинтересовать

27960. Деятельность, действие, операции. Комплекс возможностей образовательной среды как интегративный критерий её качества 24.13 KB
  Леонтьев Основные положения теории деятельности 1.Действия человека предметны; они реализуют социальные производственные и культурные цели принцип предметности человеческой деятельности и принцип ее социальной обусловленности. Психологическая теория деятельности начала разрабатываться в 20х начале 30х гг. Но главное состояло в том что авторы теории деятельности взяли на вооружение философию диалектического материализма теорию К.
27961. Соотношение внешней и внутренней деятельности 20.64 KB
  Соотношение внешней и внутренней деятельности. Интериоризацией называют как известно переход в результате которого внешние по своей форме процессы с внешними же вещественными предметами преобразуются в процессы протекающие в умственном плане в плане сознания; при этом они подвергаются специфической трансформации обобщаются вербализуются сокращаются и главное становятся способными к дальнейшему развитию которое переходит границы возможностей...
27962. Этапы развития психики в филогенезе: сенсорная психика, перцептивная психика, стадия интеллекта 26.14 KB
  Этапы развития психики в филогенезе: сенсорная психика перцептивная психика стадия интеллекта. Проблема возникновения психики в эволюции. С самого начала существует устойчивая связь психики ребёнка и психики матери.
27963. Функции и эмпирические характеристики сознания 344.54 KB
  Роль референтной группы в процессе социализации на различных онтогенетических этапах становления личности. Роль референтной группы в процессе социализации на различных онтогенетических этапах становления личности. Данная группа – стандарт система отсчета для оценки себя и других служит ориентиром на разных этапах социализации ребёнка. В начале 70х годов ролевая концепция социализации функциональный подход которую отстаивают и активно развивают представители так называемой гуманитарной педагогики : Р.
27964. Системный подход к решению психофизиологической проблемы 26.99 KB
  идеи о функциональном единстве мозга и его связи с поведением и психикой начали возникать более 100 лет назад. В конце прошлого века в основном в русле клинической неврологии стали высказываться идеи о единстве функционирования частей мозга и связи этого единства с умственными возможностями человека. Он стойко придерживался взгляда что в коре мозга нет такого поля которое бы не принимало участия в осуществлении интеллектуальных функций [2]. Микросистемы сопоставимы с отдельными структурными образованиями мозга.
27965. Краткая история проблемы мозговой локализации психических функций 26.04 KB
  Краткая история проблемы мозговой локализации психических функций. Центральная проблема нейропсихологии – проблема локализации высших психических функций связана с решением вопроса о том какова мозговая география различных психических функций и как исследуя нарушения психических функций при повреждениях мозга установить их причину и локализацию в головном мозге. Такое определение позволяет сформулировать центральные вопросы нейропсихологии: 1 теоретический – в соответствии с какими принципами и как размещаются в мозге человека...
27966. Рефлекс и реактивное поведение. Трехфакторная модель «значимого другого»: основные положения и методическое обеспечение 22.96 KB
  Важно чтобы мозг животного был свободен от других видов деятельности то есть его не должна отвлекать какаято посторонняя потребность и находиться на определенном уровне возбуждения На фоне различных видов тороможения или отвлекающих факторов обучение происходит медленно или не происходит вовсе. Кооперация – необходимый элемент совместной деятельности порожденный ее особой природой. Леонтьев называл две основные черты совместной деятельности: разделение единого процесса деятельности между участниками; изменение деятельности...
27967. Предметный образ и его семантическая многоуровневость 84.99 KB
  Поскольку состояние контактного взаимодействия анализатора с раздражителем непосредственно заключающее в себе ввиду своей двусторонности основу предметного изображения имеет место именно в осязании и прежде всего в тактильных ощущениях постольку простейший предметный образ формируется как рефлекторный эффект деятельности кожномеханического анализатора. На высших уровнях осязательной репрезентации состояние взаимодействия рецептора с раздражителем осуществляется и поддерживается на основе активной деятельности руки как специфического...
27968. Психофизическая зависимость и психофизическая функция 40.9 KB
  Типы и способы межличностоной и межгрупповой коммуникации. Типы и способы межличностоной и межгрупповой коммуникации. Когда говорят о коммуникации в узком смысле слова то прежде всего имеют в виду тот факт что в ходе совместной деятельности люди обмениваются между собой различными представлениями идеями интересами настроениями чувствами установками и пр. Все это можно рассматривать как информацию и тогда сам процесс коммуникации может быть понят как процесс обмена информацией.