Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_лаб_ЧМиМнаЭВМ_2.doc
Скачиваний:
2
Добавлен:
30.04.2019
Размер:
1.51 Mб
Скачать

Лабораторна робота № 1

Тема: Втрата точності при обчислюванні значень в двійковій системі обчислення

Мета роботи: Визначити точність розрахунків при моделюванні на ЕОМ

1. Теоретичні відомості

    1. Про наближені обчислення

Реальне проведення будь-яких обчислень проводиться над числами, які задаються, не тільки точно, але й приблизно. Наприклад, запис 7/3 позначає число, але записати його у вигляді десяткового дробу можна тільки приблизно. Якщо ж обчислення проводяться на комп'ютері, то приблизно записувати доводиться не тільки числа типу 7/3, але багато інших. У результаті виникають помилки, які поступово накопичуються й спотворюють результат.

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

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

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

1.2. Лінійні заміни змінних

Розглянемо систему рівностей

.

Тут , - числа, а - змінні; завдяки цим рівностям змінні лінійно виражаються через змінні . Це і є лінійна заміна змінних.

Зашифруємо її у вигляді наступної таблиці:

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

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

(1.2.1)

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

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

Неважко встановити формули, що виражають елементи другої таблиці через елементи першої таблиці:

(1.2.2)

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

Процедуру обчислень по формулах (1.2.2) прийнято описувати в такий спосіб «по кроках»:

Крок 1: у вихідній таблиці заміняємо розв'язний елемент на 1;

Крок 2: у всіх інших елементів розв'язного рядка заміняємо знак;

Крок 3: всі інші елементи розв'язного стовпця залишаємо незмінними;

Крок 4: кожний елемент , що перебуває поза розв'язних рядку й стовпцю, заміняємо на ;

Крок 5: всі елементи без винятку ділимо на .