pastebin

Paste Search Dynamic
Recent pastes
dif
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. const int k = 1000;
  5. double f_1(double x){
  6.     return sin(log(x)) - cos(log(x))+ 2*log(x);
  7. }
  8. double dif_27_2(double x){
  9.     return ((-2) * (sin(log(x)) + 1)) / pow(x,2);
  10. }
  11.  
  12. double dif_27_1(double x){
  13.     return (2 + cos(log(x)) + sin(log(x))) / x;
  14. }
  15.  
  16. //double eps(void){
  17. //    double e = 1;
  18. //    while ((1 + (e / 2)) > 1)
  19. //        e /= 2;
  20. //    return e;
  21. //}
  22.  
  23. double Newton(double (*f_1)(double), double (*dif_27_1)(double),double (*dif_27_2)(double), double a, double b){
  24.     //double e = eps() * k;
  25.     double x = (a + b) / 2;
  26.  
  27.     double v1, v2, v3, v4, v1_1, v1_2, v2_1;
  28.  
  29.     while (1) {
  30.         v1_1 = f_1(x);
  31.         v1_2 = dif_27_2(x);
  32.         v1 = v1_1 * v1_2;
  33.  
  34.         v2_1 = dif_27_1(x);
  35.         v2 = pow(v2_1, 2);
  36.  
  37.         if (fabs(v1) < v2) {
  38.             break;
  39.         }
  40.  
  41.         v3 = f_1(x);
  42.         v4 = dif_27_1(x);
  43.         x = x - (v3 / v4);
  44.     }
  45.     return x;
  46. }
  47.  
  48.  
  49.  
  50. int main() {
  51.     double a1 = 1, b1 = 3;
  52.    // double epsilon = eps();
  53.  
  54.     printf("|    Уравнение №27: sin(lnx)-cos(lnx)+2lnx = 0 |\n");
  55.     printf("|    Отрезок, содержащий корень уравнения = то %lf до %lf   |\n", a1, b1);
  56.     printf("otvet %lf", Newton(f_1, dif_27_1, dif_27_2, a1, b1));
  57.     return 0;
  58. }
  59.  
Parsed in 0.014 seconds