- •Етапи підготовки і рішення задач на еом
- •Програма, що не має помилок часу трансляції і виконання, може і не дати вірних результатів через так звані логічні помилки в обраному алгоритмі, тобто алгоритмічних помилок.
- •Запис алгоритмів у виді блок – схем
- •Мови програмування
- •1. Основні поняття алгоритмічної мови Бейсік.
- •3. Сталі та змінні.
- •4. Функції. Вирази.Оператор присвоєння
- •Вправи та запитання
- •5. Надання значень змінним
- •Оператор read.
- •6. Виведення результатів
- •Оператор Результат
- •Оператор Результат
- •7.Лінійні програми
- •Розгалуження
- •1.Логічний вираз
- •3. Команда розгалуження if. Повна форма умовної команди.
- •10.Цикли
- •11.Оператори циклу
- •12. Обчислення суми, добутку
- •13. Ітераційні цикли
- •14. Вкладені цикли
- •Мал.12 Схеми вкладених циклів.
- •15. Використання масивів
- •Вправи та запитання
- •16. Нестандартні функції та підпрограми
- •17. Робота з текстовими даними
- •18. Оператори роботи з графічною інформацією.
- •19. Робота з файлами даних
- •20 Основи роботи в пакеті MathCad
- •Визначення основних понять та позначень, безпосередньо зв'язаних з процесом обчислень у середовиіщі пакету Вхідний алфавіт
- •Типи констант і змінних
- •Розмірність, одиниці вимірів та одиниці маштабування
- •Базові обчислювальні конструкції пакета
- •Реалізація ітеративних обчислень.
- •Функції керування обчисленнями
- •Побудова декартових графіків
- •Методи доступу і роботи з файлами даних
- •Вбудовані функції та функції користувача
- •Розділ 21Алгоритми та програми реалізації загальних чисельних методів.
- •21.1. Розв’язання систем лінійних рівнянь.
- •21.2 Інтерполяція та екстраполяція.
- •21.3. Розв’язання нелінійних та трансцендентних рівнянь.
- •21.4 Розв’язування систем нелінійних рівнянь.
- •Програма 14
- •21.5. Пошук екстремумів функцій одної та багатьох змінних.
- •Програма 15
- •Програма 16
- •Програма 17
Вбудовані функції та функції користувача
Для підвищення ефективності організації обчислювальних алгоритмів і роботи з даними пакет має великий набір вбудованих функцій, що охоплюють різні розділи сучасної математики. Вбудовану функцію (за певним виключенням функцій доступу до даних) подібно змінній можна використати в будь-якому виразі документа або в якості аргумента інших функцій.
Разом з вбудованими функціями пакет допускає функції користувача, застосування яких повністю ідентичне випадку вбудованих функцій, але з областю дій лише в рамках даного документа.
Перед своїм використанням функція користувача повинна бути визначена локальним або гловальним способом:
<імя функції> (<список аргументів>) {:=|} <вираз>.
При цьому при глобальному визначенні функції користувача усі змінні, що в неї входять (окрім аргументів) повинні бути попередньо визначені як глобальні.
Приклад:
S(a)a2+a-1 — може бути записане у будь-якому місці mcad-програми.
Використовують таку функцію як звичайну вбудовану, наприклад, S(3)=29.
Розглянемо як використати дану функцію для обчислень із ранжованими змінними:
X:=XP, (XP+CR)…XK Y(X):=S(X)
i:=0…m X0:=XP j:=1..m Xj:=X(j-1)+DX
Yi:=S(Xi)
i:=0..m xi:=a1, a2 — вхідні дані у вигляді таблиці
Yi:=S(xi)
Розділ 21Алгоритми та програми реалізації загальних чисельних методів.
21.1. Розв’язання систем лінійних рівнянь.
Системи з n лінійних рівнянь виду
a11x1+a12x2+…+a1nxn=b1 ,
a21x1+a22x2+…+a2nxn=b2 , (1)
. . . . . . . . . . . . . . . . . . . . . . . .
an1x1+an2x2+…+annxn=bn
вирішуються точними та ітераційними методами. Точні методи дають точне розв’язання за кінцеву кількість операцій, якщо всі вони виконувалися без погрішності. Кількість операцій у ітераційних методів залежить від заданої погрішності обчислень.
Метод Гауса або метод послідовного виключення невідомих заснований на приведенні матриці коефіцієнтів aij до трикутного виду. При цьому алгоритм розв’язання системи (1) наступний:
За допомогою двох циклів з керуючими змінними i=1, 2, …, n та j=1, 2, …, n організуємо ввід коефіцієнтів aij та bi, утворюючих масиви A(I, J) та B(I).
Провидимо прямий хід виключення змінних шляхом перетворення коефіцієнтів (1) за формулами
aji= - aji /aii; ajk=ajk+ajiaik; bj=bj+ajibi,
де i=1, 2, …, n-1; j=i+1, i+2, …, n та k=i+1, i+2, …, i+n. В кінці цих перетворень отримуємо xn=bn/ann.
Організуємо зворотній хід (послідовне знаходження xn-1, xn-2, ..., x2, x1), проводячи обчислення за формулами
h=bi, та h=h-xjajj,
де i=n-1, n-2, …, 2, 1; j=i+1, i+2, …, n та xi=h/ali. В результаті формується масив X (J) невідомих xi, xn-1, …, x2, x1.
Організуємо вивід масиву Х(1).
Метод Гауса з вибором головного елементу заключається в тому, що при прямому ході відбувається вибір найбільшого по модулю (головного) елементу та перестановка рядків або стовпців (див. мал.1). Останнє виключає ділення на 0; якщо матриця A (I, J) містить нульові елементи, та збільшує точність обчислень при наявності помилок округлення.
Метод обертання є різновидом методу Гауса, що володіє стійкістю до „провалів” проміжних обчислень. Цей метод забезпечує приведення початкової (вихідної) системи (1) до системи з правою трикутною матрицею.
Програма 1
10 PRINT ‘РОЗВ’ЯЗАННЯ СИСТЕМИ ЛІНІЙНИХ РІВНЯНЬ’
15 PRINT ‘МЕТОДОМ ОБЕРТАННЯ’
20 INPUT ‘ВВЕДІТЬ ЧИСЛО РІВНЯНЬ N=’ N:LETM=0:DIM A(N, N)
25 FOR I=1 TO N:FOR J=1 TO N
30 PRINT !2.0! ‘ВВЕДІТЬ КОЕФІЦІЄНТ A’ I’, ’J
40 INPUT A(I, J):IF J< >N THEN 60
50 PRINT ‘ВВЕДІТЬ B’ I:INPUT A(I, 0)
60 NEXT J:NEXT I
70 FOR I=1 TO N-1:FOR K=I+1 TO N
80 IF A(I ,I)< >0 THEN 110
90 IF A(K ,I)< >0 THEN 110
100 LETM=1:LETL=0:GOTO 130
110 LETM=SQR(A(I, I)^2+A(K, I)^2)
120 LETL= -A(K, I)/M:LETM=A(I, I)/M
130 FOR J=1 TO N:LETR=M*A(I, J)-L*A(K, J)
140 LETA(K, J)=L*A(I, J)+M*A(K, J)
150 LETA(I, J)=R:NEXT J
160 LETR=M*A(I, 0)-L*A(K, 0)
170 LETA(K, 0)=L*A(I, 0)+M*A(K, 0)
180 LETA(I, 0)=R:NEXT K: NEXT I
190 FOR I=N TO 1 STEP -1:LETM=0
200 FOR K=0 TO N-I-1
210 LETM=M+A(0, N-K)*A(I, N-K):NEXT K
220 LETA(0, I)=(A(I, 0)-M)/A(I, I)
230 PRINT !2.0! ’КОРІНЬ X’ I ’=’ !F1.9!A(0, I)
240 NEXT I:END
Метод мінімізації заключається у пошуку мінімуму цільової функції
F(x1, x2, ..., xn)=|f1(x1, x2, ..., xn)|+...+|f2(x1, x2, ..., xn)|,
компоненти якої формуються з рівнянь розв’язуваної системи
f1(x1, x2, ..., xn)=a11x1+a12x2+...+a1nxn-b1,
f2(x1, x2, ..., xn)=a21x1+a22x2+...+a2nxn-b2,
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
fn(x1, x2, ..., xn)=an1x1+an2x2+...+annxn-bn.
Якщо x1, x2, ..., xn – розв’язання (1), то функція F(x1, x2, ..., xn)=0. Для реалізації цього методу можуть використовуватися програми пошуку мінімуму функції рядку змінних.