Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MetMap_1.doc
Скачиваний:
14
Добавлен:
19.04.2015
Размер:
573.95 Кб
Скачать

Робота з файлами

Часто необхідно використати результати обчислень в інших програмах, для результату на друк, аналізу і т. ін. Тому зручно записувати всі важливі обчислення в текстовий файл, особливо якщо вони дуже громіздкі і великі. Операції з файлами ідентичні таким самим діям на мові Turbo Pascal.

Передусім, обов'язково першим рядком викликати команду restart для скидання пам'яті, що використовується даною програмою. Правила написання імен файлів стандартні 8+3, але в командах вимагається використання спеціальних лапок ``, що розташовані над клавішею «Tab». Для запису даних у файл вимагається завантажити бібліотеку write( readlib(write) ).

Оператори для роботи з файлами:

open (`ім’я файла`) - створює новий файл або відкриває вже існуючий.

write (вир), writeln (вир) - записує вираз або їхній набір у відкритий файл.

close (`ім’я файла`) - закриває відкритий файл для запису. Цю команду потрібно обов'язково записувати після всіх маніпуляцій з файлами, щоб не було втрати даних.

Приклад

> restart;

# Завантаження бібліотеки write.

> readlib(write);

# Відкриття файлу

> open(`dat.dat`);

# Ініціалізація змінних.

> b:=2;

> c:=3;

# Створення пустої множини

> a:=[ ];

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

> for i from (-0.7) by 0.05 while i<0 do

>x:=с*i+b^i;

# Функція op(a) видає усі члени цієї множини

> a:=[op(a),[x]];

> writeln(x);

# Саме тут записуються дані у файл.

> od;

# Закриття файлу.

> close(`dat.dat`);

5 Обчислення Границі

Для обчислень границь застосовується функція limit (f, x= a, dir). Вона генерує значення границі функції f (x) при x, яке прагне до а. Якщо x прагне донескінченності, то використовуються відповідно параметри x= infinity і x=-infinity. Якщо границя не існує, то видається повідомлення «undefined».

Параметр dir може мати такі значення:

  • left, якщо обчислюється границя ліворуч;

  • right, якщо обчислюється границя праворуч;

  • realпри пошуку значень серед дійсних чисел;

  • complexсеред комплексних чисел.

Приклад

> Limit (sin (x)/x, x=0);

> limit (sin (x)/x, x=0);

1

> Limit (exp (x), x=infinity);

> limit (exp (x), x=infinity);

infinity

> Limit (exp (x), x=-infinity);

> limit (exp (x), x=-infinity);

0

Функція f (x) може залежати від декількох змінних. Для зазначення точок, до яких прямують аргументи, потрібно використати запис {x1=a1, x2=a2,..., xn=an}.

Приклад

> limit ((x^2-y^2)/(x^2+y^2), {x=0, y=0});

undefined

> limit (x+1/y, {x=0, y=infinity});

0

Диференціальні обчислення

Диференціальний оператор D (f)обчислює похідну від даної функції f, причому f не може бути подана у вигляді суперпозиції декількох функцій. Якщо функція залежить від n аргументів, то виклик D [i] (f) генерує часткову похідну за i-ю змінною.

Приклад

> D (sin);

cos

> D (exp+ln+Pi+tan);

> D (f);

D (f)

> f:=(x, y)-> exp (xy);

f:=(x, y)-> exp (x y)

> D [1] (f);

(x, y)-> y exp (x y)

Необхідно зазначити, що використання цього оператора не дуже зручне.

Значно кращі можливості має оператор diff (a, x1, x2,..., xn). Він диференціює вираз а за змінними x1, x2,..., xn. Якщо робиться диференціювання заякоюсьзмінною n раз, то використовується запис diff (a, x1$n,..., xn).

Приклад

>Diff (sin (x), x);

>diff (sin (x), x);

cos (x)

>Diff (sin (x), y);

>diff (sin (x), y);

0

>diff (sin (x), x$3);

>diff (sin (x), x$3);

-cos (x)

> Diff (1/(x+2), x);

> diff (1/(x+2), x);

# Обчислення диференціалу в точці.

> f: =diff (x^2, x);

f: =2x

> x: =2;

x: =2

> evalf (f);

4

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]