fork download
  1. library("numDeriv")
  2. #####
  3. ## example
  4. f3 <- function(X){
  5. x1 <- X[1]; x2 <- X[2];
  6. y <- (cos(x1))^2+sin(x2);
  7. return(y)
  8. }
  9. optim(fn = f3,par = c(3,-1),method = "CG")
  10. ## min is -1 at (1.570796, -1.570795).
  11.  
  12. ##### My CG
  13. ## Input
  14. fn = f3; x_start = c(3,-1); CGmaxit = 200; CGtol = 10^-8; NRmaxit = 200; NRtol = 10^-8;
  15.  
  16. ## initial set
  17. x = x_start;
  18. i = 0; k = 0; r = -grad(func=fn,x=x); d = r; n = length(x);
  19. delta_new = t(r)%*%r; delta_0 = delta_new;
  20.  
  21. ## iteration
  22. while( i < CGmaxit & delta_new > CGtol^2*delta_0 ){
  23. j = 0; delta_d = d%*%d;
  24. alpha = - (t(grad(func=fn,x=x))%*%d)/(t(d)%*%hessian(func=fn,x=x)%*%d);
  25.  
  26. ## Newton Raphson
  27. while( j < NRmaxit & alpha^2*delta_d > NRtol^2 ){
  28. alpha = - (t(grad(func=fn,x=x))%*%d)/(t(d)%*%hessian(func=fn,x=x)%*%d);
  29. x = x + alpha*d;
  30. j = j + 1;
  31. }
  32.  
  33. ## update
  34. r = -grad(func=fn,x=x);
  35. delta_old = delta_new;
  36. delta_new = t(r)%*%r;
  37. beta = delta_new/delta_old;
  38. d = r + beta*d;
  39. k = k + 1;
  40. if( k==n || t(r)%*%d<=0 ){
  41. d = r;
  42. k = 0;
  43. }
  44. }
  45. f3(x)
  46. ## my min is 2 at (-3.141593, -4.712389)
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:1: error: class, interface, or enum expected
library("numDeriv")
^
Main.java:2: error: illegal character: '#'
#####
^
Main.java:2: error: illegal character: '#'
#####
 ^
Main.java:2: error: illegal character: '#'
#####
  ^
Main.java:2: error: illegal character: '#'
#####
   ^
Main.java:2: error: illegal character: '#'
#####
    ^
Main.java:3: error: illegal character: '#'
##  example
^
Main.java:3: error: illegal character: '#'
##  example
 ^
Main.java:5: error: class, interface, or enum expected
  x1 <- X[1]; x2 <- X[2];
              ^
Main.java:6: error: class, interface, or enum expected
  y  <- (cos(x1))^2+sin(x2);
  ^
Main.java:7: error: class, interface, or enum expected
  return(y)
  ^
Main.java:10: error: illegal character: '#'
##  min is -1 at (1.570796, -1.570795).
^
Main.java:10: error: illegal character: '#'
##  min is -1 at (1.570796, -1.570795).
 ^
Main.java:12: error: illegal character: '#'
#####  My CG
^
Main.java:12: error: illegal character: '#'
#####  My CG
 ^
Main.java:12: error: illegal character: '#'
#####  My CG
  ^
Main.java:12: error: illegal character: '#'
#####  My CG
   ^
Main.java:12: error: illegal character: '#'
#####  My CG
    ^
Main.java:13: error: illegal character: '#'
##  Input
^
Main.java:13: error: illegal character: '#'
##  Input
 ^
Main.java:14: error: class, interface, or enum expected
fn = f3; x_start = c(3,-1); CGmaxit = 200; CGtol = 10^-8; NRmaxit = 200; NRtol = 10^-8;
         ^
Main.java:14: error: class, interface, or enum expected
fn = f3; x_start = c(3,-1); CGmaxit = 200; CGtol = 10^-8; NRmaxit = 200; NRtol = 10^-8;
                            ^
Main.java:14: error: class, interface, or enum expected
fn = f3; x_start = c(3,-1); CGmaxit = 200; CGtol = 10^-8; NRmaxit = 200; NRtol = 10^-8;
                                           ^
Main.java:14: error: class, interface, or enum expected
fn = f3; x_start = c(3,-1); CGmaxit = 200; CGtol = 10^-8; NRmaxit = 200; NRtol = 10^-8;
                                                          ^
Main.java:14: error: class, interface, or enum expected
fn = f3; x_start = c(3,-1); CGmaxit = 200; CGtol = 10^-8; NRmaxit = 200; NRtol = 10^-8;
                                                                         ^
Main.java:16: error: illegal character: '#'
##  initial set
^
Main.java:16: error: illegal character: '#'
##  initial set
 ^
Main.java:16: error: class, interface, or enum expected
##  initial set
    ^
Main.java:18: error: class, interface, or enum expected
i = 0; k = 0; r = -grad(func=fn,x=x); d = r; n = length(x);
^
Main.java:18: error: class, interface, or enum expected
i = 0; k = 0; r = -grad(func=fn,x=x); d = r; n = length(x);
       ^
Main.java:18: error: class, interface, or enum expected
i = 0; k = 0; r = -grad(func=fn,x=x); d = r; n = length(x);
              ^
Main.java:18: error: class, interface, or enum expected
i = 0; k = 0; r = -grad(func=fn,x=x); d = r; n = length(x);
                                      ^
Main.java:18: error: class, interface, or enum expected
i = 0; k = 0; r = -grad(func=fn,x=x); d = r; n = length(x);
                                             ^
Main.java:19: error: class, interface, or enum expected
delta_new = t(r)%*%r; delta_0 = delta_new;
^
Main.java:19: error: class, interface, or enum expected
delta_new = t(r)%*%r; delta_0 = delta_new;
                      ^
Main.java:21: error: illegal character: '#'
##  iteration
^
Main.java:21: error: illegal character: '#'
##  iteration
 ^
Main.java:21: error: class, interface, or enum expected
##  iteration
    ^
Main.java:23: error: class, interface, or enum expected
  j = 0; delta_d = d%*%d;
         ^
Main.java:24: error: class, interface, or enum expected
  alpha = - (t(grad(func=fn,x=x))%*%d)/(t(d)%*%hessian(func=fn,x=x)%*%d);
  ^
Main.java:26: error: illegal character: '#'
  ##  Newton Raphson
  ^
Main.java:26: error: illegal character: '#'
  ##  Newton Raphson
   ^
Main.java:26: error: class, interface, or enum expected
  ##  Newton Raphson
      ^
Main.java:29: error: class, interface, or enum expected
    x = x + alpha*d;
    ^
Main.java:30: error: class, interface, or enum expected
    j = j + 1;
    ^
Main.java:31: error: class, interface, or enum expected
  }
  ^
Main.java:33: error: illegal character: '#'
  ##  update
  ^
Main.java:33: error: illegal character: '#'
  ##  update
   ^
Main.java:35: error: class, interface, or enum expected
  delta_old = delta_new;
  ^
Main.java:36: error: class, interface, or enum expected
  delta_new = t(r)%*%r;
  ^
Main.java:37: error: class, interface, or enum expected
  beta      = delta_new/delta_old;
  ^
Main.java:38: error: class, interface, or enum expected
  d         = r + beta*d;
  ^
Main.java:39: error: class, interface, or enum expected
  k         = k + 1;
  ^
Main.java:40: error: class, interface, or enum expected
  if( k==n || t(r)%*%d<=0 ){
  ^
Main.java:42: error: class, interface, or enum expected
    k = 0;
    ^
Main.java:43: error: class, interface, or enum expected
  }
  ^
Main.java:46: error: illegal character: '#'
##  my min is 2 at (-3.141593, -4.712389)
^
Main.java:46: error: illegal character: '#'
##  my min is 2 at (-3.141593, -4.712389)
 ^
58 errors
stdout
Standard output is empty