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().


 

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

34413. Программно-целевой метод планирования, его сущность и область применения 30 KB
  На втором этане выдается задание на разработку программы для решения определенной проблемы. На третьем этапе разрабатываются задания и мероприятия для реализации программы. Четвертый этап предполагает расчет основных показателей и ресурсного обеспечения программы. Определяются затраты материальных трудовых финансовых ресурсов необходимых для реализации программы.
34414. Принципы организации ПиП 29.5 KB
  Организация прогнозирования и планирования охватывает систему органов планирования на всех уровнях управления народным хозяйством определение их функций установление порядка разработки прогнозов и планов доведение важнейших показателей до исполнителей и организацию обеспечения их выполнения. Научными основами организации прогнозирования и планирования являются принципы т. В современных условиях важнейшими принципами организации планирования являются: децентрализация и демократизация; демонополизация; экономически выгодное участие...
34415. Органы ПИП 46 KB
  К центральным экономическим органам относятся: Министерство экономики; Министерство финансов; Министерство труда; Министерство статистики и анализа; Министерство предпринимательства и инвестиций; Министерство по управлению государственным имуществом и приватизации. Министерство экономики подчиняется Совету Министров и в своей деятельности руководствуется законодательством республики и положением которым определены его задачи и функции.; методическое и научное обеспечение проведения экономических реформ; разработка принципов...
34416. Порядок разработки планов-прогнозов и утверждения важнейших показателей 38 KB
  Порядок и сроки разработки плановпрогнозов экономического и социального развития определяются правительством. Основой разработки годовых плановпрогнозов являются: Национальная стратегия устойчивого социальноэкономического развития; Программа социальноэкономического развития на среднесрочную перспективу; Программы и решения президента и правительства по важнейшим направлениям экономического развития межгосударственные соглашения. Всю работу по составлению планапрогноза можно подразделить на ряд этапов: Аналитическая...
34417. Макроэкономические показатели, характеризующие экономический рост 32 KB
  в применяемую систему макроэкономических показателей был введен валовой национальный продукт ВНП с целью обеспечения международных сравнений более точного измерения результатов экономической деятельности и в связи с переходом к системе национальных счетов. Главная отличительная особенность показателя ВНП состоит в том что он характеризует результаты экономической деятельности как материального производства так и непроизводственной сферы и не содержит повторного счета. Модификацией ВНП является показатель валового внутреннего продукта...
34418. Методы прогнозирования ВВП 38.5 KB
  Широко используются методы экстраполяции дефляции экономикоматематические модели факторные межотраслевые затраты выпуск эконометрические производственный распределительный методы и метод конечного использования ВВП. Метод экстраполяции предполагают исследование возможных тенденций изменения рядов динамики показателей ВВП и др. Суть факторных моделей экономического роста состоит в установлении количественных связей между объемом и динамикой производства ВВП и объемом и динамикой производственных ресурсов.
34419. Прогнозирование и планирование структуры экономики 41.5 KB
  Формирование структуры общественного производства является одним из важнейших этапов прогнозирования и планирования развития экономики. Стоимостная структура экономики формируется под влиянием отраслевых структурных изменений решения проблем повышения эффективности общественного производства снижения материалоемкости энергоемкости фондоемкости. Мировой опыт регулирования экономики свидетельствует о постоянном поиске механизмов которые обеспечивают непрерывные и гибкие изменения отраслевой и внутриотраслевой структуры производства в...
34420. Критерии и показатели эффективности общественного производства. Методы их прогнозирования и планирования 31 KB
  Методы их прогнозирования и планирования Согласно экономической теории эффективность производства означает результативность т. Повышение эффективности производства это рост результативности производства за счет лучшего использования ресурсов : материальных трудовых финансовых природных и т. Основной метод расчета эффективности это сопоставление полезного результата производства с затратами или используемыми в производстве ресурсами.
34421. Межотраслевой баланс в прогнозировании развития экономики 29.5 KB
  В мировой практике для выявления межотраслевых связей анализа и формирования структуры экономики на прогнозируемый период широко используется межотраслевой баланс автором которого является извествый ученый лауреат Нобелевской премии В. МОБ может использоваться как: метод обоснования и прогнозирования отраслевой структуры межотраслевых связей; можно выбрать наиболее эффективную структуру экономики; для расчета потребностей в капиталовложениях; определение потребности в рабочей силе прогноз занятости по отраслям; можно...