美文网首页
求过三点抛物线的解析式

求过三点抛物线的解析式

作者: 不听话好孩子 | 来源:发表于2017-08-16 14:53 被阅读0次

    复习一波数学

    public class JSZCFC {
    
        /**
         * @param args
         * 求过三点的抛物线的解析式y=ax*x+bx*x+c
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            System.out.println(getA(new Mybig(0.5d,0.5d), new Mybig(0d, 1d), new Mybig(1d, 1d)));
    
        }
        
        /**
         * x1!=0 x2!=0  x1!=x2
         * @param i
         * @param j
         * @param k
         * @return
         */
    public static BigDecimal[] getA(Mybig i,Mybig j,Mybig k){
    BigDecimal a=     (
                i.y.multiply(k.x).subtract(k.y.multiply(i.x))
                .add(i.y.multiply(j.x))
                .subtract(j.y.multiply(i.x))
                )
                .divide(
                ((i.x.pow(2).multiply(j.x))
                .add((i.x.pow(2).multiply(k.x)))
                .subtract((j.x.pow(2).multiply(i.x)))
                .subtract((k.x.pow(2).multiply(i.x))))
                );
    BigDecimal c= (a.multiply((j.x.pow(2)).multiply(i.x)
                .subtract((a.multiply((i.x.pow(2))).multiply(j.x))))
                .add((i.y.multiply(j.x)))
                .subtract((j.y.multiply(i.x))))
                .divide((
                        j.x.subtract(i.x)));
        
    BigDecimal b=((i.y.subtract(c).subtract((a.multiply((i.x.pow(2)))))))
                .divide(i.x);
        return new BigDecimal[]{a,b,c};
        
        
    }
    
    
    }
    class Mybig{
         BigDecimal x,y;
        public Mybig(Double x,Double y){
            this.x=new BigDecimal(x);
            this.y=new BigDecimal(y);
        }
    }
    

    相关文章

      网友评论

          本文标题:求过三点抛物线的解析式

          本文链接:https://www.haomeiwen.com/subject/bypirxtx.html