">
Математика ![]() | |||||||||||||||||||||||||||
Похожие работы:
| |||||||||||||||||||||||||||
Кафедра прикладной информатики Курсовая работа по вычислительной математике Выполнила:
Проверил : Оценка_____ Дата:_______ 2012 Решение СЛАУ итерационными методами Задание: решить систему линейных уравнений методам Зейделя вручную, на Бейсике с точностью ?=0,00001 3 х 1 +0,7 х 2 +0,2 х 3 +0,2 х 4 =4 0,06 х 1 +5 х 2 +0,5 х 3 +0,5 х 4 =5 1,3 х 1 +0,3 х 2 +3,5 х 3 +0,4 х 4 =-5 0,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 c=0 d=0 1 X1=(4-0.7*b-0.2*c-0.2*d)/3 X2= (5-0.06*a-0.5*c-0.5*d)/5 X3=(-5-1.3*a-0.3*b-0.4*d)/3.5 X4=(5-0.3*a-0.3*b-0.4*c)/4 Print x1, x2, x3, x4 Input t a=x1 b=x2 c=x3 d=x4 Goto 1 end
Результаты выполнения программы: 1.333333 1 -1.428571 1.25 1.111905 1.001857 -2.152381 1.217857 1.1611868 1.080109 -2.066622 1.306706 1.131969 1.062049 -2.102041 1.288514 1.139757 1.067769 -2.087308 1.2956653 1.139964 1.065488 -2.091507 1.293166 1.137942 1.06619 -2.08999 1.293967 1.137624 1.065947 -2.090505 1.293689 1.137733 1.06603 -2.090334 1.293783 1.137696 1.066002 -2.090393 1.293751 Интерполяционный многочлен Ньютона Задача: построить интерполяционный многочлен Ньютона вручную использую 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-702,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 Ручной счет: Наша задача получить функцию вида: Находя частные производные, получим систему уравнений: x x^2 x^3 x^4 y y*x y*x^2 Найдем коэффициенты: (n+1)=6 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 Получим систему: 6a 0 +9 a 1+14,2 a 2 =20,9 9 a 0+14,2 a 1 +23,4 a 2 =34,82 14,2 a 0 +23,4 a 1 +39,9664 a 2 =59,884 Решим её методом Гаусса. 6a 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 6a 0 +9 a 1+14,2 a 2 =20,9 /*14,2 -4,2 a 1 -12,6 a 2 =-20,82 14,2 a 0 +23,4 a 1 +39,9664 a 2 =59,884 /*6, вычтем из 1 строки третью 6a 0 +9 a 1+14,2 a 2 =20,9 -4,2 a 1 -12,6 a 2 =-20,82 /*(-12,6) -12,6 a 1 -38,1584 a 2 =-62,524 /*(-4,2) 6a 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 Коэффициенты вычислены, подставим их в уравнение: 6*(-3,5415)+9 *4,3376+14,2 *0,2064=20,90028 9 *(-3,5415)+14,2*4,3376+23,4*0,2064=34,82018 14,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 v(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) в виде: S 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 После нахождения необходимо вычислить Далее вычисляем k 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 уравнений 0,8 g 2 +0,2 g 3= - 4,5 0,2 g 2 +0,8 g 3+0,2 g 4 =1,5 0,2 g 3 +0,8 g 4+0,2 g 5 =7,5 0,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 Решаем : U 1=- c1 / b 1 =-0,25 V1=d1 / b 1 =-5,625 А 2=- c2 / (a 2*A1 + b 2 )=-0,26667 V 2= (d2 - a 2*A1 )/( (a 2*A1 + b 2 )=3,5 U 3=- c3 / (a 3*A2 + b 3 )=-0,26786 V 3= (d3 - a 3*A2 )/( (a 3*A2 + b 3 )= 9,107143 U 4=0 ,т.к. с4 =0 V 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,10766 g2=U1* g1 + V1 =-5,59809 g 1= g 6=0 Невязки: r 0=0.00000000001 r 1=0.00000000000 r 2=-0.00000000000 r 3=-0.00000000000 r 4=0.00000000001 r 5=0.00000000000 Коэффициенты: p 1=1 k 1=5,873205 l 1= -9,330131 g 1=0 p 2=2,1 k 2=4,753589 l 2= 9,150691 g2 = -5,598079 p3=2,9 k 3=3,612441 l 3= 22,72728 g3 =0,1076636 p 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 Программа для вывода коэффициентов каждого куска сплайна Cls Input n Dim x(n), y(n), a(n), b(n), c(n), d(n) Data 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 n Read x(i) Next i For i=1 to n Read y(i) Next i For i=1 to n-2 d(i)=3*((y(i+2)-y(i+1))/0.2-(y(i+1)-y(i))/0.2) [вычисление коэффициента d(i) из системы уравнений для вычисления ] Next i For i=1 to n-2 Read a(i) Next i For i=1 to n-2 Read b(i) Next i For i=1 to n-2 Read c(i) Next i For i=1 to n-2 u(i)=-c(i)/(a(i)*u(i-1)+b(i)) [прогоночный коэффициент ] v(i)=(d(i)-a(i)*v(i-1))/(a(i)*u(i-1)+b(i)) [прогоночный коэффициент ] next i for i=n to 1 step-1 g(i)=u(i)*g(i+1)+v(i) [вычисляется gi из уравнения] next i for i=1 to n k(i)=(y(i+1)-y(i))/0.2-0.2/3*(g(i)+2*g(i-1)) [вычисляется коэффициент сплайна] next i for i=1 to n-1 l(i)=(g(i)-g(i-1))/0.6 )) [вычисляется коэффициент сплайна] next i for i=1 to n p(i)=y(i) next i for i=1 to n-1 print p(i) , k(i), l(i), g(i) next i end. Ответ: p 1=1 k 1=5.873205 l 1= -9.330131 g 1=0 p 2=2.1 k 2=4.753589 l 2= 9.150691 g2 = -5.598079 p 3=2.9 k 3=3.612441 l 3= 22.72728 g3 =0.1076636 p 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 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 Содержание Решение СЛАУ итерационными методами……………………………………..2 Интерполяционный многочлен Ньютона…………………………………………………………6 Получение аппроксимирующей функции методом наименьших квадратов..10 Построение кубического сплайна………………………………………………14 Вычислить значение функции х0=1,75…………………………………..……..20 |
© 2010–2022 Эссе.рф: Библиотека учебных материалов |