GCT1015
当我从这里执行第一个示例时,我得到了这些值。请注意,方程式是不同的。1.49999999696126451.4111888803781981.41421320166699951.4142135623730898但这似乎是一个很好的例子。import tensorflow as tfh = tf.constant(.00000001, dtype='float64')eps = tf.constant(.000001, dtype='float64')b = tf.constant(2.0, tf.float64)def f(x): return tf.subtract( tf.multiply(x , x ) , 2. )def fp(x): return tf.divide( tf.subtract( f(tf.add(x, h)) , f(x) ) , h )def fpp(x): return tf.divide( tf.subtract( fp( tf.add(x , h)) , fp(x) ), h )def cond(i, x_new, x_prev): return tf.logical_and( i < 5, tf.less_equal( tf.abs( tf.cast(tf.subtract( x_new , x_prev ),dtype='float64')), eps ) )def body( i, x_new, x_prev ): fx = f( x_prev ) fpx = fp( x_prev ) x_new = tf.subtract( x_prev , tf.divide( b * fx * fpx , tf.subtract(b * fpx * fpx, fx * fpp( x_prev ) ) ) ) xnew = tf.Print(x_new, [x_new], message="The root is : ") with tf.control_dependencies([x_new,xnew]): x_prev = tf.identity(xnew) return [i + 1, xnew, x_prev ]sess = tf.Session()sess.run(tf.global_variables_initializer())print( sess.run(tf.while_loop(cond, body, [1, b - fpp(b), b])) )根是:[1.4999999969612645]根是:[1.411188880378198]根是:[1.4142132016669995]根是:[1.4142135623730898][5,1.4142135623730898,1.4142135623730898]