Einsatz Von Funktionszeigern
← Funktionszeiger | ● | Callbacks →
Einsatzbeispiel von Funktionszeigern:
Summe über rationale Zahlen $\displaystyle{ \sum_{i=a}^{b} t_i, t_i=\frac{n_i}{d_i} }$
Leibniz-Reihe zur Berechnung von $\frac{\pi}{4}$:
Euler-Reihe zur Berechnung von $e$:
Summenfunktion mit variabler Termfunktion:
double (*term)(int i, double x, double *numerator, double *denominator))
{
double s;
double n,d;
for (s=0.0,n=d=1.0,int i=a; i<=b; i++)
{
(*term)(i, x, &n, &d);
s+=n/d;
}
return(s);
}
Damit ergibt sich die Berechnung von $\pi$ bzw. $e$ aus ein und derselben Summenfunktion mit verschiedenen Termfunktionen:
{
*numerator = i&1?-1.0:1.0;
*denominator = 2*i+1;
}
double pi_sum(int n)
{
return(4*(1+sum(1, n, 0.0, leibniz_term)));
}
{
*denominator*=i;
}
double euler_sum(int n)
{
return(sum(1, n, 0.0, euler_term));
}
Q Wie lautet die Darstellung der Exponentialfunktion $e^x$ als Potenzreihe (Taylorreihe) mit Hilfe obiger Summenfunktion?
Potenz-Reihe:
{
*nominator*=x;
*denominator*=i;
}
double exp_sum(double x, int n)
{
return(sum(1, n, x, exp_term));
}
← Funktionszeiger | ● | Callbacks →