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

Саня и Димон 1ая лаба (изм)

.docx
Скачиваний:
21
Добавлен:
31.03.2015
Размер:
63.2 Кб
Скачать

ФИЛИАЛ ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО БЮДЖЕТНОГО

ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ ВЫСШЕГО

ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ «МЭИ»

в г. Смоленске.

Лабораторная работа №1 по численным методам

«Аппроксимация характеристики нагнетательной установки по методу наименьших квадратов».

Преподаватель: Новиков Г.Ю.

Выполнили студенты:

Зайцев Д.И.

Демидов А.Ю.

Группа: ЭО-12

Смоленск 2014

Цель работы:

Закрепление и углубление знаний студентов по курсу «Численные методы». При проведении работы студенты подробно знакомятся с одним из методов аппроксимации, методом наименьших квадратов (МНК), составлением блок схем и написанием программ.

Задание:

  1. Изучить указания к выполнению данной лабораторной работы.

  2. Составить подпрограмму формирования матрицы коэффициентов МНК.

  3. Составить головную программу определения функциональной зависимости

между напором насосной установки Н и расходом Q.

В головной программе необходимо:

-предусмотреть ввод из файла таблицы значений (hi,qi);

-с помощью подпрограммы сформировать расширенную матрицу коэффициентов системы МНК;

-составить программу решения системы линейных уравнений методом Гаусса, переслать элементы матрицы в соответствующие массивы для обращения к подпрограмме решения системы линейных уравнений;

-вычислить среднеквадратичное отклонение;

-предусмотреть печать результатов.

4) Подготовить исходные данные, записав их в файл.

5) Провести вычисление на ЭВМ [3,4].

6) Получить графическое изображение характеристики на экране дисплея.

7) Провести анализ полученных результатов расчёта.

8) Оформить отчёт согласно требованиям, предъявляемых к оформлению отчёта.

Получение коэффициентов происходит путем решения системы уравнений методом Гаусса.

Решение заключается в последовательном исключении из каждого уравнения неизвестной переменной. Таким образом из 2 строки исключаем переменную Р0 , из 3 строки исключаем Р0 и Р1

Метод решения системы уравнений.

Обозначим суммы через произвольные буквы для простоты решения.

a=

b=

c=

d=

e=

f=

g=

Первое уравнение системы раздели на k и умножим на а и вычтем из второго уравнения первое. Далее второе уравнение разделим на получившийся коэффициент при Р1 и умножим на коэффициент при Р2 и вычтем из третьего уравнения второе. (Метод прямой прогонки)

После из последнего уравнения находится неизвестный коэффициент Р2 , из второго – Р1 и из первого – Р0

Программа:

Program lab1;

uses crt;

var

P0,P1,P2:real;

a,b,c,d,e,f,g:integer;

i,j:integer;

X:array [1..15] of integer;

Y:array [1..15] of integer;

begin

X[1]:=5;

X[2]:=10;

X[3]:=15

X[4]:=20;

X[5]:=25;

X[6]:=30;

X[7]:=35;

X[8]:=40;

X[9]:=45;

X[10]:=50;

X[11]:=55;

X[12]:=60;

Y[1]:=34;

Y[2]:=34,5;

Y[3]:=35;

Y[4]:=35;

Y[5]:=34,5;

Y[6]:=34;

Y[7]:=32,5;

Y[8]:=31;

Y[9]:=29;

Y[10]:=27,5;

Y[11]:=26,5;

Y[12]:=23;

a:=0;

b:=0;

c:=0;

d:=0;

e:=0;

f:=0;

g:=0;

For i:=1 to 15 do

begin

a:=a+X[i];

b:=b+sqr(X[i]);

c:=c+Y[i];

d:=d+sqr(X[i])*X[i];

e:=e+X[i]*Y[i];

f:=f+sqr(X[i])*sqr(X[i]);

g:=g+sqr(X[i])*Y[i];

end;

writeln('####Summi###');

writeln;

writeln('a=',a);

writeln('b=',b);

writeln('c=',c);

writeln('d=',d);

writeln('e=',e);

writeln('f=',f);

writeln('g=',g);

writeln;

writeln('!!!koefficienty!!!');

writeln;

P2:=(((12*g-c*b)-((d*12-a*b)/(b*12-a*a))*(12*e-c*a)))/(f-(b*b/12)-((12*d-a*b)*(12*d-a*b))/(b*12-a*a));

P1:=((12*e-c*a)-P2*(12*d-b*a))/(12*b-a*a);

P0:=(c-b*P2-a*P1)/12;

writeln('P0=',P0:4:4);

writeln('P1=',P1:4:4);

writeln('P2=',P2:4:4);

readln;

end.

Полученные коэффициенты:

Р2= 0,0004

Р1= –0,2243

Р0= 38,1809

Блок-схема к программе

начало

X[1]:=5;X[2]:=10;X[3]:=15X[4]:=20;X[5]:=25;X[6]:=30;X[7]:=35;X[8]:=40;X[9]:=45;X[10]:=50;X[11]:=55;X[12]:=60;Y[1]:=34;Y[2]:=34,5;Y[3]:=35;Y[4]:=35;Y[5]:=34,5;Y[6]:=34;Y[7]:=32,5;Y[8]:=31;Y[9]:=29;Y[10]:=27,5;Y[11]:=26,5;Y[12]:=23;

a:=0;

b:=0;

c:=0;

d:=0;

e:=0;

f:=0;

g:=0;

I:12

a:=a+X[i];

b:=b+sqr(X[i]);

c:=c+Y[i];

d:=d+sqr(X[i])*X[i];

e:=e+X[i]*Y[i];

f:=f+sqr(X[i])*sqr(X[i]);

g:=g+sqr(X[i])*Y[i];

P2:=(((12*g-c*b)-((d*12-a*b)/(b*12-a*a))*(12*e-c*a)))/(f-(b*b/12)-((12*d-a*b)*(12*d-a*b))/(b*12-a*a));

P1:=((12*e-c*a)-P2*(12*d-b*a))/(12*b-a*a);

P0:=(c-b*P2-a*P1)/12;

writeln('P0=',P0:4:4);

writeln('P1=',P1:4:4);

writeln('P2=',P2:4:4);

конец

Построение графика и оценка среднеквадратичного отклонения.

Так необходимо построить график, с учетом найденных коэффициентов, оценить среднеквадратичное отклонение и необходимо аппроксимировать табличную функцию многочленом второй степени:

Для наглядности составим таблицу:

X

Y

P2(X)

Среднее квадратичное отклонение.

5

34

34,1909

0,4746

10

34,5

34,6655

0,1785

15

35

34,8440

0,1174

20

35

34,7266

0,4133

25

34,5

34,3133

0,7093

30

34

33,6040

1,0052

35

32,5

32,5988

1,3012

40

31

31,2976

1,5972

45

29

29,7004

1,8931

50

27,5

27,8073

2,189

55

26,5

25,6183

2,4851

60

23

23,1332

2,7812

Вывод:

Подробно познакомились с одним из методов аппроксимации, методом наименьших квадратов (МНК), составили блок-схему и написали программу, подготовили исходные данные и провели вычисления на ЭВМ, получили графическое отображение характеристики, провели анализ полученных результатов .