Лекція № Тема: Сучасні засоби комп'ютерної математики

Вид материалаЛекція

Содержание


Основні можливості пакета MathCAD
Загальна характеристика.
Інтерфейс системи MathCAD 2000 Pro
Установка MathCAD 2000 PRO RUS.
Робота з калькулятором.
Рішення рівняння з однієї невідомої
Нехай нам дане наступне рівняння
Нехай нам дане наступне рівняння
Символи\Коефіцієнти полінома
Рішення системи нелінійних рівнянь
Наближене рішення системи нелінійних рівнянь
Пошук кореня нелінійного рівняння
Пошук всіх корінь багаточлена
Функція root у складі функції користувача
Недоліком функції root
Початкові умови
Функції для рішення систем нелінійних рівнянь
Уведення обмежень при рішенні систем нелінійних рівнянь
Клавіші Значення оператора
Приклади рішення нелінійних рівнянь
...
Полное содержание
Подобный материал:
Лекція № 1.

Тема: Сучасні засоби комп'ютерної математики.
Функціональні можливості MathCAD.


Інтегровані математичні програмні системі для науково-технічних розрахунків: Eureka , MatLAB , MathCAD, Maple, Mathematica, Statistica і т.д. Велика кількість подібних розробок свідчать про значний інтерес до них в усім світі й швидкий розвиток комп'ютерних математичних систем.


Широку й заслужену популярність ще в середині 80-х років заслужили інтегровані системи для автоматизації математичних розрахунків класу MathCAD, розроблені фірмою MathSoft (США).


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


Mathcad - це ідеальний математичний інструмент для користувачів, що працюють в області техніки або природничих наук, а також для студентів, викладачів і школярів. Mathcad вигідно відрізняється від інших програм комп'ютерної математики можливістю вільно компонувати робочий аркуш і легкістю у вивченні.

MathCAD є математичним редактором, що дозволяє проводити різноманітні наукові й інженерні розрахунки, починаючи від елементарної арифметики й закінчуючи складними реалізаціями чисельних методів.

MathCAD поєднує в собі простий текстовий редактор, математичний інтерпретатор і графічний процесор.

Блоки виконуються ліворуч праворуч і зверху вниз.

MathCad надає широкі можливості імпорту/експорту даних, інтеграція з Internet, можливість роботи з електронними таблицями Excel усередині MathCad-документа.


Основні можливості пакета MathCAD:
  • математичні вираження й текст, уводяться за допомогою формульного редактора MathCAD, що по можливостях і простоті використання не уступає, приміром, редактору формул, убудованому в Microsoft Word;
  • математичні розрахунки виробляються негайно, відповідно до уведених формул;
  • графіки різних типів (на вибір користувача) з багатими можливостями форматування уставляються безпосередньо в документи;
  • можливе уведення й висновок даних у файли різних форматів;
  • документи можуть бути роздруковані безпосередньо з MathCAD у тім виді, що користувач бачить на екрані комп'ютера, або збережені у форматі RTF для наступного редагування в могутніших текстових редакторах (наприклад, Microsoft Word);
  • можливе збереження документів у форматі Web-сторінки, причому створення файлів з малюнками відбувається автоматично;
  • символьні обчислення дозволяють миттєво одержати різноманітну довідкову математичну інформацію, а система допомоги, Центр Ресурсів й убудовані електронні книги допомагають швидко відшукати потрібну довідку або приклад тих або інших розрахунків.

До складу MathCAD входять трохи інтегрованих між собою компонентів:

- це потужний текстовий редактор для уведення й редагування як тексту, так і формул,

- обчислювальний процесор - для проведення розрахунків відповідно до уведених формул,

- символьний процесор, що є, по суті, системою штучного інтелекту.

Сполучення цих компонентів створює зручне обчислювальне середовище для різноманітних математичних розрахунків й, одночасно, документування результатів роботи.


Загальна характеристика.


У пакеті MATHCAD широко використаються убудовані функції. До основних убудованих функцій ставляться

тригонометричні й зворотні,

гіперболічні й зворотні,

експонентні,

логарифмічні,

статистичні,

Фур'є,

Бесселя,

комплексних змінних.

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


При рішенні задач фізики звичайно потрібне введення розмірності й таку можливість надає MATHCAD.

Усього в середовищі MATHCAD п'ять одиниць виміру:

довжина,

маса,

час,

заряд,

абсолютна температура.


В MATHCAD представлені наступні види графіків:

декартовий (X-Y plot),

полярний (Polar plot),

поверхні (Surface plot),

карта ліній рівня (Contour plot),

векторне поле (Vector Field plot),

тривимірний крапковий (3D Scatter plot),

тривимірна стовпчаста діаграма (3D Bar Chart).

Інтерфейс системи MathCAD 2000 Pro


Інтерфейс користувача системи створений так, що користувач, що має елементарні навички роботи з Windows-додатками, може відразу починати роботу з MathCAD. Інтерфейс системи зовні дуже нагадує інтерфейс широко відомих текстових процесорів Word


Панель математика.

Панель математика служить для виведення панелей спеціальних математичних знаків і грецьких букв.

Кнопки панелі математика.
  1. Панель «арифметика» – шаблони арифметичних операцій.
  2. Панель «графіки» – шаблони побудови графіків.
  3. Панель «матриці» – робота з матрицями й векторами.
  4. Панель «Обчислення» – деякі оператори обчислення
  5. Панель «матаналіз» – оператори математичного аналізу.
  6. Панель логіки – логічні оператори.
  7. Панель «програмування» – інструменти (шаблони) програмування й алгоритмічні конструкції.
  8. Панель «грецький алфавіт» – символи грецького алфавіту.
  9. Панель «символи» – символьні оператори.


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


Для запуску формульного редактора досить установити курсор миші в будь-яке вільне місце вікна редагування й клацнути лівою клавішею. З'явиться курсор у вигляді маленького червоного хрестика. Його можна переміщати клавішами переміщення курсору.

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

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

Зміна виду курсору відбувається за допомогою пробілу або стрілок переміщення курсору (верх, униз і т.д.).

Підготовка обчислювальних блоків полегшується завдяки шаблонам операторів. Для цього в MathCAD служать панелі із шаблонами різних математичних символів.

Установка MathCAD 2000 PRO RUS.

Системи MathCAD 2000 PRO RUS поставляються на CD-ROM (можлива поставка мінімальних версій і на 3,5-дюймових дискетах). Система орієнтована на операційні системи Windows 95, 98, ME й Windows на основі NT (2000, XP), а також має можливість підготовки документів у форматі, прийнятому для глобальної мережі Internet.

Для установки системи MathCAD 2000 PRO RUS потрібний ПК класу Pentium і вище з об'ємом ОП не менше 16 Мб.

Т.е., повноцінне використання MathCAD 2000 PRO RUS можливо тільки на сучасних 32-розрядних ПК, оснащених новими засобами мультимедіа.

Перед інсталяцією можна познайомитися з інструкцією, наведеної у файлі readme. Запустити файл інсталяції setup.exe.


Робота з калькулятором.

Для того, щоб почати роботу з калькулятором необхідно на панелі меню «Математика» вибрати піктограму калькулятора, після чого з'явиться панель арифметичних інструментів.

Можна обійтися й без даної панелі, якщо знати деякі комбінації клавіш для уведення операторів.

! Факторіал

' Пари лапок

( Ліва дужка

) Права дужка

* Множення

+ Додавання

, Передує другому числу при завданні діапазону

; Передує останньому числу при завданні діапазону

- Заперечення або вирахування

/ Ділення

[ Нижній індекс

\ Квадратний корінь

Показник ступеня

| Абсолютне значення


Принципи роботи з формулами в MathCAD подібні до принципів роботи редактори формул в Microsoft Word, але, існує виключення. Після того, як ваша формула була набрана й після її поставлений знак рівності, система MathCAD відразу ж обчислює вираження.

Наприклад:



Якщо деяке число зустрічається кілька разів, наприклад 231,1234458.

Доцільно оголосити змінну:



Т.е., щоб оголосити змінну, потрібно:

а) визначити символ або групу символів, які будуть ім'ям змінної;

б) поставити знак := (як в Pascal привласнити);

в) увести значення змінної.


Обчислити вираження при заданих дискретних значеннях змінних.

a:=0.8 b:=-3.2 c:=1.35


x:=2, 2.1..4


-5.6 45

-5. 785

-5. 928

-6. 072

-6. 219



Уведено поняття интервальной змінної у форматі:

var:=початкове значення, [початкове значення+крок] .. кінцеве значення

у дужках зазначений необов'язковий параметр, за замовчуванням крок дорівнює 1.

Двокрапка ".." уводиться клавішею крапка з коми ";" або кнопкою арифметичної палітри

РІШЕННЯ РІВНЯННЯ З ОДНІЄЇ НЕВІДОМОЇ


Будь-яке таке рівняння виглядає в такий спосіб

f(x) = g(x)

Його можна перетворити так, щоб вийшла рівність із нулем у правій частині

f(x) - g(x) = 0


root(f(x),x) - вирішує рівняння з однієї невідомої.

Повертає значення x, при якому f дорівнює нулю.


polyroots(v) - знаходить корінь полінома, коефіцієнти якого втримуються у векторі v.

Повертає вектор, що містить всіх корінь багаточлена, коефіцієнти якого задаються вектором v.


Аргументи:

Для функції root:

Використання функції root вимагає попереднього завдання початкового наближення. Якщо досліджувана функція має багато корінь, то знайдений корінь буде залежати від початкового наближення.

Якщо початкове наближення розташоване близько до локального экстремуму функції f, функція root може не знайти кореня, або знайдений корінь буде далеко від початкового наближення.

Для функції polyroots:

f є скалярна функція від довільного числа аргументів.

x є скалярна змінна, щодо якої вирішується рівняння f=0 (інші змінні в f уважаються фіксованими).

v є вектор, що містить коефіцієнти полінома, розташовані в порядку зростання ступенів.


Приклад використання функції root(f(x),x):

Нехай нам дане наступне рівняння


cos(x) = x+2

Щоб вирішити його в Mathcad, напишіть:

x := 1 - початкове наближення до кореня

root(cos(x) - x - 2, x) = -2,988


Приклад використання функції polyroots(v):

Нехай нам дане наступне рівняння


3x3 - 2x2 - x=0

Щоб вирішити його в Mathcad, напишіть:

а) x := 1 - початкове наближення до кореня;

б) саме рівняння 3x3 - 2x2 - x=0;

в) далі залишаючи курсор на рівнянні (рівняння повинне бути активним) на панелі меню Символи\Коефіцієнти полінома знаходимо V – вектор з коефіцієнтами полінома. Потім знаходимо polyroots(v) (тобто знаходимо корінь даного рівняння)



РІШЕННЯ СИСТЕМИ НЕЛІНІЙНИХ РІВНЯНЬ


Find(x,y,...) - повертає точне рішення системи рівнянь і нерівностей.

Повертає значення x, y... , що задовольняють обмеженням рівностям і нерівностям, які визначені в блоці рішення рівнянь. Число рівнянь повинне рівнятися числу невідомих.

Аргументи:

x, y,... є скалярні змінні, значення яких шукаються в блоці рішення рівнянь.

Коли блок рішення рівнянь шукає одна невідому, функція Find повертає скаляр. В іншому випадку вона повертає вектор, першим елементом якого є шукане значення x, другим елементом y , і т.д.

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

Приклад:

Рішення системи двох нелінійних рівнянь із двома невідомими.



Де Given - службове слово (у пров. з англ. «дано», і воно є обов'язковим).


НАБЛИЖЕНЕ РІШЕННЯ СИСТЕМИ НЕЛІНІЙНИХ РІВНЯНЬ

Minerr(x,y,...) - повертає рішення, минимизирующее нев'язання системи рівнянь і нерівностей.

Повертає значення x, y... , минимизирующие нев'язання вектора обмежень у блоці рішення рівнянь.

Аргументи:

x, y,... є скалярні змінні, значення яких шукаються в блоці рішення рівнянь.

Коли блок рішення рівнянь шукає одна невідому, функція Minerr повертає скаляр. В іншому випадку вона повертає вектор, першим елементом якого є шукане значення x, другим елементом y , і т.д.

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

Приклад:

Наближене рішення системи нелінійних рівнянь. Повертається те рішення, що мінімізує нев'язання вектора обмежень.




Пошук кореня нелінійного рівняння

Багато рівнянь, наприклад трансцендентні, і системи з них не мають аналітичних рішень. Однак вони можуть вирішуватися чисельними методами із заданою погрішністю, не більше значення, заданого системної змінної TOL. Для найпростіших рівнянь виду F( x) =0 рішення перебуває за допомогою функції:

root (Вираження, Ім'я_змінної)

Ця функція повертає із заданою точністю значення змінної, при якому вираження дорівнює 0. Функція реалізує обчислення ітераційним методом, причому перед її застосуванням треба задати початкове значення змінної. Це особливо корисно, якщо можливо кілька рішень. Тоді вибір рішення визначається вибором початкового значення змінної.

Як відомо, кубічне рівняння обов'язково має хоча б один дійсний корінь! Він знайдений спочатку функцією root. Два інших корені .можуть виявитися як дійсними, так і комплексними. Функція root може відшукувати будь-які коріння. Для пошуку другого кореня х2 перший виключається діленням F(x) на (х-х1).

Відповідно для пошуку третього кореня хз потрібно повторити процедуру ділення, при цьому F(X) ділиться на (х-х2), Цю процедуру можна поширити й на пошук корінь поліномів більше високого ступеня, однак треба пам'ятати, що знайти коріння полінома можна набагато більше витонченим і простим способом - використовуючи операцію символьних обчислень.

Представлену форму запису функції root підтримує як Mathcad 8, так й Mathcad 2000. Однак в останній системі можливості цієї функції pacширены й вона може записуватися у вигляді:

root(Вираження, Ім'я_змінної, а, b)

Тут а й b - межі інтервалу ізоляції кореня. Таке застосування функцій дозволяє уникнути висновку корінь, що не представляють інтересу при рішенні задач - наприклад фізичних. При такому використанні функції немає необхідності задавати початкове значення х, оскільки ця змінна визначена в інтервалі [а, Ь].

Приклад: root(x2 - 9, х, 0, 5) = 3.

Пошук всіх корінь багаточлена

Для пошуку корінь звичайного полінома р(х) ступеня n Mathcad підтримує дуже зручну функцію polyroots(V). Вона повертає вектор всіх корінь багаточлена (полінома) ступеня n, коефіцієнти якого перебувають у векторі V, що має довжину n+1.

Корінь полінома можуть бути як речовинними, так і комплексними числами. Не рекомендується користуватися цією функцією, якщо ступінь полінома вище п'ят-шостий, тому що тоді важко одержати малу погрішність обчислення корінь.

Функція root у складі функції користувача

Функцію root можна використати й у складі функції користувача, що нерідко дозволяє одержувати досить прості рішення для нетривіальних задач

Недоліком функції root є неможливість рішення з її допомогою систем нелінійних рівнянь. Ця функція призначена для рішення одиночних урав нений.

Підготовка блоку рішення системи рівнянь


При рішенні систем нелінійних рівнянь використається спеціальний обчислювальний блок, що відкриває службовим словом — директивою Given — і имеющий наступну структуру:

Початкові умови

Given

Рівняння

Обмежувальні умови

Вираження з функціями Find, Minerr, Maximize й Minimize


Початкові умови визначають початкові значення шуканих змінних і задаються у вигляді

var: =valuе, тобто звичайним присвоюванням змінним заданих значень. Якщо змінних трохи, то використається векторне подання для початкових умов. Рівняння задаються у вигляді expr_left = ехрr_right із застосуванням жирного знака рівності = між лівою й правою частинами кожного рівняння.

Обмежувальні умови звичайно задаються у вигляді нерівностей або рівностей, які повинні задовольнятися при рішенні системи рівнянь.


Рекомендується доповнити блок перевіркою рішення системи. У колишніх версіях Mathcad число рівнянь обмежувалося 50, а число обмежувальних умов повинне було точно відповідати числу рівнянь. В Mathcad 2000 PRO це обмеження зняте, а максимальне число рівнянь у системі доведене до 200. Але, мабуть, самим далеко, що йде вдосконаленням, стала можливість рішення систем нелінійних рівнянь при завданні не тільки початкових умов, але

і рівнянь й обмежувальних умов у векторній формі. При цьому рішення може шукатися й у символьній формі (якщо воно, природно, існує).

Функції для рішення систем нелінійних рівнянь

У блоці використається одна з наступних двох функцій:

Find(v1, v2 vn) — повертає значення однієї або ряду переменніх для точного рішення;

Minerr(v1, v2; ..., vn) -повертає значення однієї або ряду змінних для наближеного рішення.

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

Уведення обмежень при рішенні систем нелінійних рівнянь

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

Оператор

Клавіші

Значення оператора


е1 > е2

е1 < е2

е1 > е2

е1 < е2

е1 ? е2

е1 = е2

el >e2

el
el Ctrl ) e2

el Ctrl ( е2

el Ctrl# e2

el Ctrl= e2

e1 більше е2 e1 менше е2

e1 більше або дорівнює e2

e1 менше або дорівнює е2

е1 не дорівнює е2

е1 дорівнює е2



Приклади рішення нелінійних рівнянь

Функції Find й Minerr можуть використатися для рішення одного або ряду рівнянь.

При використанні функції Minerr для рішення систем нелінійних у равней треба проявляти відому обережність й обов'язково передбачати перевірку рішень. Нерідкі випадки, коли рішення можуть виявитися помилковими, частіше через те, що з декількох корінь система пропонує нереальний (або не представляє інтересу) корінь. Корисно як можна точніше вказувати початкові наближення до рішення.


Для пошуку значень змінних х1, х2…,при яких деяка функція f(x1, x2…xn) має максимальне або мінімальне значення, використається функції: , Maximize(f, x1, x2,…xn) і Minimize(f,x1,x2...xn).

Обидві ці функції реалізовані досить універсальними алгоритмами оптимізації, які не вимагають обчислення похідні функції f(x1, x2...xn), що не тільки спрощує запис алгоритмів, але й дозволяє вирішувати задачі, у яких обчислення похідних неможливо.

Ці функції використаються в складі блоку рішення, що відкриває директивою , і повертають вектор невідомих, при якому задана функція має максимальне або мінімальне значення. У нутрії блоку можуть бути обмежувальні умови у вигляді рівностей або нерівностей. Перед блоком треба задати початкові наближення.


X:=0 y:=0




Given







Пошук мінімуму в околиці крапки x:=-2 y:=0.5 з обмеженнями

Given

x>=0 y>=0 y<=9-=x










Знайти максимум в околиці x:=4 y:=5 з обмеженнями x>=0 y>=0 y<=9-=x

Відповідь (9,0)


ФУНКЦІЇ ДЛЯ РОБОТИ З РІВНЯННЯМИ, СИСТЕМАМИ РІВНЯНЬ.


root(f(x),x)

вирішує рівняння з однієї невідомої.

Повертає значення x, при якому f дорівнює нулю.

polyroots(v)

знаходить корінь полінома, коефіцієнти якого втримуються у векторі v

Find(x,y,...)

повертає точне рішення системи рівнянь і нерівностей.

Minerr(x,y,...)

повертає рішення, минимизирующее нев'язання системи рівнянь і нерівностей.

Given

службове слово (у пров. з англ. «дано», використається для оголошення системи рівнянь

Maximize(f, x1, x2,…xn)

Пошук значень змінних х1, х2…,при яких деяка функція f(x1, x2…xn) має максимальне значення

Minimize(f,x1,x2...xn).


Пошук значень змінних х1, х2…,при яких деяка функція f(x1, x2…xn) має мінімальне значення

Реалізація ітераційних обчислень

Рекуррентное обчислення чисел Фибоначчи

Система Mathcad дозволяє реалізувати обчислення, здійснювані по рекуррентным співвідношеннях. Це такі співвідношення, при яких значення деякої функції перебуває по одному або декількох попередніх її значеннях. Класичним прикладом рекуррентных обчислень є розрахунок чисел Фибоначчи. Як відомо, два перших числа Фибоначчи визначені як 1, а наступні є сума двох попередніх.

Знайдемо перші 10 чисел Фибоначчи: