Zadanie 1.
(1,2) (2,0) (3,3) (5,4)
x1 y1 x2 y2 x3 y3 x4 y4
L1=
L2=
L3=
L4=
W(x)= y1L1(x)+ y2L2(x)+ y3L3(x)+ y4L4(x)
W(x)=2 L1(x)+ 0L2(x)+ 3L3(x)+ 4L4(x)
W(4)=2 *0,2+ 3*1,5+ 4*0,25= 5,9
Zadanie 2
Nie ponieważ dwa punkty mają takie sam x
L1=
nie dzielimy przez zero !
Zadanie 3
wartości stałe
h= 0.05 granice całkowania od 0 do 5 , a więc długość przedziału to 5 jednostek, zatem:
n=
# include < stdio.h>
# include <math.h>
double ef (double x);
double simpson(double a, double b, double (* function)(double x), int n);
double alfa = 0.01;
void main()
{
double wynik;
int n=100;
for (alfa= 0.01; alfa <= 3.00; alfa=alfa +0.01)
{
wynik= simpson (0,5,ef,100);
printf (“alfa=%lf\twynik=%lf\n”,alfa,wynik);
}
double ef (double x)
{
return pow(pow(2,alfa)+cos(alfa*x), 1./3.);
}
double simpson (double a, double b, double (* function)(double x), int n )
{
double value;
double h, x, sum;
int i;
int nc;
nc = abs( n / 2 ) * 2;
h = (b - a) / (double) nc;
sum = 0.0;
for( i=1; i<nc-1; i+=2 )
{
x = a + (double) i * h;
sum += 4.0*function(x) + 2.0*function(x+h);
}
value = ( function(a) + sum + 4.0*function(b-h) + function(b) ) * h / 3.0;
return value;
}
Zadanie 4
h= 0.001
granica całkowania: - α do α zatem długość przedziału wynosi |- α |+| α |=2 α , a więc : n=
# include < stdio.h>
# include <math.h>
double ef (double x);
double simpson(double a, double b, double (* function)(double x), int n);
double alfa = 0.01;
void main()
{
double wynik;
int n;
double h= 0.001
for (alfa= 0.01; alfa <= 3.00; alfa=alfa +0.01)
{
n= 2*alfa/h;
wynik= simpson (- alfa,alfa,ef,n);
printf (“alfa=%lf\twynik=%lf\n”,alfa,wynik);
}
}
double ef (double x)
{
return exp(- sin (x)*sin(x)-alfa*x);
}
double simpson (double a, double b, double (* function)(double x), int n )
{
double value;
double h, x, sum;
int i;
int nc;
nc = abs( n / 2 ) * 2;
h = (b - a) / (double) nc;
sum = 0.0;
for( i=1; i<nc-1; i+=2 )
{
x = a + (double) i * h;
sum += 4.0*function(x) + 2.0*function(x+h);
}
value = ( function(a) + sum + 4.0*function(b-h) + function(b) ) * h / 3.0;
return value;
}
Zadanie 5
Program :
# include < stdio.h>
void main ()
{
FILE *plik;
if (NULL==(plik=fopen(“aa.txt”,”r”)))
{
printf (“blad otwarcia pliku”);
exit(0);
}
double wynik = 0;
double x[50];
double y[50];
for ( int i =0; i <50 ; i ++ )
{
fscanf(plik,”%lf%lf”,&x[i]&y[i]);
}
int n;
scanf(“%d”,&n);
for (i=0;i<(n-1);i++)
{
wynik=wynik+((y[i]+y[i+1]/2.)*(x[i+1]-x[i]);
}
printf (“%lf”,wynik);
}
Zadanie 6
(0 ; π/2) ; (π/2 ; 3π/2) ; (3π/2 ; 5π/2) ; (5π/2 ; 7π/2) - cztery pary
# include <studio.h>
#include <math.h?
double ef(double x);
int bisec(double a, double b, double (*pf)(double x), double eps, double *x);
int sieczka( double a, double b, double (*pf)(double), double eps, double *x);
int styka( double a, double (*pf)(double), double pochodnaf(double x), double eps, double *x);
double pochodnaf(double x);
void main ()
{
double eps=0.00001;
double PI=4.*atan(1.);
double x1=0, x2=PI/2, dx=PI/2, wynik;
int it;
for (int i= 0; i<4; i++)
{
it= bisec (x1,x2,ef,eps,&wynik);
printf(“przedzial < %lf; %lf>\tx=%lf\titeracji %d”,x1,x2,wynik,it);
x1=x1+dx;
x2=x2+dx;
}
}
double ef (double x)
{
return 2* sin(x)-1./x;
}
int sieczka( double a, double b, double (*pf)(double), double eps, double *x)
{
int i, iw;
double xa, xb, fa, fb, xc, fc;
xa = a;
xb = b;
fa = pf(a);
fb = pf(b);
if ( fa*fb > 0.0)
return 0;
for ( i=1; i<=1000; ++i)
{
iw = i;
xc=xb - fb*(xb-xa)/(fb-fa);
fc=pf(xc);
if (fa*fc < 0.)
{
xb = xc;
fb = fc;
}
else
{
xa = xc;
fa = fc;
}
if ( fabs(fc) < eps)
break;
}
*x=xc;
return iw;
}
double pochodnaf(double x)
{
return -sin(x) - 1;
}
int styka( double a, double (*pf)(double), double (*pochodna)(double), double eps, double *x)
{
int i, iw;
double xa, xb, fa, fp, xc, fc;
xa = a;
fa = pf(a);
fp = pochodna(a);
for ( i=1; i<=1000; ++i)
{
iw = i;
xc= xa - (fa/fp);
fc=pf(xc);
xa = xc;
fa = pf(xa);
fp = pochodna(xa);
if (fabs(fc) < eps)
break;
}
*x=xc;
return iw;
}