Информатика 2 семестр / obrazets_vypolnenia_laboratornykh_rabot_2_semestr
.pdfМетод трапеций |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Итерационная формула |
|
( |
( ) ( |
) |
∑ |
( )) |
|
|
|||||||
|
|
|
|
|
|
|
|||||||||
|
( |
( ) |
( ) |
|
∑ |
( )) |
|
( |
( ) ( ) |
( ) |
( ) |
( ) |
|||
|
|
|
|
|
|
||||||||||
( ) |
( ) |
( ) |
|
( )) |
( |
|
|
|
|
|
( |
) ( |
) |
||
|
|
|
|
|
|
||||||||||
( |
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
Вычислим погрешности вычислений Абсолютная погрешность
Относительная погрешность
F(x)
15.39
7,36
|
3,51 |
S7 |
S8 |
|
|
|
|
S1 |
1,75 |
S6 |
|
|
|
-0,56 |
S4 |
|
|
||
- 1,44 |
S5 |
|
- 2,21 |
||
S3 |
||
S2 |
||
|
Рисунок Метода трапеций
Метод парабол |
|
|
|
|
|
|
|
|
|
|
|
|
|||
Итерационная формула |
|
|
|
|
( |
( |
) |
|
|
( )) |
|||||
|
|
|
|
|
|
||||||||||
Где |
∑ |
( ) |
|
|
|
|
|
|
|
|
|
|
∑ ( |
) |
|
|
|
|
|
|
|
|
|
( |
( |
) |
|
|
|
( )) |
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
( |
) |
|
( |
) |
( |
) |
|
( |
) |
( |
|
) |
||
|
|
( |
) |
|
( |
) |
|
( |
) |
( |
) |
( |
) |
||
|
|
|
|
( |
( |
) |
( |
|
|
|
|
( |
)) |
) |
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Вычислим погрешности вычислений |
|
|
|
|
|||||||||||
Абсолютная погрешность |
|
|
|
|
|
|
|
|
31
Относительная погрешность
F(x)
25.84
7.36 |
|
S4 |
|
S1 |
S2 |
S3 |
|
|
|
|
|
-0.56 |
|
|
|
-1.44 |
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
Рисунок Метода парабол
Метод центральных прямоугольников
Составим таблицу значений интегрируемой функции в центральных точках каждого интервала.
|
|
xzr |
|
|
|
|
|
|
|
f(xzr) |
|
|
|
|
|
xzr1=-1,45 |
|
|
|
|
xzr12 – 3* xzr1=(-1,45)2 -3*(-1,45)=6,452 |
|
|
||||||||
xzr 2= xzr 1+h=-1,45+1,1=- |
xzr 22 – 3* xzr 2=(-0,35)2 -3*(-0,35)= 1,172 |
|
|
||||||||||||
0,35 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xzr 3= xzr 2+h=-0,35+1,1=0,75 |
xzr 32 – 3* xzr 3=0,752 -3*0,75= -1,688 |
|
|
|
|||||||||||
xzr 4= xzr 3+h=0,75+1,1=1,85 |
xzr 42 – 3* xzr 4=1,852 -3*1,85= - 2,127 |
|
|
|
|||||||||||
xzr 5= xzr 4+h=1,85+1,1=2,95 |
xzr 52 – 3* xzr 5=2,952 -3*2,95= - 0,148 |
|
|
|
|||||||||||
xzr 6= xzr 5+h=2,95+1,1=4,05 |
xzr 62 – 3* xzr 6=4,052 -3*4,05= 4,253 |
|
|
|
|||||||||||
|
|
|
|
|
|||||||||||
xzr 7= xzr6+h=4,05+1,1=5,15 |
xzr 72 – 3* xzr 7=5,152 -3*5,15=11,073 |
|
|
|
|||||||||||
xzr 8= xzr7+h=5,15+1,1=6,25 |
xzr 82 – 3* xzr 8=6,252 -3*6,25= 20,313 |
|
|
|
|||||||||||
Итерационная формула |
|
∑ |
|
( |
) |
|
|
|
|
|
|
||||
|
|
∑ |
|
( |
) |
( ( |
) |
( |
) |
( |
) |
( |
) |
( |
) |
( |
) |
( |
) |
( |
)) |
|
( |
|
|
( |
|
) ( |
|
) |
|
( |
) |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
Вычислим погрешности вычислений |
|
|
|
|
|
|
|
|
|
||||||
Абсолютная погрешность |
|
|
|
|
|
|
|
|
|
|
Относительная погрешность
F(x)
20.313
|
11.073 |
|
|
|
|
6.452 |
|
|
S8 |
|
4.253 |
|
|
S7 |
|
|
|
|
|
S1 |
1.172 |
|
|
S6 |
|
|
|
||
|
-0.148 |
|
S4 |
|
|
|
|
|
|
|
-1.688 |
|
S5 |
|
|
-2.127 |
S3 |
x |
|
|
|
|
||
|
S2 |
|
|
|
Рисунок Метода центральных прямоугольников
Реализация в MS Excel
33
Реализация метода в Mcad
35
Программа на языке СИ
#include “stdafx.h” #include <iostream> #include <math.h> using namespace std; double f(double x)
{ double Y; Y=pow(x,2)-3*x;
return Y;}
void main()
{setlocale (LC_ALL,”Russian”);
double h,a,b,x[10],y[10],S,ILP,IPP,ITR,C1,C2,IPR,xzr[10],yzr[10],IZR,IT,D,O; int i,n;
cout<<”Введи n,a,b\n”; cin>>n>>a>>b;
cout<<”Введи точное значение интеграла\n”; cin>>IT;
h=(b-a)/n;
cout<<”шаг “<<h<<endl;
cout<<”Таблица значений подынтегральной функции\n”; cout<<”\tx\tf(x)\n”;
for(i=0;i<=n;i++)
{x[i]=a+i*h;
y[i]=f(x[i]); printf(“%9.3f\t%6.3f\n”,x[i],y[i]);} cout<<”Метод левых прямоугольников\n”;
S=0;
for(i=0;i<n;i++)
S=S+f(x[i]);
ILP=h*S;
printf(“ILP= %6.3f\n”,ILP);
cout<<”Абсолютная и относительная погрешность метода левых прямоугольников\n”;
D=fabs(ILP-IT); O=D/fabs(IT)*100;
printf(“D= %6.3f\tO=%6.3f\n”,D,O); cout<<”Метод правых прямоугольников\n”;
S=0;
for(i=1;i<=n;i++)
S=S+f(x[i]);
IPP=h*S;
printf(“IPP= %6.3f\n”,IPP);
cout<<”Абсолютная и относительная погрешность метода правых прямоугольников\n”;
D=fabs(IPP-IT); O=D/fabs(IT)*100;
printf(“D= %6.3f\tO=%6.3f\n”,D,O); cout<<”Метод трапеций\n”;
S=0;
for(i=1;i<n;i++)
S=S+f(x[i]);
ITR=h*((f(x[0])+f(x[n]))/2+S); printf(“ITR= %6.3f\n”,ITR)
cout<<”Абсолютная и относительная погрешность метода трапеций\n”;
37
D=fabs(ITR-IT); O=D/fabs(IT)*100;
printf(“D= %6.3f\tO=%6.3f\n”,D,O); cout<<”Метод парабол\n”;
C1=0;
for(i=1;i<n;i=i+2)
C1=C1+f(x[i]);
C2=0;
for(i=2;i<n;i=i+2)
C2=C2+f(x[i]);
IPR=h/3*(f(x[0])+4*C1+2*C2+f(x[n])); printf(“IPR= %6.3f\n”,IPR);
cout<<”Абсолютная и относительная погрешность метода парабол\n”;
D=fabs(IPR-IT); O=D/fabs(IT)*100;
printf(“D= %6.3f\tO=%6.3f\n”,D,O);
cout<<”Таблица значений подынтегральной функции для метода центральных прямоугольников\n”;
cout<<”\txzr\tf(xzr)\n”; for(i=0;i<n;i++) {xzr[i]=a+(i+0.5)*h; yzr[i]=f(xzr[i]);
printf(“%9.3f\t%6.3f\n”,xzr[i],yzr[i]);} cout<<”Метод центральных прямоугольников\n”;
S=0;
for(i=0;i<n;i++)
S=S+f(xzr[i]);
IZR=h*S;
printf(“IZR= %6.3f\n”,IZR);
cout<<”Абсолютная и относительная погрешность метода центральных прямоугольников\n”;
D=fabs(IZR-IT); O=D/fabs(IT)*100;
printf(“D= %6.3f\tO=%6.3f\n”,D,O);
}
Лабораторная работа №4 Тема: «Аппроксимация и интерполяция»
Постановка задачи: Дана таблично заданная функция {xi,yi}
i |
0 |
1 |
2 |
3 |
4 |
x |
0,2 |
0,4 |
0,7 |
0,85 |
1 |
y |
0,1 |
0,5 |
0,6 |
0,9 |
0,7 |
Аппроксимировать точки полиномом 1 и 2 степени
Интерполировать точки (методом неопределѐнных коэффициентов) полиномом 1 и 2 степени
Аппроксимация
Название метода |
Система для нахождения коэффициентов |
Ответ |
||||||||||||
|
|
|
|
|
|
полинома |
|
|
|
|
|
|
||
Метод |
|
|
|
|
полином 1 степени |
|
|
|
P1(x)=a0+a1*x |
|||||
наименьших |
|
|
|
n a0 a1 xi yi |
|
|
|
|||||||
квадратов |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
i |
|
i |
|
|
|
|
||
(аппроксимация) |
|
|
|
|
|
|
|
xi yi |
|
|
|
|||
|
|
xi a0 a1 xi 2 |
|
|
|
|||||||||
|
|
|
i |
|
|
|
i |
|
i |
|
|
|
|
|
|
|
|
|
|
полином 2 степени |
|
|
|
|
|||||
|
|
|
|
n a 0 |
x i a1 |
x |
2 |
a |
2 y i |
|
|
P2(x)=a0+a1*x+a2*x2 |
||
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
i |
|
|
i |
i |
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
x i a 0 |
x i 2 a1 |
x |
3 |
a 2 x i y i |
|
|||||||
|
|
|
||||||||||||
|
|
i |
|
|
i |
|
|
i |
i |
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
2 |
a 0 |
x i |
3 |
a1 |
|
4 |
|
2 x i |
2 |
y i |
|
|
x i |
|
|
x i |
a |
|
|
|||||||
|
i |
|
|
|
i |
|
|
i |
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ручной счет.
Аппроксимация полиномом 1 степени
Зададим общий вид полинома 1 степени P1(x)=a0+a1*x. Для нахождения коэффициентов полинома необходимо решить систему линейных уравнений, где i= 0..4
|
n a0 a1 xi yi |
|
|
|
||
|
|
i |
i |
|
|
|
|
|
a1 xi 2 xi yi |
|
|
|
|
xi a0 |
|
|
|
|||
i |
|
i |
i |
|
|
|
Вычислим значения xi , xi2 , yi , xi yi . |
||||||
|
|
i |
i |
i |
i |
|
xi |
x0 |
x1 x2 x3 x4 |
|
xi 0,2 0,4 0,7 0,85 1 3,15 |
||
i |
|
|
|
|
i |
|
xi2 x02 x12 x22 x32 |
x42 xi |
2 0,22 0,42 0,72 0,852 12 2,413 |
||||
i |
|
|
|
|
i |
|
|
|
|
|
|
|
|
yi y0 |
y1 y2 |
y3 y4 |
yi 0,1 0,5 0,6 0,9 0,7 2,8 |
|||
i |
|
|
|
|
i |
|
xi yi x0 y0 x1y1 x2 y2 x3 y3 x4 y4 i
xi yi 0,2 0,1 0,4 0,5 0,7 0,6 0,85 0,9 1 0,7 2,105 i
Получаем систему:
5 a0 3,15a1 2,83,15 a0 2,413a1 2,105
Запишем систему в матричном виде.
|
5 |
3,15 |
a |
0 |
|
|
2,8 |
|
|
|
|
|
|
|
|
3,15 |
2,413 |
a1 |
|
2,105 |
Решим систему методом Гаусса.
39
|
|
|
|
|
|
|
|
|
5 |
3,15 |
2,8 |
|
|
||||
|
|
|
|
|
|
|
|
Выполним деление 1-е уравнение на 5,а 2-е уравнение на 3,15. В результате |
|
3,15 2,413 |
2,105 |
|
|
||||
|
|
|
||||||
|
|
|
|
|
|
|
||
получаем систему. |
|
|||||||
1 |
0,63 |
|
0,56 |
|
|
|
||
|
|
|
|
|||||
|
|
|
|
|
|
Перепишем 1- е уравнение без изменений, а из 2-е уравнения вычтем 1-е |
||
|
|
|
|
|
|
|
|
|
1 |
0,766 |
|
0,668 |
|
|
|
||
|
|
|
|
|
|
|
|
||
1 |
0,63 |
0,56 |
|||
уравнения и результат запишем на место второго уравнения. Получим систему |
|
|
|
. |
|
|
0 |
0,136 |
0,108 |
|
|
|
|
||||
|
|
|
Запишем полученные данные в виде системы линейных уравнений: a0 0,63a1 0,56 .
0,136a1 0,108
уравнения найдѐм a |
0,108 |
. Получим a |
0,797 . Из 1-го уравнения найдѐм a |
0,56 |
|
|
|||||
1 |
0,136 |
|
1 |
0 |
|
|
|
|
|
|
|
a0 0,56 0,63 0,797 |
a0 0,058. |
|
|
|
|
Запишем найденное уравнение P1(x) 0,058 0,797 x . |
|
Найдѐм отклонения полученного полиномаP1(x) от заданных точек y.
В 0-ой точке
O0 P1( x0 ) y0
P1(x0 ) 0,058 0,797 x0
P1(0,2) 0,217
O0 0,217 0,1 0,117
Из 2-го
0,63 a1 .
В 1-ой точке
O1 P1( x1 ) y1
P1(x1 ) 0,058 0,797 x1
P1(0,4) 0,377
O1 0,377 0,5 0,123
В 2-ой точке
O2 P1( x2 ) y2
P1(x2 ) 0,058 0,797 x2
P1(0,7) 0,616
O2 0,616 0,6 0,016
В 3-ей точке
O3 P1( x3 ) y3
P1(x3 ) 0,058 0,797 x3
P1(0,85) 0,735
O3 0,735 0,9 0,165
В 4-ой точке
O4 P1( x4 ) y4
P1(x4 ) 0,058 0,797 x4
P1(1) 0,855
O4 0,855 0,7 0,155
Построим график функции P1( x ) и отметим исходные точки на этом же графике.