Вступ
Значна кількість задач машинобудування пов’язана із розв’язанням складних математичних задач, які вимагають виконання складних розрахунків та застосування чисельних методів. Для ефективного розв’язання таких задач доцільне застосування існуючих програмних середовищ, таких як Mathcad та MathLab.
Mathcad є розробкою компанії MathSoft Inc і представляє легку для засвоєння систему математичних розрахунків, причому, всі обчислення записуються у традиційній математичній нотації.
Система MATLAB розроблена фірмою MathWorks і представляє собою інтерактивне середовище для обчислень та моделювання. Сильна сторона системи – робота з матрицями і векторами. Система має величезний набір вбудованих функцій, а також є можливість створювати призначені для користувача функції. У системі дуже якісно реалізована побудова двох і тривимірних зображень. Крім того, є бібліотека, яка забезпечує зручне управління виконанням програм, а також доповненнями, - наприклад мова Simulink моделювання нелінійних динамічних систем.
Методичні вказівки присвячені основам роботи в зазначених програмних середовищах та спрямовані на покращення засвоєння теоретичного матеріалу і здобуття студентами практичних навичок.
Визначення 4. Цифри наближеного числа а називаються вірними у сенсі , якщо абсолютна похибка не перевищує одиниць розряду останньої вірної цифри: . При цифри називаються вірними у широкому сенсі, при – у вузькому сенсі. , .
Правило виконання операцій з наближеними числами.
1) виділяють число з найкоротшим десятковим записом;
2) інші числа округляють, лишаючи один або два знаки відносно довжини найкоротшого числа;
3) виконують арифметичну операцію із збереженням всіх цифр;
4) отриманий результат округляють до найкоротшого числа.
Похибки арифметичних операцій:
Арифметична операція | Функція | Похибка |
сума, різниця | ||
добуток | ||
частка | ||
степінь | . | |
корінь | , |
Обернена задача: визначити припустиму похибку аргументів, так, що б похибка функції не перевищувала заданого числа . Для цього накладається вимога, що внесок кожного доданку є однаковим: – принцип рівного впливу. Тоді:або ,
Тема 3 Дії з матрицями
Типова задача.
Задача 3.1. Задана система лінійних рівнянь:
1. сформувати матрицю системи та вектор-стовпчик правої частини;
2. визначити розмірність матриці та останній елемент вектора правої частини;
3. знайти най менший та найбільший елементи вектора правої частини;
4. обчислити ранг та визначник матриці;
5. знайти транспоновану та обернену матриці;
6. обчислити норму матриці та оцінити число обумовленості;
7. розв’язати систему: матричним рівнянням, методом Крамера, Гаусса, lu-розкладу.
Розв’язок. Mathcad.
формування матриці А та вектора-стовпчика правої частини b.
2. так як матриця квадратна, то визначимо розмірність як довжину
першого вектора-стовпчика;
номер останнього елементу вектора-стовпчика;
значення останнього елементу вектора-стовпчика.
3. значення найменшого елементу вектора b;
значення найбільшого елементу вектора b
4. ранг матриці А;
значення визначника.
5. транспонування; обчислення оберненої матриці
т
6. Обчислення норм та числа обумовленості:
Розв’язок матричним рівнянням:,
Розв’язок методом Крамера
Розв’язок методом Гаусса: , .
Розв’язок методом lu-розкладу:
Тема 4 Апроксимація функції, що задана таблично
Mathcad.
- bspline(vx, vy, u, n) – повертає вектор коефіцієнтів B-сплайна степені заданого точками при заданих вузлових значеннях .
- cspline(vx, vy) – повертає вектор коефіцієнтів кубічного сплайна із кубічними кінцевими точками, заданого вузлами .
- pspline(vx, vy) – повертає вектор коефіцієнтів кубічного сплайна із параболічними кінцевими точками, заданого вузлами .
MATLAB.
- csape(x, y) – повертає форму кубічного сплайна, заданого вузлами .
- spline(vx.vy) – повертає форму кубічного сплайна, заданого вузлами .
- ppval(pp,xx) – обчислення значень в точках .
Типова задача.
Задача 4.1. В результаті експериментальних вимірювань отримані наступні значення:
-1 | ||||||||
4,1 | 4,7 | 5,9 | 2,4 | 3,6 | 5,2 | 4,3 |
Оцінити та побудувати функцію найкращого середньоквадратичного наближення.
Розв’язок. Mathcad.
Занесемо дані у таблицю (Вставка → Дані → Таблиця), назвавши її
змінна для нумерації елементів
впорядкуємо матрицю за зростання значень першого стовпчика.
, виділимо вектор аргументів та значень функції
Нанесемо точки заданої функції на координатну площину. З розташування точок очевидно, що на заданому відрізку краще застосовувати поліноміальне наближення.
Визначимо оптимальну степінь поліному. Для цього побудуємо таблицю скінченних різниць:
Із значень скінченних різниць видно, що різниця третього порядку вже не зменшує, а збільшує значення, отже оптимальною стелінню полінома буде друга степінь. Збільшення степені може не покращити наближення. А привести до збільшення похибки.
Знайдемо коефіцієнти наближення поліномом 2-го порядку:
- коефіцієнти поліному 2-го порядку
Функція повертає вектор-стовпчик значення коефіцієнтів, починаючи з 3-го елементу (перші три значення –службова інформація для функції ). Переглянемо значення коефіцієнтів вирізавши тільки необхідну інформацію:
Побудуємо апроксимуючий поліном і задамо діапазон зміни аргументу:
Виведемо початкові точки та наближення на графік:
Оцінимо середньоквадратичну похибку наближення:
MATLAB.Нехай таблично задана функція із значеннями:
>> x = [0.1 0.3 0.45 0.5 0.79 1.1 1.89 2.4 2.45];>> y = [-3 -1 0.9 2.4 2.5 1.9 0.1 -1.3 -2.6];Будемо наближати її поліномами 1-ї. 3-ї та 5-ї степені:>> p1 = polyfit(x, y, 1)p1 = -0.6191 0.6755>> p3 = polyfit(x, y, 3)p3 = 2.2872 -12.1553 17.0969 -4.5273>> p5 = polyfit(x, y, 5)p5 = -6.0193 33.9475 -62.4220 35.9698 4.7121 -3.8631Отже ми отримаємо поліноми:.
Дя побудови графіків цих наближень необхідно знайти значення у точках на проміжку до ю Згенеруємо 100 точок за допомогою функції :
>> xx = linspace(x(1), x(end), 100);Обчислимо в них значення наших поліномів: >> yy1 = polyval(p1, xx); >>yy3 = polyval(p3, xx); yy5 = polyval(p5, xx);Побудуємо графіки:>> plot(x, y, 'o', xx, yy1, xx, yy3, xx, yy5).Що б оцінити похибку наближення функцію polyfit() необхідно викликати з двома вихідними аргументами: >> [p3, S3] = polyfit(x, y, 3), деp3 – коефіцієнти поліному: p3 = 2.2872 -12.1553 17.0969 -4.5273;S3 – інформація про наближення:S3 = R: [4x4 double]df: 5normr: 1.7201 – значення середньоквадратичної похибки. Задача 4.1.Побудувати кубічний сплайн контуру фігури, зображеної на рисункуРозв’язок. Проведемо аналіз заданої фігури:
1) вона симетрична відносно осі ординат, отже вісь можна провести посередині фігури, побудувати її для додатних і представити як .
2) Для кожного значення аргументу функції може існувати лише одне значення функції, отже проведемо вісь у крайніх горизонтальних точках фігури.
Для побудови наближення необхідно визначити вузлові точки побудувати їх таблицю.
Наближення будемо будувати 4 сплайнами:
sp1 – точки1-4; sp2 – точки7-4; sp3 – точки7-9; sp4 – точки10-11.
(На кожному відрізку повинно буди не менше 3-х точок)
Складемо розрахункову таблицю координат опорних точок
х | х | х | х | |||||||||||||||||
у | у | -2 | -4.2 | -2,6 | у | -2 | -5 | -7 | у | -7.2 | -7,05 | -7 |
Mathcad.
MATLAB.
Що б отримати більш точне наближення збільшимо кількість точок.
>> x1=[0 5 9 10 11]; y1=[10 5 3 2 0];
>> x2=[0 6 9 10 11]; y2=[-2 -4.2 -3.4 -2.6 0];
>> x3=[0 1 3]; y3=[-2 -5 -7];
>> x4=[0 2 3]; y4=[-7.2 -7.05 -7];
>> s1=spline(x1,y1);s2=spline(x2,y2);
>> s3=spline(x3,y3);s4=spline(x4,y4);
>> xx1=0:0.001:11;xx2=0:0.01:11;
>> xx3=0:0.001:3;xx4=0:0.01:3;
>> yy1=ppval(s1,xx1);yy2=ppval(s2,xx2); >>yy3=ppval(s3,xx3);yy4=ppval(s4,xx4);
>>plot(xx1,yy1,xx2,yy2,xx3,yy3,xx4,yy4)
>> grid
Тема 5 Розв’язок нелінійних рівнянь
Mathcad.
- polyroots(v) – повертає вектор, що містить всі корені багаточлена, коефіцієнти якого задані вектором v (вектор задається починаючи з вільного члена).
- root(f(var), var, [a, b]) – повертає значення змінної var, яка є коренем рівняння на заданому проміжку [a, b] на якому знаходиться тільки один корінь. При використанні даної функції рівняння необхідно представити у вигляді
- Блок Given-Find(var1, var2, ...). При застосування цього блоку спочатку необхідно задати початкові наближення змінних var1, var2, ..., потім після ключового слова Given описати рівняння або систему рівнянь, причому права і ліва частина рівнянь прирівнюється логічною операцією рівності =(Ctrl+=). Функція Find(var1, var2, ...) повертає значення змінних var1, var2, ..., які є розв’язком нелінійного рівняння або системи рівнянь.
Типові задачі.
Задача 5.1. Знайти всі корені нелінійне рівняння:
.
Розвязок. В основі рівняння лежить поліном, отже застосуємо спеціальні функції.
Mathcad.
MATLAB.
>> p=[1.2 -4.25 -6.32 -12.76 3.61 -10.4];
>>r=roots(p)/
Задача 5.2. Розв’язати нелінійне рівняння: .
Розвязок. Mathcad.
Опишемо функцію та побудуємо її графік для визначення кількості та інтервалів розташування коренів:
Як видно з графіка рівняння має два корені на відрізках: [-0,5;0,5], [2;3].
Зайдемо ці корені за допомогою функції root:
x1=root(f(x),x,-0,5,0,5) x1=0
x2=root(f(x),x,2,3) x1=2,753
Знайдемо другий корінь, застосувавши блок Given-Find:
2) x=2,5 – початкове наближення;
3) )Given – задамо рівняння:
=0
4) – розв’язок.
Тема 6 Розв’язок диференційних рівнянь
Mathcad.
- odesolve([vf], x, b, [step]) – повертає функцію або вектор-функцію від x, що є розв’язком системи звичайних диференційних рівнянь. Якщо задане одне рівняння, то параметр vf не задається.
- rkfixed(y,x1,x2,npoints,D) – повертає матрицю значень розв’язку системи диференційних рівнянь, що задана вектором D і початковими умовами y на відрізку [x1,x2] (метод Рунге — Кутта з постійним кроком). Параметр npoints задає кількість точок на відрізку [x1,x2]. Перший стовпчик матриці результату – значення незалежної змінної, другий – значення функції розвязку, якщо рівняння вище першого порядку, то наступні стовпчики – значення відповідних похідних.
- Rkadapt(y,x1,x2,npoints,D) – аналогічна функція попередній, але для відшукання розвязку використовується метод Рунге — Кутта із змінним кроком.
MATLAB.
- ode45('fun',[a b],[v(0)]) (ode23(), ode113(), ode15s(), ode23s()) – повертає значення функції, що є розв’язком задачі Коші, рівняння якої заданіфункцією fun на відрізку [a b] з початковими значеннями v(0);
- блок dee.
Література
1. Воробьева Г.Н., Данилова А.Н. Практикум по вычислительной математике. –М: Высшая школа. 1990 г.. 108 с.
2. Бахвалов Н. С. Численные методы / Н. С. Бахвалов, Н. П. Жидков, Г. Н. Кобельков. М.: БИНОМ. Лаб. знаний, 2003. 632 с.
3. Макаров Е. Инженерные расчеты в Mathcad. Учебный курс Питер, 2005, 448 с.
4. http://www.mathcading.com/ Иллюстрированный самоучитель по MathCAD.
5. http://lineyka.inf.ua/mathcad/ Примеры в Mathcad.
6. http://life-prog.ru/view_cat.php?cat=5 Язык программирования Matlab. Обучающие уроки.
7. http://www.matlabing.com/ Иллюстрированный самоучитель по MatLab
Зміст
Вступ……………………………………………………………………………………………….. | |
Тема 1 Наближені обчислення………………………………………………………………… | |
Типові задачі………………………………………………………………………………... | |
Завдання 1………………………………………………………………………………….. | |
Тема 2 Табулювання функції………………………………………………………………….. | |
Типова задача……………………………………………………………………………… | |
Завдання 2………………………………………………………………………………….. | |
Тема 3 Дії з матрицями…………………………………………………………………………. | |
Типова задача……………………………………………………………………………… | |
Завдання 3………………………………………………………………………………….. | |
Тема 4 Апроксимація функції, що задана таблично ………………………………………. | |
4.1. Метод найменших квадратів……………………………………………………………… | |
4.2 Наближення сплайнами……………………………………………………………………. | |
Типові задачі ……………………………………………………………………………….. | |
Завдання 4.1………………………………………………………………………………... | |
Завдання 4.2……………………………………………………………………………….. | |
Тема 5 Розв’язок нелінійних рівнянь…………………………………………………………. | |
Типові задачі……………………………………………………………………………….. | |
Завдання 5.1………………………………………………………………………………... | |
Завдання 5.2………………………………………………………………………………... | |
Тема 6 Розв’язок диференційних рівнянь…………………………………………………… | |
Типові задачі………………………………………………………………………………... | |
Завдання 6………………………………………………………………………………….. | |
Додаток 1 Арифметичні операції……………………………………………………………… | |
Література…………………………………………………………………………………………. |
ГОРДА Олена Володимирівна
ІНФОРМЦІЙНІ ТЕХНОЛОГІЇ В МАШИНОБУДУВАННІ
Методичні вказівки до виконання практичних завдань
Комп’ютерна верстка