printf("\nKoefficienty interpol. cepnoy drobi:\n");
for (i=0; i<n; i++)
printf("%10.3f", q[i]);
printf("\n\n");
printf("\nKoefficienty chislit. interpol. drobi:\n");
for (i=0; i<n; i++)
printf("%10.3f", b[i]);
printf("\n\n");
printf("\nKoefficienty znamenat. interpol. drobi:\n");
for (i=0; i<n; i++)
printf("%10.3f", d[i]);
printf("\n\n");
c=getch();
return 0;}
:
, :
3 +
:
(-6 x + 2x2) / (-2 x + x2)
:
1. :
void approks_polinomom(int m, int n, float x[m], float y[m], float q[n+1], float *s0);
2. m ,
3. n (n<=m-1),
4. :
float x[m], y[m]; //
//
float q[n+1]; //
//
//
5. x [m], y[m],
6. :
approks_polinomom(m, n, x, y, q, &s0);
7. ( ) q[n+1] s0.
: , :
x | 0.2 | 0.4 | 0.6 | 0.8 | 1.0 | 1.2 | 1.4 | 1.6 | 1.8 | 2.0 | |
y | 2.5 | 0.75 | -1.15 | -2.75 | -3.85 | -4.15 | -3.55 | -2.25 | -0.15 | 2.15 | 4.55 |
m=11, n=3.
:
#include <stdio.h>
#include <math.h>
#include <conio.h>
void approks_polinomom(int m, int n, float x[m], float y[m], float q[n+1], float *s0);
int main(int argc, char **argv)
{
int m; //
int n; // , n<m
float s0; //
int i; //
Char c0;
printf("\nUzlov approksimacii m= ");
scanf("%d", &m);
printf("\nSteprn approks. polinoma n (n<m)= ");
scanf("%d", &n);
float x[m], y[m]; //
float q[n+1]; //
//
//
printf("\nVvedite vector argumenta (%d znacheniy):\n", m);
for (i=0; i<m; i++)
scanf("%f", &x[i]);
printf("\n");
printf("\nVvedite vector funkcii (%d znacheniy):\n", m);
for (i=0; i<m; i++)
scanf("%f", &y[i]);
printf("\n");
printf("\nApproksimacija polinomom\n");
approks_polinomom(m, n, x, y, q, &s0);
|
|
printf("\nKoefficienty approks. polinoma po vozrast. stepeney:\n");
for (i=0; i<n+1; i++)
printf("%10.5f", q[i]);
printf("\n");
printf("\nSrednekvadr. pogreshn. approksimacii: %e\n", s0);
c0=getch();
Return 0;
}
:
, :
2,848 13,529x + 6,528x2 + 0,374x3
:
1. :
void approks_summoj_funkc(int m, int n, float x[m], float y[m], float q[n+1], float *s0);
2. m ,
3. n (n<=m-1),
4. :
float x[m], y[m]; //
//
float q[n+1]; //
//
5. :
void slagaemye(float x, float f[])
//
//
//
// f[n+1]:
// n - ;
// 1.0:
// f[0]=1.0;
// - - x,
// :
// f[0]=1.0; - - !
// f[1]=sin(x);
// f[2]=exp(2.0*x);
// ..
//
{
}
6. x [m], y[m],
7. :
approks_summoj_funkc(m, n, x, y, q, &s0)
8. ( ) q[n+1] s0.
: , :
x | 0.2 | 0.4 | 0.6 | 0.8 | 1.0 | 1.2 | 1.4 | 1.6 | 1.8 | 2.0 | |
y | 2.5 | 0.75 | -1.15 | -2.75 | -3.85 | -4.15 | -3.55 | -2.25 | -0.15 | 2.15 | 4.55 |
:
f(x)=q0 + q1sin(x) + q2cos(x) + q3sin(2x) + q4cos(2x)
m=11, n=4 ( ).
:
#include <stdio.h>
#include <math.h>
#include <conio.h>
void approks_summoj_funkc(int m, int n, float x[m], float y[m], float q[n+1], float *s0);
int main(int argc, char **argv)
{
int m; //
int n; //
//
float s0; //
int i; //
Char c0;
printf("\nUzlov approksimacii m= ");
scanf("%d", &m);
printf("\nKolichestvo approks. funkc. n (n<m) = ");
scanf("%d", &n);
float x[m], y[m]; //
float q[n+1]; //
//
printf("\nVvedite vector argumenta (%d znacheniy):\n", m);
for (i=0; i<m; i++)
scanf("%f", &x[i]);
printf("\n");
printf("\nVvedite vector funkcii (%d znacheniy):\n", m);
for (i=0; i<m; i++)
scanf("%f", &y[i]);
printf("\n");
printf("\nApproksimacija summoj funkcij\n");
|
|
approks_summoj_funkc(m, n, x, y, q, &s0);
printf("\nKoefficienty pri approks. funkcijah:\n");
for (i=0; i<n+1; i++)
printf("%10.5f", q[i]);
printf("\n");
printf("\nSrednekvadr. pogreshn. approksimacii: %e\n", s0);
c0=getch();
Return 0;
}
:
void slagaemye(float x, float f[])
//
//
//
// f[n+1]:
// n - ;
// 1.0: // f[0]=1.0;
// - -
// x,
// :
// f[0]=1.0; - - !
// f[1]=sin(x);
// f[2]=exp(2.0*x);
// ..
//
{
f[0]=1.0;
f[1]=sin(x);
f[2]=cos(x);
f[3]=sin(2.0*x);
f[4]=cos(2.0*x);
}
:
, :
f(x)=0,687 + 1,763 sin(x) 1,145 cos(x) 4,906 sin(2x) + 2,964cos(2x)
, ,
:
1. :