Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

MathCAD. Лабораторний практикум. 2010

.pdf
Скачиваний:
63
Добавлен:
29.02.2016
Размер:
11.67 Mб
Скачать

Рис. 2.27.3. Закінченнялістингу виконання зразка ЛР з MathCAD №3: застосування оператора for для табулювання функції та побудування графіка функції, заданої в табличному вигляді

60

31.Оформіть звіт про виконання лабораторної роботи за наступними пунктами: Назва роботи, Тема роботи, Варіант, Група, Прізвище; Умова варіанту, Схема алгоритму, Результати розрахунків; Висновки: перелік засвоєних елементів

вхідної мови MathCAD.

32.Захистіть роботу у викладача, давши відповіді на контрольні запитання.

Контрольні запитання

1.Який алгоритм називається циклічним?

2.Для чого призначені цикли?

3.Який цикл називається арифметичним, і чим він відрізняється від інших?

4.Що таке дискретна змінна й для чого вона використовується?

5.Для чого призначений оператор діапазону і яким символом він позначається?

6.Як установлюється крок зміни дискретної змінної?

7.Як побудувати графік функції?

8.У чому головна особливість швидкого графіка функції?

9.Що необхідно зробити перед побудування графіка функції у визначеному діапазоні?

10.Назвіть 9 основних елементів області графіка.

11.Що таке форматування графіка функції?

12.Як на графіку показати лінії сітки?

13.Що треба зробити, щоб функція на графіку зображувалась не тільки у вигляді кривої лінії, але й булі показані точки, у яких вона розраховувалася?

14.Запишіть формат оператора арифметичного циклу for.

15.Як водиться оператор for у тіло ПФ?

16.Скільки операндів має оператор for, і що в них розміщується?

17.Поясніть механізм роботи оператора for.

61

Лабораторна робота №4. Програмування в Mathcad. Оператор while.

Виконання завдання "Ітераційний цикл"

Мета:

набути навиків перекладу ітераційного алгоритму розв'язання задачі з мови блок-схем на вхідну мову MathCAD;

вивчити правила використання оператора ітераційного циклу while при програмуванні в тілі програм-функцій;

навчитися розраховувати похибки отриманих результатів;

виконати індивідуальне завдання "Ітераційний цикл".

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

Оператор ітераційного циклу while

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

,

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

Дія оператора:

1)обчислюється значення логічного виразу:

a)якщо воно дорівнює 1 ("істина"), то виконується тіло циклу, у якому повинний бути оператор, що впливає на значення операндів логічного виразу, і здійснюється перехід до пункту 1;

b)у протилежному випадку, коли значення логічного виразу дорівнює 0 ("неправда"), цикл завершується, і здійснюється перехід до пункту 2;

2)здійснюється вихід із програми-функції.

Зауваження: якщо ПФ складена неправильно й зациклилася (цикл виконується нескінченно), то її можна зупинити, натиснувши клавішу Esc .

Для введення оператора while у тіло ПФ необхідно натиснути кнопку

While Loop (Цикл Доки) на панелі засобів програмування або комбінацію клавіш Ctrl + ] . У робочому листку з'явиться шаблон із двома полями для введення його операндів:

.

У верхнє поле вводимо логічний вираз - умову виконання циклу. У нижнє поле вводимо оператор, який повинен виконуватися в циклі, або натискаємо кнопку Add Line для введення послідовності операторів.

62

Індивідуальні завдання для виконання лабораторної роботи

Умову індивідуального завдання "Ітераційний цикл" візьміть із навчального посібника Visual Basic 6.0 відповідно до власного варіанта, який такий самий як у 1 семестрі, тобто дорівнює номеру студента в списку групи за 1 семестр [1, стор. 121-123].

Зразок виконання лабораторної роботи

Умова. Обчислити наближене значення суми спадного ряду

 

 

 

 

ln i 5

(c d)

 

 

s(t) si t

 

 

 

e

 

t

 

i

3

 

 

 

 

i 1

i 1

 

2

 

 

 

з точністю = 10-5 та = 10-7 для значень параметру t1

t

tn із кроком t, де

c = 1.9; d = 3,2; t1 = 1,5;

tn = 3,5;

t = 0,5.

 

 

 

 

 

Суму спадного ряду s(t) потрібно обчислювати поки поточна відносна

 

si t

 

похибка розрахунку ε

перевищує . Необхідно передбачити при i > imax

s

i

 

 

 

 

 

 

 

 

 

переривання обчислень

на

той

випадок,

коли

виконання

умови εi < не

відбувається при imax підсумованих членах ряду, де imax - максимально припустима кількість ітерацій (обмежувач числа підсумованих членів ряду; підбирається експериментально; спочатку imax = 10000). Точність розрахунків буде досягнута, як тільки величина i стане менше ніж .

Знайтиістиннупохибкурозрахункудляодногозначенняпараметраt=t1заформулою:

ε

 

1 st

1

,10 5

 

true

 

 

st

 

,10

7

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

й зробити висновок щодо точності розрахунків.

Порядок виконання роботи

1.Складіть ітераційний циклічний алгоритм обчислення суми спадного ряду, та накресліть його блок-схему.

2.Перекладіть алгоритм із мови блок-схем на вхідну мову MathCAD.

3.Відкрийте документ MathCAD LR01_Прізвище.xmcd і запишіть його на жорсткий диск у папку D:\Мои документы\Викладач\Група\ під іменем

LR04_Прізвище.xmcd.

4.Відредагуйте першу текстову область: а) змініть номер лабораторної роботи з №1 на №4; б) замініть речення "Лінійний алгоритм" на "Ітераційний цикл". Іншу частину робочого листка можна очистити.

5.У розділі "Початкові дані" задайте значення вхідних параметрів:

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

(Крапка); p - параметр, що покращує точність розрахунку; спочатку p = 1, а потім

63

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

6. У наступному рядку опишіть однорядкову функцію користувача s.i(i, t) для розрахунку i-го доданка суми, та визначте дискретну змінну i, необхідну для побудування графіка залежності величини доданка від i:

,

звідки треба зробити висновок про збіжність спадного ряду.

7. У наступному розділі робочого листка введіть опис ПФ Sum(t, ε, imax) для розрахунку суми спадного ряду. Розглянемо призначення операторів, що введені в тіло даної ПФ. У наведеному нижче списку номер пункту списку відповідає номеру рядка в ПФ.

1) у перше поле ПФ уведіть пусту матрицю-рядок комбінацією клавіш Ctrl + M (Rows: 1; Columns: 3), та занесіть у поля введення імена змінних s, i, ε.i; натисніть клавішу Spacebar , щоб виділити усю матрицю; введіть локальний оператор присвоювання ; знову введіть пусту матрицю 1 3 і заповніть її поля значеннями 0, 0, 1; таким чином компактно робиться ініціалізація початковими значеннями одразу декількох змінних;

64

2) у другий рядок уведіть оператор ітераційного циклу while; у його

правий операнд запишіть логічний вираз ε ε,

який забезпечує обчислення

.i

p

 

 

 

суми із заданою точністю; далі виділіть увесь

вираз клавішею

Spacebar

;

уведіть логічну операцію (і); уведіть другий логічний вираз i imax, який обмежує допустиму кількість ітерацій і, таким чином, захищає ПФ від зациклювання; оскільки початкове значення кількості ітерацій i = 0 та початкове значення поточної відносної похибки розрахунків ε.i = 1, тому умова циклу істинна:

,

й цикл, хоча б один раз, виконається; буде знайдена реальна величина ε.i, і почнеться сумування спадного ряду;

3)у нижнє поле оператора while двічі введіть оператор Add Line , щоб створити блок із трьох полів:

a)у перше поле введіть лічильник кількості ітерацій i ← i + 1 ;

b)у друге поле введіть суматор s ← s + s.i(i, t) ;

c)у трете поле введіть оператордля визначення поточної відносної похибки розрахунків, як модуля відношення абсолютної похибки розрахунків (величини поточногододанкасумиs.i(i, t)) дозначеннясумиs;

4)в останнє поле ПФ уведіть об'єкт < результат > - пусту матрицюстовпець із трьох рядків, і заповніть її іменами змінних s, ε.i, i, у яких зберігалися результати розрахунку; внаслідок цього ім'я ПФ Sum(t, ε, i.max) стане вектором-стовпцем, і для виведення окремих його елементів при виклику

даної ПФ необхідно буде вказувати нижній індекс за допомогою кнопки

(Нижній індекс), або клавіші [ .

8.Виведіть результати розрахунків для кожної точності розрахунку = 10-5 та = 10-7 (рис. 2.28.2 та 2.28.3); поруч з цими результатами розмістіть зображення форм з результатами виконання даного завдання у системі програмування Visual Basic, щоб можна було порівняти обидва розв'язки.

9.Якщо буде досягнуто обмеження кількості ітерацій, то в розділі початкових даних збільшуйте максимально припустиму кількість ітерацій i.max в 10 разів, доки не буде отримана необхідна точність розрахунків.

10.У наступному розділі робочого листка розрахуйте істинну відносну похибку результатів обчислень εtrue (рис. 2.28.4). Для спадного ряду значення суми, знайдене при більшій точності розрахунків (при меншому значенні ε), повинно містити більше вірних цифр. Тому істинну абсолютну похибку розрахунків

ΔS1true можна знайти як різницю між більш точним значенням суми (його ми назвали істинним - true) та менш точним значенням суми (його ми назвали наближеним - approximated). Тоді істинна відносна похибка розрахунків εtrue, тобто істинна точність розрахунків, буде дорівнювати відношенню істинної абсолютної похибки розрахунків до істинного значення суми.

65

Назвемо результати виконання операторів у цьому розділі:

(1)S1appr - наближене значення суми спадного ряду для t1 та ε = 10-5 у науковому форматі з точністю 7 значущих цифр після десяткової крапки (approximated - приблизно виражений); із цілою частиною - це 8 значущих цифр; серед них буде стільки вірних цифр, скільки одиниць складає величини показника степеня ε;

(2)S1true - більш точне значення суми спадного ряду для t1 та ε = 10-7 у науковому форматі з точністю 7 значущих цифр після десяткової крапки (true - істинний);

(3)ΔS1true - абсолютна похибка метода розрахунку з точністю один знак після десяткової крапки;

(4)εtrue - відносна похибка метода розрахунку з точністю один знак після десяткової крапки;

(5)S1appr - визначення наближеного значення суми спадного ряду для t1 та ε = 10-5 шляхом округлення результату (1) до п'яти вірних цифр і однієї

сумнівної, що встановлено із порівняння результатів (1) та (2);

(6)ΔS1true - сумарна абсолютна похибка метода розрахунку й округлення з точністю один знак після десяткової крапки, яка враховує не тільки те, з якою точністю знайдене наближене значення суми, але й те, що це значення у рядку (5) було округлене;

(7)εtrue - сумарна відносна похибка метода розрахунку й округлення з точністю один знак після десяткової крапки;

(8)S1(t1, 10-5) - запис наближеного значення суми спадного ряду для t1 та

ε= 10-5 із абсолютною похибкою;

(9)S1(t1, 10-5) - приведення запису наближеного значення суми спадного ряду для t1 та ε = 10-5 із абсолютною похибкою до загального порядкового множника, та зазначення істинної відносної похибки результату;

(10)Перевірка правильності запису результату в рядку (9).

11.Лістинг виконання зразкаЛРз MathCAD №4 наведений нарис. 2.28.1- 2.28.4.

Рис. 2.28.1. Лістинг виконання зразка ЛР з MathCAD №4: початкові об'єкти

66

Рис. 2.28.2. Продовження лістингу виконання зразка ЛР з MathCAD №4: наближений розрахунок суми спадного ряду при ε = 10-5

67

Рис. 2.28.3. Продовження лістингу виконання зразка ЛР з MathCAD №4: більш точний розрахунок суми спадного ряду при ε = 10-7

68

Рис. 2.28.4. Закінченнялістингу виконання зразка ЛР з MathCAD №4: розрахунок істинної похибки результатів обчислень

12. Оформіть звіт про виконання лабораторної роботи за наступними пунктами: Назва роботи, Тема роботи, Варіант, Група, Прізвище; Умова варіанту, Схема алгоритму, Результати розрахунків; Висновки: перелік засвоєних

елементів вхідної мови MathCAD.

13. Захистіть роботу у викладача, давши відповіді на контрольні запитання.

Контрольні запитання

1.Який алгоритм називається ітераційним?

2.Як визначається кількість ітерацій у циклі?

3.Запишіть формат оператора while.

4.Поясніть дію оператора while.

5.Як уводиться оператор while у ПФ?

6.Скільки та яких операндів має оператор while?

7.Що і як треба зробити щоб цикл while почав виконуватися?

8.Напишіть формулу відносної похибки розрахунку суми спадного ряду.

69

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