add numerical recipes library
This commit is contained in:
41
lib/nr/ansi/examples/xeulsum.c
Normal file
41
lib/nr/ansi/examples/xeulsum.c
Normal file
@@ -0,0 +1,41 @@
|
||||
|
||||
/* Driver for routine eulsum */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
#define NRANSI
|
||||
#include "nr.h"
|
||||
#include "nrutil.h"
|
||||
|
||||
#define NVAL 40
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int i,j,mval;
|
||||
float sum,term,x,xpower,*wksp;
|
||||
|
||||
wksp=vector(1,NVAL);
|
||||
/* evaluate ln(1+x)=x-x^2/2+x^3/3-x^4/4 ... for -1<x<1 */
|
||||
for (;;) {
|
||||
printf("\nHow many terms in polynomial?\n");
|
||||
printf("Enter n between 1 and %2d. (n=0 to end) ",NVAL);
|
||||
scanf("%d",&mval);
|
||||
printf("\n");
|
||||
if ((mval <= 0) || (mval > NVAL)) break;
|
||||
printf("%9s %14s %14s\n","x","actual","polynomial");
|
||||
for (i = -8;i<=8;i++) {
|
||||
x=i/10.0;
|
||||
sum=0.0;
|
||||
xpower = -1;
|
||||
for (j=1;j<=mval;j++) {
|
||||
xpower *= (-x);
|
||||
term=xpower/j;
|
||||
eulsum(&sum,term,j,wksp);
|
||||
}
|
||||
printf("%12.6f %12.6f %12.6f\n",x,log(1.0+x),sum);
|
||||
}
|
||||
}
|
||||
free_vector(wksp,1,NVAL);
|
||||
return 0;
|
||||
}
|
||||
#undef NRANSI
|
||||
Reference in New Issue
Block a user