Колибактериоз (эшерихиоз) собак
КАЗАНСКИЙ
ГОСУДАРСТВЕННЫЙ АРХИТЕКТУРНО-СТРОИТЕЛЬНЫЙ УНИВЕРСИТЕТ
Кафедра
прикладной информатики
Курсовая
работа по вычислительной математике
Казань-2012
Решение СЛАУ итерационными методами
Задание: решить систему линейных уравнений
методам Якоби вручную, на Бейсике с точностью 0,00001
3 х 1 +0,7 х 2 +0,2 х
3 +0,2 х 4 =4
,06 х 1 +5 х 2 +0,5 х
3 +0,5 х 4 =5
,3 х 1 +0,3 х 2 +3,5 х
3 +0,4 х 4 =-5
,3 х 1 +0,3 х 2 +0,4 х
3 +4 х 4 =5
Ручной счет по методу Якоби:
х 1 =(4 -0,7 х 2 - 0,2 х
3 - 0,2 х 4 )/ 3
х 2 =(5-0,06 х 1 -0,5 х
3 - 0,5 х 4 )/5
х 3 =(-5-1,3 х 1 -0,3 х
2 -0,4 х 4 )/3,5
х 4 =(5-0,3 х 1 -0,3 х
2 -0,4 х 3 )/4
Первая итерация:
X1(1)
=(4 -0,7 *0 - 0,2*0 - 0,2*0)/ 3=1,333333333
X2(1)
=(5-0,06*0 -0,5 *0 - 0,5*0 )/5=1
X3(1)
=(-5-1,3 *0 -0,3*0-0,4*0)/3,5=-1,428571429
X4(1)
=(5-0,3*0 -0,3*0-0,4*0)/4=1,25
Вторая итерация:
X1(2)
=(4 -0,7 *1 - 0,2*(-1,428571) - 0,2*1,25)/ 3=1,1119
X2(2)
=(5-0,06*1,3333 -0,5 *(-1,428571) - 0,5*1,25 )/5=1,001857
X3(2)
= (-5-1,3 *1,3333 -0,3*1 -0,4*1,25)/3,5=-2,15238
X4(2)
=(5-0,3*1,3333 -0,3*1 -0,4*(-1,428571))/4=1,217857
Третья итерация:
X1(3)
=(4 -0,7 *1,001857 - 0,2*(-2,15238) - 0,2*1,217857)/ 3=1,161868
X2(3)
=(5-0,06*1,1119 -0,5 *(-2,15238) - 0,5*1,217857 )/5=1,0801
X3(3)
=(-5-1,3 *1,1119 -0,3*1,001857 -0,4*1,217857/3,5=-2,0666
X4(3)
= (5-0,3*1,1119 -0,3*1,001857-0,4*(-2,15238))/4=1,3067
Четвертая итерация:
X1(4)
=(4 -0,7 *1,0801 - 0,2*(-2,0666) - 0,2*1,3067)/ 3=1,13196
X2(4)
=(5-0,06*1,161868 -0,5 *(-2,0666) - 0,5*1,3067 )/5=1,06204
X3(4)
=(-5-1,3 *1,161868-0,3*1,0801 -0,4*1,3067)/3,5=--2,10204
X4(4)
=(5-0,3*1,161868 -0,3*1,0801-0,4*(-2,0666))/4=1,28851
Пятая итерация:
X1(5)
=(4 -0,7 *1,06204 - 0,2*(-2,10204) - 0,2*1,28851)/ 3=1,13975
X2(5)
=(5-0,06*1,13196 -0,5 *(-2,10204) - 0,5*1,28851 )/5=1,0677
X3(5)
=(-5-1,3 *1,13196-0,3*1,06204 -0,4*1,2885)/3,5=--2,0873
X4(5)
=(5-0,3*1,13196 -0,3*1,06204-0,4*(-2,10204))/4=1,29565
Шестая итерация:
X1(5)
=(4 -0,7 *1,0677 - 0,2*(-2,0873) - 0,2*1,29565)/ 3=1,1369
X2(5)
=(5-0,06*1,13975 -0,5 *(-2,0873) - 0,5*1,29565 )/5=1,0654
X3(5)
=(-5-1,3 *1,13975-0,3*1,0677 -0,4*1,29565)/3,5=--2,0915
X4(5)
=(5-0,3*1,29565 -0,3*1,0677-0,4*(-2,0873))/4=1,29316
Седьмая итерация:
X1(5)
=(4 -0,7 *1,0654 - 0,2*(-2,0915) - 0,2*1,29316)/ 3=1,13794
X2(5)
=(5-0,06*1,1369 -0,5 *(-2,0915) - 0,5*1,29316 )/5=1,0661
X3(5)
=(-5-1,3 *1,1369-0,3*1,0654 -0,4*1,29316)/3,5=--2,0899
X4(5)
=(5-0,3*1,1369 -0,3*1,0654-0,4*(-2,0915))/4=1,29316
Проверка точности:
| X1(5)
- X1(4)|=0.0009
<0.001
|X2(5)
- X2(4)|=0.0007
<0.001
|X3(5)
- X3(4)|=0.0015
<0.001
|X4(5)
- X4(4)|=0.0008
<0.001
Точность достигнута.
Программа на Бейсике:
ClS
a=0
b=0=0=0
X1=(4-0.7*b-0.2*c-0.2*d)/3=
(5-0.06*a-0.5*c-0.5*d)/5=(-5-1.3*a-0.3*b-0.4*d)/3.5=(5-0.3*a-0.3*b-0.4*c)/4x1,
x2, x3, x4t=x1=x2=x3
d=x4
Goto 1
end
Результаты
выполнения программы:
Интерполяционный
многочлен Ньютона
Задача:
построить интерполяционный многочлен Ньютона вручную использую Excel.
Таблица
зависимости значений функции от аргумента
X
|
1
|
1,2
|
1,4
|
1,6
|
1,8
|
2
|
Y
|
1
|
2,1
|
2,9
|
3,8
|
5,2
|
5,9
|
Ручной счет
Многочлен Ньютона находится по формуле:
В Excel вычислим коэффициенты
В столбце А находятся Xi,
в столбце B находятся Yi.
Расположение вычисленных
коэффициентов:
|
A
|
B
|
C
|
D
|
E
|
F
|
G
|
1
|
X0
|
Y0
|
|
|
|
|
|
2
|
|
|
Y(X0,X1)
|
|
|
|
|
3
|
X1
|
Y1
|
|
Y(X0,X1,X2)
|
|
|
|
4
|
|
|
Y(X1,X2)
|
|
Y(X0,X1,X2,X3)
|
|
|
5
|
X2
|
Y2
|
|
Y(X1,X2,X3)
|
|
Y(X0,X1,X2,X3,X4)
|
|
6
|
|
|
Y(X2,X3)
|
|
Y(X1,X2,X3,X4)
|
|
Y(X0,X1,X2,X3,X4,X5,X6)
|
7
|
X3
|
Y3
|
|
Y(X2,X3,X4)
|
|
Y(X1,X2,X3,X4,X5)
|
|
8
|
|
|
Y(X3,X4)
|
|
Y(X2,X3,X4,X5)
|
|
|
9
|
X4
|
Y4
|
|
Y(X3,X4,X5)
|
|
|
|
10
|
|
|
Y(X4,X5)
|
|
|
|
|
11
|
X5
|
Y5
|
|
|
|
|
|
Формулы вычисления коэффициентов:
линейный уравнение интерполяционный
аппроксимирующий сплайн
,
, и т.д. ,
и т.д. ,
и т.д.
,
Формулы в программе Excel:
|
A
|
B
|
C
|
D
|
E
|
F
|
G
|
1
|
1
|
1
|
|
|
|
|
|
2
|
|
|
=(B3-B1)/(A3-A1)
|
|
|
|
|
3
|
1,2
|
2,1
|
|
=(C4-C2)/(A5-A1)
|
|
|
|
4
|
|
|
=(B5-B3)/(A5-A3)
|
|
=(D5-D3)/(A7-A1)
|
|
|
5
|
1,4
|
2,9
|
|
=(C6-C4)/(A7-A3)
|
|
=(E6-E4)/(A9-A1)
|
|
6
|
|
|
=(B7-B5)/(A7-A5)
|
|
=(D7-D5)/(A9-A3)
|
|
=(F7-F5)/
(A11-A1)
|
7
|
1,6
|
3,8
|
|
=(C8-C6)/(A9-A5)
|
|
=(E8-E6)/(A11-A3)
|
|
8
|
|
|
=(B9-B7)/(A9-A7)
|
|
=(D9-D7)/(A11-A5)
|
|
|
9
|
1,8
|
5,2
|
|
=(C10-C8)/(A11-A7)
|
|
|
|
10
|
|
|
=(B11-B9)/(A11-A9)
|
|
|
|
|
11
|
2
|
5,9
|
|
|
|
|
|
Таблица значений:
|
A
|
B
|
C
|
D
|
Е
|
F
|
G
|
1
|
1
|
1
|
|
|
|
|
|
2
|
|
|
5,5
|
|
|
|
|
3
|
1,2
|
2,1
|
|
-3,75
|
|
|
|
4
|
|
|
4
|
|
8,333333333
|
|
|
5
|
1,4
|
2,9
|
|
1,25
|
|
7,32747E-14
|
|
6
|
|
|
4,5
|
|
8,333333333
|
|
-41,66666667
|
7
|
1,6
|
3,8
|
|
6,25
|
|
-41,66666667
|
|
8
|
|
|
7
|
|
-25
|
|
|
9
|
1,8
|
5,2
|
|
-8,75
|
|
|
|
10
|
|
|
3,5
|
|
|
|
|
11
|
2
|
5,9
|
|
|
|
|
|
Нужные коэффициенты выделены жирным. Подставим
их в многочлен Ньютона:
N(x)=1+5,5(х-1)-3,75(х-1)(х-1,2)+8,3333(х-1)(х-1,2)(х-1,4)+0(х-1)(х-1,2)(х-1,4)(х-1,6)-41,667(х-1)(х-1,2)(х-1,4)(х-1,6)(х-1,8)=1+(x-1)(5,5-3,75(x-1,2))+(x-1)(x-1,2)(x-1,4)(8,3333-41,6667(x-1,6)(x-1,8))
В результате получим:
N(х)=-41,6667*x5+291,6668*x4-799,997*x3+1074,585*x2-02,183*x+178,6
Проверим значения полученной функции в заданных
точках:
N(1)=-41,6667*15+291,6668*14-799,997*13+1074,585*12-702,183*1+178,6=1,0051
N(1,2)= -
41,6667*(1,2)5+291,6668*(1,2)4-799,997*(1,2)3+1074,585*(1,2)2-702,183*1,2+178,6=2,1081
N(1,4)= -
41,6667*(1,4)5+291,6668*(1,4)4-799,997*(1,4)3+1074,585*(1,4)2-702,183*1,4+178,6=2,9122
N(1,6)= -
41,6667*(1,6)5+291,6668*(1,6)4-799,997*(1,6)3+1074,585*(1,6)2-702,183*1,6+178,6=3,8176
N(1,8)= -
41,6667*(1,8)5+291,6668*(1,8)4-799,997*(1,8)3+1074,585*(1,8)2-702,183*1,8+178,6=5,2242
N(2)=-41,6667*25+291,6668*24-799,997*23+1074,585*22-702,183*2+178,6=5,9324
Полученные значения функции c
учетом погрешности вычисления совпадают с табличными значениями. Соответственно
делаем вывод, что многочлен Ньютона вычислен верно.
Формула в Excel для проверки найденного
многочлена Ньютона:
=B1+C2*(A1-A1)+D3*(A1-A1)*(A1-A3)+E4*(A1-A1)*(A1-A3)*(A1-A5)+F5*(A1-A1)*(A1-A3)*(A1-A5)*(A1-A7)+G6*(A1-A1)*(A1-A3)*(A1-A5)*(A1-A7)*(A1-A9)
В ячейку А1 подставляем первое значение Х, для
которого требуется узнать значение многочлена, растягиваем формулу до
последнего значения.
Таблица результатов в Excel для табличных
значений Х:
1
|
1
|
1,2
|
2,1
|
1,4
|
2,9
|
1,6
|
3,8
|
1,8
|
5,2
|
2
|
5,9
|
Вычисления произведены верно.
Получение аппроксимирующей функции методом
наименьших квадратов
Задача: методом наименьших квадратов получить
аппроксимирующую функцию и построить график.
Таблица зависимости значений функции от аргумента
X
|
1
|
1,2
|
1,4
|
1,6
|
1,8
|
2
|
Y
|
1
|
2,1
|
2,9
|
3,8
|
5,2
|
5,9
|
Ручной счет:
Наша задача получить функцию вида:
Находя частные производные, получим систему
уравнений:
Найдем коэффициенты: (n+1)=6
x
|
x^2
|
x^3
|
x^4
|
y
|
y*x
|
y*x^2
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
1,2
|
1,44
|
1,728
|
2,0736
|
2,1
|
2,52
|
3,024
|
1,4
|
1,96
|
2,744
|
3,8416
|
2,9
|
4,06
|
5,684
|
1,6
|
2,56
|
4,096
|
6,5536
|
3,8
|
6,08
|
9,728
|
1,8
|
3,24
|
5,832
|
10,4976
|
5,2
|
9,36
|
16,848
|
2
|
4
|
8
|
16
|
5,9
|
11,8
|
23,6
|
Сумма:
9
|
14,2
|
23,4
|
39,9664
|
20,9
|
34,82
|
59,884
|
Получим систему:
a 0 +9 a 1+14,2
a 2 =20,9
a 0+14,2 a 1 +23,4
a 2 =34,82
,2 a 0 +23,4 a 1 +39,9664
a 2 =59,884
a 0 +9 a 1+14,2
a 2 =20,9 /*9
9 a
0+14,2
a 1 +23,4
a 2 =34,82
/ *6, вычтем из 1 строки вторую
14,2 a 0 +23,4 a 1 +39,9664
a 2 =59,884
a 0 +9 a 1+14,2
a 2 =20,9 /*14,2
,2 a 1 -12,6 a 2 =-20,82
,2 a 0 +23,4 a 1 +39,9664
a 2 =59,884 /*6, вычтем
из
1 строки
третью
a 0 +9 a 1+14,2
a 2 =20,9
,2 a 1 -12,6 a 2 =-20,82
/*(-12,6)
,6 a 1 -38,1584 a 2 =-62,524
/*(-4,2)
a 0 +9 a 1+14,2
a 2 =20,9
-4,2 a
1 -12,6
a 2 =-20,82
-1,5052a
2 =-0,3108
В результате получаем:
a 2 =
0,2064
a 1 =4,3376
a 0 =-3,5415
Коэффициенты вычислены, подставим их в
уравнение:
*(-3,5415)+9 *4,3376+14,2 *0,2064=20,90028
*(-3,5415)+14,2*4,3376+23,4*0,2064=34,82018
,2*(-3,5415)+23,4 *4,3376+39,9664*0,2064=59,8856
Вычисление произведено верно.
Построим график полученной функции y=-3,5415+4,3376*x+0,2064*x2
в
Excel:
Подставляя в полученную функцию табличные
значение x, посмотрим на отклонения значений функции от табличных:
X
|
Y
табл
|
Yвыч
|
|Yвыч-Yтабл|
|
ϐ
|
1
|
1
|
1,100819
|
0,0325
|
√(0,0325
2/6
+ 0,1091642/6+0,065684
2/6
+ 0,1570442/6
+0,235084 2/6 +
0,0893
2/6)
=0,132407
|
1,2
|
2,1
|
2,078844
|
0,109164
|
|
1,4
|
2,9
|
3,070273
|
0,065684
|
|
1,6
|
3,8
|
4,075106
|
0,157044
|
|
1,8
|
5,2
|
5,093342
|
0,235084
|
|
2
|
5,9
|
5,31405
|
0,0893
|
|
Исходные точки.
Отличие графика полученной функции от исходного
графика
Построение кубического сплайна
Задача: построить кубический сплайн по 6 точкам.
Таблица зависимости значений функции от
аргумента
X
|
1
|
1,2
|
1,4
|
1,6
|
1,8
|
2
|
Y
|
1
|
2,1
|
2,9
|
3,8
|
5,2
|
5,9
|
Вычисления:
Некоторая функция f(x) задана на отрезке [a,b],
разбитом на части [xi-1,xi]. На каждом таком отрезке
функция S(x) есть полином третьей степени Si(x), коэффициенты
которого надо определить. Запишем для
удобства
Si(x) в виде:
i (x)=
p i + k i (x- x i-1 )+ g i (x- x
i-1 ) 2+ l i (x- x i-1 ) 3
Шаг: hi= hi-1=xi-xi-1
Формулы для вычисления коэффициентов:
Для нахождения gi
составим
систему, состоящую из уравнений:
hi-1*gi-1 +2(h
i +h i+1 ) *g i+ h i *g i+1 =3((y
i - y i-1) /h i - ( y i-1 - y i-2 )/h
i-1 )
где i=2..n
Коэффициенты можно вычислить методом прогонки, используя
формулу:
g i= gi+1*Ui+Vi
После нахождения необходимо вычислить
Далее вычисляем
i=(y
i - y i-1 )/h i -h i /3 *( g i+1 +2*g
i )
Коэффициенты нам известны из таблицы значений функции:
pi=y i-1 где i=1..n
Таким образом, мы найдем все
коэффициенты и сможем составить уравнения кусков сплайна для каждого отрезка [xi-1,xi].
Составим систему уравнений для
вычисления , она будет состоять из 6 уравнений
,8 g 2 +0,2 g 3= - 4,5
,2 g 2 +0,8 g 3+0,2 g 4 =1,5
,2 g 3 +0,8 g 4+0,2 g 5 =7,5
,2 g 4 +0,8 g 5= -10,5
Записываем коэффициенты:
a
|
b
|
c
|
d
|
0
|
0,8
|
0,2
|
-4,5
|
0,2
|
0,8
|
0,2
|
1,5
|
0,2
|
0,8
|
0,2
|
7,5
|
0,2
|
0,8
|
0
|
-10,5
|
Решаем:
1=-
c1 / b 1 =-0,251=d1 / b 1 =-5,625
А 2=-
c2 / (a 2*A1 + b 2 )=-0,26667
2= (d2 - a 2*A1 )/( (a 2*A1
+ b 2 )=3,5 3=- c3 / (a 3*A2
+ b 3 )=-0,26786 3= (d3 - a 3*A2
)/( (a 3*A2 + b 3 )= 9,107143
U 4=0 ,т.к.
с4
=0 4= (d4 - a 4*A3)/(
(a 4*A3 + b 4 )= -16,5072
Обратный ход:
g5 =
V4 =
-16,5072
g4 =U3*
g3+
V3 =13,52871
g3=U2* g2+ V2
=-0,107662=U1* g1 + V1 =-5,59809
1= g 6=0
Невязки: 0=0.00000000001
1=0.00000000000 2=-0.00000000000 3=-0.00000000000
4=0.00000000001 5=0.00000000000
Коэффициенты:
1=1
k 1=5,873205 l 1= -9,330131 g 1=0 2=2,1
k 2=4,753589 l 2= 9,150691 g2 = -5,5980793=2,9
k 3=3,612441 l 3= 22,72728 g3 =0,1076636
4=3,8 k 4=6,296649 l 4=-50,05979 g4 =13,52871
p 5=5,2
k 5=5,700957
l 5=27,51195
g5 =
-16,50717
p 6=5,9
k6=0
l6=
0 g 6=0
Находим полином третьей степени:
S 1(x)=1+5,873205*(x-1)
+0*(x-1) 2
+(-9,330131)*(x-1) 3=
= 4,45693-22.1172x+27,9904x2
-9,33013x3
S 2(x)=2,1+4,753589*(x-1,2)
+(-5,598079)*(x-1,2) 2
+9,150691*(x-1,2) 3=
= -27,4779+57,72 x-38,5406x2
+9,15069x3
S 3(x)=2,9+3,612441*(x-1,4)
+0,1076635*(x-1,4) 2+22,72728*(x-1,4)
3 =
= -64,3101+136,947 x-95,3469x2
+22,7273x3
S 4(x)=3,8+6,296649*(x-1,6)
+13,52871*(x-1,6 )2+(-50,05979)*(x-1,6)
3=
= 233,404-421,454 x+253,816x2
-50,0598x3
S 5(x)=5,2+5,700957*(x-1,8)
-16,50717*(x-1,8) 2
+27,51195*(x-1,8) 3=
=-218,995+332,543 x-
165,072x2+27,512x
3
По этим многочленам построим график в Excel
Программа для вывода коэффициентов каждого куска
сплайна
Clsnx(n), y(n), a(n), b(n), c(n),
d(n)
1, 1.2, 1.4, 1.6, 1.8, 2 [вводим значения X(i)]
Data 1, 2.1,
2.9, 3.8, 5.2, 5.9 [вводим значения Y(i)]
Data 0, 0.2,
0.2, 0.2 [вводим значения коэффициентов a(i) из системы
уравнений для вычисления ]
Data 0.8, 0.8,
0.8, 0.8 [ вводим значения коэффициентов b(i) из системы
уравнений для вычисления ]
Data 0.2, 0.2,
0.2, 0 [вводим значения коэффициентов c(i) из системы
уравнений для вычисления ]
For i=1 to
nx(i) i
For i=1 to ny(i)ii=1 to n-2(i)=3*((y(i+2)-y(i+1))/0.2-(y(i+1)-y(i))/0.2)
[вычисление коэффициента d(i) из системы
уравнений для вычисления ]
Next ii=1 to n-2a(i)ii=1 to
n-2b(i)ii=1 to n-2c(i)ii=1 to n-2
u(i)=-c(i)/(a(i)*u(i-1)+b(i)) [прогоночный коэффициент
](i)=(d(i)-a(i)*v(i-1))/(a(i)*u(i-1)+b(i)) [прогоночный коэффициент ]
next ii=n to 1 step-1
g(i)=u(i)*g(i+1)+v(i) [вычисляется gi
из уравнения]
next ii=1 to n(i)=(y(i+1)-y(i))/0.2-0.2/3*(g(i)+2*g(i-1))
[вычисляется коэффициент сплайна]ii=1
to n-1(i)=(g(i)-g(i-1))/0.6 ))
[вычисляется коэффициент сплайна]
next ii=1 to n(i)=y(i)ii=1 to
n-1p(i) , k(i), l(i), g(i)i.
Ответ:
1=1 k 1=5.873205
l 1= -9.330131 g 1=0 2=2.1 k 2=4.753589
l 2= 9.150691 g2 = -5.598079 3=2.9 k 3=3.612441
l 3= 22.72728 g3 =0.1076636 4=3.8 k 4=6.296649
l 4=-50.05979 g4 =13.52871 5=5.2 k 5=5.700957 l 5=27.51195 g5 = -16.50717
p 6=5.9 k 6=0 l 6= 0 g6=0
Вычислить
значение функции х0=1,75
Задача:
Вычислить значение функции х0=1,75 использую полученную
аппроксимирующую функции:
N(1,75)=-41,6667*(1,75)5+291,6668*(1,75)4-799,997*(1,75)3+1074,585(1,75)x2-702,183*(1,75)+178,6=4,849
Вычисляем
значение функции х0=1,5 использую полученную аппроксимирующую
функцию методом наименьших квадратов:
y=-3,5115+4,3376*х+0,2064*х2=-
3,5115+4,3376*1,75+0,2064*1,752=4,7114
Вычисляем
значение функции х0=1,75 использую полученную полином третьей
степени S(x):
S (1,75)=
232,757-50,0598*1,75^3+253,816*1,75^2-421,05*1,75=4,941759