EldiraSesto

Vjezba 4 Newton

Dec 14th, 2019
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.77 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <stdlib.h>
  4.  
  5.  
  6. typedef double (*func_t)(double);
  7.  
  8. double func1(double x)
  9. {
  10.     double result=0;
  11.     result = 2*sin(x) - 0.5;
  12.     return result;
  13. }
  14. double func2(double x)
  15. {
  16.     double rez=0;
  17.     rez = 2*cos(x);
  18.     return rez;
  19. }
  20.  
  21. typedef struct values_s {
  22.     double *arg;
  23.     double *funcval;
  24.     long size;
  25. } values_t;
  26.  
  27. typedef enum boolean_e {
  28.     FALSE = 0,
  29.     TRUE = 1
  30. } boolean_t;
  31.  
  32. values_t *values_allocate(long size)
  33. {
  34.     values_t *values;
  35.     values= malloc(sizeof(values_t));
  36.     if(values==0) {
  37.         printf("Greska u alokaciji....");
  38.         return 0;
  39.     }
  40.     values->arg = calloc(size, sizeof(double));
  41.     values->funcval = calloc(size, sizeof(double));
  42.     if(values->arg==0 || values->funcval==0) {
  43.         printf("Greska u alokaciji...");
  44.         free(values);
  45.         return 0;
  46.     }
  47.     values->size = size;
  48.     return values;
  49. }
  50.  
  51. boolean_t values_insert (values_t *val, double arg, double value, long index)
  52. {
  53.     boolean_t result = FALSE;
  54.     if(val==0) return result;
  55.     if(index<0 || index>val->size) return result;
  56.     val->arg[index] = arg;
  57.     val->funcval[index] = value;
  58.     return result=TRUE;
  59. }
  60.  
  61.  
  62. boolean_t values_free(values_t *val)
  63. {
  64.     boolean_t result = FALSE;
  65.     if(val==0) return result;
  66.     free(val->arg);
  67.     free(val->funcval);
  68.     val->size = 0;
  69.     free(val);
  70.     return result = TRUE;
  71. }
  72.  
  73. boolean_t values_print(values_t *val)
  74. {
  75. boolean_t result = FALSE;
  76. if(val==0) return result;
  77. long i;
  78. for(i=0; i<val->size; i++){
  79.     printf("%ld Argument: %5g, Vrijednost funkcije od argumenta: %5g\n" , i+1, val->arg[i], val->funcval[i]);
  80.    
  81. }
  82. return result = TRUE;
  83. }
  84.  
  85. double newton_step(double x0, func_t func, func_t derivate)
  86. {
  87.     double x1;
  88.     if(derivate(x0)==0) return 0;
  89.     x1=x0-func(x0)/derivate(x0);
  90.     return x1;
  91. }
  92.  
  93. int main()
  94. {
  95.     printf("Hello world....");
  96.     return 0;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment