You are on page 1of 7

Họ và tên : Huỳnh Hữu Hoàng, MSV : 102220063, Lớp : 22T_DT1

 Nội suy Hecmit:


4 6 8 10
1 20 180 820
3 48 151 505
- 65 98 276

Ta có:

Cấp 1:

Cấp 2:
Hàm thỏa mãn:

4 6 8 10
0.578 1.969 1.297 0.177
- 1.421 0.363 0.58

Với

Cấp 1:

Hàm thỏa mãn:


6 8 10
0.084 -0.055 0.018
Nội suy Lagrange cách đều:

Suy ra:
 Bình phương bé nhất:
2 4 6 8 10 12
1.98 3.76 5.35 8.26 9.32 12.70

Ta có:

*CODE:

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
float x[50], fx[50], tong1 = 0, tong2 = 0, tong3 = 0, tong4 = 0, a, b;
int n;
void input () {
printf ("Nhap so luong cap gia tri: ");
scanf ("%d", &n);
printf ("Nhap x: ");
for (int i=1; i<=n; i++) {
scanf ("%f", &x[i]);
}
printf ("Nhap f(x): ");
for (int i=1; i<=n; i++) {
scanf ("%f", &fx[i]);
}
}
void bpnn () {
for (int i=1; i<=n; i++) {
tong1 += pow(x[i],2);
tong2 += x[i];
tong3 += (x[i]*fx[i]);
tong4 += fx[i];
}
float temp = -tong2/tong1;
b = (tong3*temp + tong4)/ (tong2*temp + n);
a = (tong4 - b*n)/tong2;
printf ("a = %.3f\nb = %.3f", a, b);
}
int main () {
input();
bpnn ();
}

 Tích phân:

2 4 6 8 10
3.54 5.15 5.98 7.62 9.82

a)

Cách 1:

Cách 2: Chia đoạn [1;5] thành 4 đoạn bằng nhau (h = 1) với các điểm chia:
1 2 3 4 5
1/3 1/20 1/63 1/144 1/275

Công thức hình thang:


Cách 3: Công thức Parabol:
*CODE:

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
float a, b, x[50], fx[50], S1 = 0, S2 = 0;
int n;
void input () {
printf ("Nhap can tren: "); scanf ("%f", &b);
printf ("Nhap can duoi: "); scanf ("%f", &a);
printf ("Nhap so doan: "); scanf ("%d", &n);
printf ("Nhap x: ");
for (int i=0; i<=n; i++) {
scanf ("%f", &x[i]);
}
printf ("Nhap f(x): ");
for (int i=0; i<=n; i++) {
scanf ("%f", &fx[i]);
}
}
void hinhthang () {
float h1 = (b-a)/n;
for (int i=0; i<=n; i++) {
if (i==0 || i==n) S1 += fx[i];
else S1 += 2*fx[i];
}
S1 *= (h1/2);
printf ("Ket qua (cong thuc hinh thang) = %.3f\n", S1);
}
void parabol () {
float h2 = (b-a)/n;
for (int i=0; i<=n; i++) {
if (i==0 || i==n) S2 += fx[i];
else if (i%2!=0) S2 += (4*fx[i]);
else if (i%2==0) S2 += (2*fx[i]);
}
S2 *= (h2/3);
printf ("Ket qua (cong thuc parabol) = %.3f", S2);
}
int main () {
input ();
hinhthang ();
parabol ();
}

b)

Chia đoạn [2;10] thành 4 đoạn (n = 4) như bảng sau (h = 2):

i 0 1 2 3 4
2 4 6 8 10
3.54 5.15 5.98 7.62 9.82
0 1/4 2/4 3/4 1

You might also like