Advertisement
Guest User

Untitled

a guest
Sep 25th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. #include<math.h>
  2. #include<stdio.h>
  3.  
  4.  
  5. long double f(long double x) {
  6. long double sum=1-x, term=-x;
  7. int n=2;
  8. while(1+term != 1) {
  9. term *= -x/(n*n); sum += term;
  10. if( ((n%2==0)?sum:-sum) < 0 ) break;
  11. n++;
  12. }
  13. printf("nf(% .8Lf,[%2d])=% .8Lf (f(...,[%2d])=% .8Lf)", x,n,sum,n-1,sum-term);
  14. return sum;
  15. }
  16.  
  17. int main(void) {
  18. const int dp = 5;
  19. long double eps=0.5*powl(10,-dp);
  20. int i=0;
  21. long double a=0, fa = f(a);
  22. long double b=2, fb = f(b);
  23.  
  24. if(signbit(fb)==signbit(fa)) {
  25. printf("Warning, initial values do not have opposite sign!n");
  26. }
  27.  
  28. do {
  29. long double c=(a*fb-b*fa)/(fb-fa), fc = f(c);
  30.  
  31. if( signbit(fc)!=signbit(fa) ) {
  32. b=a; fb=fa;
  33. a=c; fa=fc;
  34. } else {
  35. a=c; fa=fc;
  36. fb *= 0.5;
  37. }
  38. i++;
  39. } while(fabsl(b-a)>eps);
  40.  
  41. printf("ngoal reached after %d iterationsn",i);
  42.  
  43. return 0;
  44. }
  45.  
  46. f( 0.00000000,[ 2])= 1.00000000 (f(...,[ 1])= 1.00000000)
  47. f( 2.00000000,[ 4])=-0.19444444 (f(...,[ 3])=-0.22222222)
  48. f( 1.67441860,[ 4])=-0.09025591 (f(...,[ 3])=-0.10390280)
  49. f( 1.53580328,[ 4])=-0.03709625 (f(...,[ 3])=-0.04675498)
  50. f( 1.42972818,[ 3])= 0.00012083 (f(...,[ 2])= 0.08130249)
  51. f( 1.43007256,[ 5])= 0.00680985 (f(...,[ 4])= 0.00722521)
  52. f( 1.45846639,[ 4])=-0.00500612 (f(...,[ 3])=-0.01286142)
  53. f( 1.44643666,[ 6])=-0.00027582 (f(...,[ 5])=-0.00029349)
  54. f( 1.44521038,[ 5])= 0.00023604 (f(...,[ 4])= 0.00067386)
  55. f( 1.44577586,[ 7])= 0.00000890 (f(...,[ 6])= 0.00000942)
  56. f( 1.44581590,[ 6])=-0.00000787 (f(...,[ 5])=-0.00002549)
  57. f( 1.44579710,[ 8])=-0.00000026 (f(...,[ 7])=-0.00000028)
  58. f( 1.44579591,[ 7])= 0.00000024 (f(...,[ 6])= 0.00000076)
  59. goal reached after 11 iterations
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement