復(fù)習(xí)一波數(shù)學(xué)
public class JSZCFC {
/**
* @param args
* 求過(guò)三點(diǎn)的拋物線的解析式y(tǒng)=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);
}
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。