Дослідження методів інтерполяції
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
ня.
4. Розвязання задачі в пакеті прикладних програм
Інтерполяцію напруги в точках здійснимо в пакеті прикладних програм MathCAD, використавши процедуру linterp (vx,vy,x), де vx - вектор значень аргументів, vy - вектор відповідних значень функції, x - задані значення аргументу функції, для яких треба вирішити задачу інтерполяції. Результати можна представити як значення функції при заданих значеннях аргументу, так і у вигляді графіка.
Рисунок 7. Результати вирішення задачі в пакеті MathCAD
З рисунку видно, що результатом інтерполяції при є значення напруги U=0,415 мВ, а при - U=0,903 мВ.
5. Аналіз результатів моделювання
Визначимо похибки моделювання, прийнявши за точний розвязок розвязок в пакеті прикладних програм MathCAD.
Абсолютні похибки знайдемо за формулою
, (12)
де - абсолютна похибка, - значення напруги, отримане в пакеті MathCAD, - значення напруги, яке є результатом роботи програми.
Відносні похибки обчислимо за формулою
. (13)
Абсолютна похибка при застосуванні методу розподілених різниць дорівнює при
, при
.
Відносна похибка для даного методу при
, а при .
Визначимо похибки, що виникають при застосуванні методу Лагранжа. При
, при
.
Відносна похибка для даного методу при
, а при
.
Результати роботи програми є однаковими, як при застосуванні методу Лагранжа, так і методу розподілених різниць, похибки обчислень є суттєвими.
6. Інструкція користувачеві
Програма розроблена з використанням мови програмування Turbo Pascal 7.0 та має назву Interpol.
Для запуску програми необхідно запустити файл Interpol. exe.
Після запуску програми зявляється меню, реалізоване в текстовому режимі, яке дозволяє вибрати необхідний метод інтерполяції.
Для вибору методу розподілених різниць необхідно натиснути клавішу "1", для вибору методу Лагранжа - клавішу "2".
Після вибору методу для графічного представлення результатів інтерполяції функції в точках необхідно натиснути клавішу "Enter".
Для виходу з програми необхідно послідовно натиснути клавіші "Esc" та "Enter".
Висновки
В даній курсовій роботі було вирішено задачу інтерполяції напруги вольтметра в точках .
Розроблено програму, що розвязує задачу методами розподілених різниць та Лагранжа. Задача інтерполяції вирішена в пакеті прикладних програм MathCAD, і визначено похибки моделювання.
Програма при вирішенні задачі допускає суттєві похибки, при цьому похибка обчислення напруги збільшується зі збільшенням значенням температури.
Розроблена програма є практичною реалізацією поставленого завдання. Програма наочно, а саме, в графічному та текстовому вигляді, дозволяє реалізувати процес інтерполяції.
Література
1. Квєтний Р.Н. Методи компютерних обчислень. Навчальний посібник. -Вінниця: ВДТУ, 2001.
2. Фаронов В.В. Турбо Паскаль 7.0. Начальний курс. Учебное пособие. -М.: Издательство "ОМД Групп", 2003.
3. Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы. - М.: Наука, 1987.
4. Дубовий В. М, Квєтний Р.Н. Основи застосування ЕОМ у інженерній діяльності. -К.: ІСДО України, 1994.
5. Глинський Я.М., Анохін В. Є., Ряжська В.А. Паскаль. 3-є вид. - Львів: "Деол", 2002.
Додатки
Додаток А. Блок-схема основної програми
Додаток Б. Лістинг програми
Program interpol;
Uses Crt,Graph;
Const t1=75; t2=93;
T: array [0. .5] of integer = (20,40,60,80,100,120);
U: array [0. .5] of real = (-0.67,-0.25,-0.17,0.61,1.06,1.52);
Var
A1: array [0. .5] of real;
A2: array [0. .5] of real;
A3: array [0. .5] of real;
A4: array [0. .5] of real;
A5: array [0. .5] of real;
driver,mode, i,j: integer;
x,x1,dx,y,y1,dy0,dy1,dy2,dy3,dy4,dy5,dy6,dy7: integer;
e,PP,P1,P2,Z1,Z2,ZZ: real; Ch: char;
LL0,LL1,LL2,LL3,LL4,LL5: real;
{----------------------------------------------------------------------------------------}
{TABLUCIA}
{----------------------------------------------------------------------------------------}
procedure tabluca;
begin
TextBackGround (white);
ClrScr;
TextColor (red);
Writeln ();
GoToXY (20,10);
Writeln (TARUROVO4NA TABLUCIA DLIA TERMOPARU);
GoToXY (15,12);
Writeln (------------------------------------------------);
GoToXY (15,13);
Writeln (| T,C | 20 | 40 | 60 | 80 | 100 | 120 |);
GoToXY (15,14);
Writeln (------------------------------------------------);
GoToXY (15,15);
Writeln (|U,mV | - 0.67| - 0.25| - 0.17| 0.61 | 1.06 | 1.52|);
GoToXY (15,16);
Writeln (------------------------------------------------);
end;
{----------------------------------------------------------------------------------------}
{-------------------------Graphik-----------------------------------------------------}
procedure graphik (driver,mode,x,x1,dx,y,y1,dy0,dy1,dy2,dy3,dy4,dy5,dy6,dy7: integer);
begin
driver: =detect;
initgraph (driver,mode,C: \progra~1\TP\bgi);
setviewport (20, 20,getmaxx-59,getmaxy-59,true);
clearviewport;
setbkcolor (white);
x: =20; y: =20;
dy0: = (getmaxy div 2 - (trunc (80*u [0])));
dy1: = (getmaxy div 2 - (trunc (80*u [1])));
dy2: = (getmaxy div 2 - (trunc (80*u [2])));
dy3: = (getmaxy div 2 - (trunc (80*PP)));
dy4: = (getmaxy div 2 - (trunc (80*u [3])));
dy5: = (getmaxy div 2 - (trunc (80*ZZ)));
dy6: = (getmaxy div 2 - (trunc (80*u [4])));
dy7: = (getmaxy div 2 - (trunc (80*u [5])));
dx: =t [1] -t [0] ;
setcolor (red);
line (4*dx,dy0,6*dx,dy1);
line (6*dx,dy1,8*dx,dy2);
line (8*dx,dy2,6*dx+t1,dy3);
line (6*dx+t1,dy3,10*dx,dy4);
line (10*dx,dy4,7*dx+t2,dy5);
line (7*dx+t2,dy5,12*dx,dy6);
line (12*dx,dy6,14*dx,dy7);
repeat
setcolor (green);
line (20,y,getmaxx,y);
line (x, 20,x,getmaxy);
x: =x+20; y: =y+20;
y1: =getmaxy div 2;
setcolor (blue);
outtextxy (2*20,y1,0 20 40 60 80 100 120);
outtextxy (20,y1-60*2, 1.5);
outtextxy (20,y1-40*2, 1.0);
outtextxy (20,y1-20*2, 0.5);
outtextxy (20,y1+60*2,-1.5);
outtextxy (20,y1+40*2,-1.0);
outtextxy (20,y1+20*2,-0.5);
until keypressed;
if readkey=#0 then driver: =ord (readkey);
closegraph
end;
{---------------------ZASTAVKA--------------------------------------------------}
{--------------