Автор работы: Пользователь скрыл имя, 23 Декабря 2012 в 18:22, лабораторная работа
Задача: задать формулу графика с точностью..
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФГБОУ
Уфимский государственный нефтяной технический
университет
Кафедра прикладной математики и механики
лабораторная работа
ПО ИНФОРМАТИКЕ
№7
Выполнил: студент гр. БПГ-11-02 Исрафилова А.И.
Вариант 6
Принял: доцент
кафедры ПММ
Уфа 2012
Задача: задать формулу графика с точностью
Исходные данные:
Xi |
Yi |
0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 |
1.7076 0.9147 0.6733 0.5318 0.3955 0.3569 0.3084 0.2643 0.2377 0.2095 0.1872 0.1844 |
Решение:
Строим график по точкам:
Предположим, что исходная функция представляет собой обратную пропорциональность. Тогда необходимо произвести следующие замены:
Ищем формулу в виде:
y= a0=a0; a1=a1; x=x
Паскаль-программа:
program;
uses crt;
var a,b,c,d,a0,a1,a10,a11,p:real;
i,n:integer;
x,y,x1,y1,f: array [1..12] of real;
begin
clrscr;
writeln(‘размер таблицы данных n=:'); readln(n);
write(‘задайте значение для x[i] и y[i]'); for i:=1 to n do
begin
write ('x(',i:2,')='); readln (x[i]);
write('y(',i:2,')='); readln (y[i]);
x1[i]:=x[i];
y1[i]:=1/ y[i];
end;
writeln ('числовые данные для аппроксимации:');
for i:=1 to n do begin
write('x(',i:2,')=',x[i]:2:4);
writeln ('y(',i:2,')=',y[i]:2:4);
end;
a:=0; b:=0; c:=0; d:=0;
for i:=1 to n do begin
a:=a+x1[i]; b:=b+y1[i]; c:= c+sqr(x1[i]); d:=d+x1[i]*y1[i];
end;
a10:= (b*c-a*d)/(n*c-sqr(a));
a11:=(n*d-a*b) /(n*c-sqr(a));
a0:=a10;
a1:=a11;
writeln ('параметры аппроксимирующей зависимости:');
writeln ('a0=', a0:2:4);
writeln ('a1=', a1:2:4);
writeln ('y[i]:');
for i:=1 to n do begin
f[i]:= 1/(a0+a1*x[i]);
write ('x(',i:2,')=', x[i]:2:4);
write ('f (',i:2,')=',f[i]:2:4);
end;
p:=0;
for i:=1 to n do p:=p+abs(y[i]-f[i])/y[i];
p:= p/n*100;
writeln ('Погрешность=',p:2:2,'%');
readln;
end.
Полученный результат:
a0=0.1341 a1=0.9112 e=2.44%
Запишем исходную формулу в виде:
Блок-схема метода: