Informatyka II
Ćwiczenie 2
CELEM ĆWICZENIA JEST:
1. Użycie metody trapezów i Simpsona do obliczenia całki oznaczonej.
2. Zbadanie zachowania błędu tych metod w funkcji kroku całkowania.
ZADANIA DO WYKONANIA:
Napisać program obliczający całkę oznaczoną:
metodą trapezów używając funkcji bibliotecznej:
double trapez( double a, double b, double (* function)(double x) , int n ).
Plan działania
a) Napisać funkcje obliczającą f(x) oraz funkcję obliczającą całkę w sposób analityczny. Umieścić ich prototypy, jak również prototyp funkcji bibliotecznej przed funkcją główną
b) Czytać z klawiatury a,b oraz n (liczbę podziałów).
c) Obliczać całkę numerycznie - cn i analitycznie - ca (wywołując odpowiednie funkcje)
d) Obliczać błąd=fabs(cn-ca).
e) Wpisywać do pliku krok całkowania, cn, ca, błąd.
2) Przetestować ten program dla
f(x) = 1/(x*x) i 1/x dla a = l, b = 5; oraz a = 0.1, b = 5.
3) Rozszerzyć ten program tak aby zapisywał do pliku kolejne wiersze odpowiadające n=2,4,8,...,2m
4) Wynik przedstawić graficznie - błąd w funkcji kroku całkowania (Excel, Grapher)
Rozszerzyć program tak aby dodatkowo używał metody Simpsona, używając funkcji:
double simpson( double a, double b, double (* function) (double x) , int n )
Przedstawić wyniki graficznie.
Schemat zastosowania wskaźników do funkcji
Przeanalizuj poniższy kod. Jakie wartości przyjmą zmienne y1 i y2?
// funkcja: y = 2 * x
double fun1( double x )
{
return 2 * x;
}
// funckja: y = -x
double fun2( double x )
{
return -x;
}
// funkcja zwraca y * y
double kwadrat( double xx, double (*pf)(double) )
{
return pf(xx) * pf(xx);
}
void main()
{
double y1 = kwadrat(2., fun1);
double y2 = kwadrat(2., fun2);
}