開方運算(求根)-- 中值定理
阿新 • • 發佈:2019-01-27
package controller; /** * Created by zhz on 2016/7/18. */ public class MainMath { public static void main(String[] args) { MainMath m = new MainMath(); System.out.println( m.root(2,0.000000000000001)); } /** * * @param x 要開方的數 * @param error 允許的誤差範圍 * @return */ public double root(final double x, final double error) { double c = x ; double defineStart = 0 ; double defineEnd = x ; while(defineEnd - defineStart > error){ double defineMid = (defineStart + defineEnd) / 2.0 ; double resultStart = defineStart*defineStart - c ;double resultEnd = defineEnd * defineEnd - c ; double resultMid = defineMid * defineMid - c ; if(resultStart == 0 ){ return defineStart; } if(resultMid == 0 ){ return defineMid; } if(resultEnd == 0 ){ returndefineEnd ; } System.out.println(defineStart + " --- " + defineEnd ); if( resultStart * resultMid < 0){ defineEnd = defineMid ; continue; } if(resultMid * resultEnd < 0){ defineStart = defineMid ; continue ; } } return defineEnd; } }