17153

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

Лекция

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

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

Украинкский

2013-06-29

63.34 KB

18 чел.

Лекція №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().


 

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

22376. ПРИМЕНЕНИЕ ОУ 806 KB
  Усилители с возрастающим и убывающим коэффициентами передачи. Суть метода заключается в том что коэффициент передачи цепи ООС ОУ должен иметь несколько дискретных значений каждое из которых соответствует определенному диапазону изменения входного сигнала. Коэффициент передачи этих делителей аппроксимирует требуемую нелинейную зависимость причем чем больше число дискретных значений может принимать коэффициент передачи ООС ОУ тем ближе получаемая зависимость выходного напряжения от входного к заданной. Усилитель с возрастающим коэффициентом...
22377. ГЕНЕРАТОРЫ ИМПУЛЬСОВ 584 KB
  Если напряжение передаваемое с выхода на вход по цепи ОС окажется в фазе с вызвавшим его входным напряжением и по значению будет не меньше его то усилитель возбудится. Физически это означает что в цепи ОС не происходит затухания сигнала. Цепи коррекции уменьшают усиление ОУ так чтобы при сдвиге 130 К было меньше 1 либо уменьшением коэффициента усиления.3 С1 перезаряжается по цепи UП R1 C1 VT1 корпус С2 заряжается по цепи UП RК2 C2 VT1 корпус.
22378. ГЕНЕРАТОРЫ ПИЛООБРАЗНОГО НАПРЯЖЕНИЯ (ГПН) 352.5 KB
  Принципы построения ГПН. ГПН в ждущем режиме. ГПН в автоколебательном режиме.
22379. АНАЛОГО-ЦИФРОВЫЕ И ЦИФРО-АНАЛОГОВЫЕ ПРЕОБРАЗОВАТЕЛИ (ЦАП И АЦП) 315 KB
  ЦАП с двоичновзвешенными резисторами. ЦАП с резистивной матрицей R2R.АНАЛОГОЦИФРОВЫЕ И ЦИФРОАНАЛОГОВЫЕ ПРЕОБРАЗОВАТЕЛИ ЦАП И АЦП 15.
22380. СТАБИЛИЗАТОРЫ И ПРЕОБРАЗОВАТЕЛИ НАПРЯЖЕНИЯ 132 KB
  Общие сведения Стабилизатором напряжения СН называется устройство поддерживающее с требуемой точностью напряжение на нагрузке при изменении дестабилизирующих факторов в определенных пределах. Это различие зависит от места включения СН: между источником напряжения и выпрямителем переменного тока; между выпрямителем и нагрузкой постоянного тока. Компенсационные СН КСН это системы автоматического регулирования выходного напряжения в которых используются также стабилитроны варисторы и т.
22381. Усилительные устройства (УУ) 104 KB
  Эквивалентная схема усилителя. Коэффициент полезного действия усилителя. Диапазон усиливаемых частот f = f0 fн разность между верхней и нижней граничными частотами усиления полоса пропускания усилителя.Эквивалентная схема усилителя Эквивалентная схема усилителя приведена на рис.
22382. Искажения, вносимые в усилителе 229.5 KB
  Искажения импульсных сигналов. Искажения вносимые в усилителе 8. Линейные искажения К линейным относят искажения: частотные вызваны неодинаковостью усиления различных частотных составляющих входного сигнала рис.
22383. Обратная связь (ОС) в усилителях 154 KB
  Влияние ОС на стабильность Ку Однако уменьшая Ку ООС увеличивает его стабильность. стабильность коэффициент усиления в усилителе с ООС в 1 раз выше чем в усилителе без ООС. Пример Пусть усилитель имеет Ку=100 и охвачен ООС причем коэффициент передачи цепи ОС . Стабилизация коэффициента усиления при введении ООС объясняется тем что увеличение усиления за счет любых причин вызывает возрастание напряжения ОС что вызывает уменьшение входного напряжения т.
22384. ОСНОВЫ ПРОЕКТИРОВАНИЯ ПРОМЫШЛЕННЫХ ЗДАНИЙ. ОБЪЕМНО-ПЛАНИРОВОЧНЫЕ И КОНСТРУКТИВНЫЕ РЕШЕНИЯ. ТИПИЗАЦИЯ СБОРНЫХ ЭЛЕМЕНТОВ 17.73 KB
  Так например элементы перекрытий и покрытий должны быть прочными и достаточно жесткими чтобы их прогиб не нарушал эксплуатационного режима здания: стены и колонны поддерживающие покрытия должны быть прочными и устойчивыми. Все здания в целом должны обладать пространственной жесткостью т. Здания бывают каркасными и бескаркасными. В бескаркасных зданиях пространственная жесткость создаётся благодаря совместной работе продольных и поперечных стен соединенных покрытиями в единую пространственную систему.