Ⅰ java 三次差值法求近似解
java.lang.StackOverflowError
大多數是進入了死循環。
看這行吧,拿負數來開平方了,必須報錯的嘛
u2=(float) Math.sqrt(u1*u1-fd(a)*fd(b));
下面跟u2有關的估計也出錯,自己找找吧。
寫幾行,運行一下,把幾個中間值print出來看看,就比較容易看出問題了,不要寫完了再調試。如果代碼再多了,怎麼找錯誤哦.
另外,你一堆的ff(a) ff(b)的,搞的程序都慢了,把他們賦值給幾個中間變數,比如 k = ff(a) ,kk = ff(b)等,用k、kk來運算,敲代碼時都舒服一點啦.
Ⅱ 求一個java程序求 cosx的近似值,利用階乘來求,
import java.util.Scanner;
public class A{
//下面的方法是對單個數求階乘,並返回
public static int jieCheng(int n){
int sum=1;
for(int i=1;i<=n;i++){
sum*=i;
}
return sum;
}
//下面是對所有數求階乘,再全部相加,並返回
public static int add(int n){
int sum=0;
for(int i=1;i<=n;i++){
sum+=jieCheng(i); //調用上面的方法,對單個求階乘,再全部相加
}
return sum;
}
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.println("請輸入數字:");
int n=input.nextInt();
System.out.println("運算得到:"+add(n));
}
}
//總結:此題有個特點,n等於要相加的數字的總數,也等於要求階乘的最大數
Ⅲ JAVA題目:取近似值問題
你先設個無限循環
中間加了一個判斷退出就行了
if(Math.abs(PI-3.14159)<1e-5) break;
Ⅳ 用java估算e的近似值的編程問題(低端初學)
求解釋為什麼要把fact定義成int
Ⅳ java中怎麼取近似值
public static void main(String[] args) {
BigDecimal d = new BigDecimal(100000); //存款
BigDecimal r = new BigDecimal(0.001875*3); //利息
BigDecimal i = d.multiply(r).setScale(2,RoundingMode.HALF_EVEN); //使用銀行家演算法
System.out.println("季利息是:"+i);
}
Ⅵ java浮點數的計算近似原理,為什麼是這個結果,謝謝
目前常用的float和double等浮點數是基於IEEE-754的二進制有限小數。一個有理數,除非分母是足夠小的2的整數次冪,否則它就不能被精確表示。因此,有些十進制有限位數的小數,到二進制裡面可能會變成無限循環小數,在浮點數中不能表示而損失精度。
Ⅶ java用二分法求根號3的近似值
double left = 0.0;
double right = 3.0;
double middle = (left + right) / 2;
double error = 1e-5;
while (middle - 3 > error) {
middle = (left + right) / 2;
if (middle*middle < 3)
left = middle;
else:
right = middle;
}
Ⅷ java語言,用牛頓迭代法求平方根近似值的問題。
具體如下:
Ⅸ JAVA取π近似值
判斷條件對不對啊,上了一天班頭大,我有點暈了,反正中間邏輯肯定是沒問題的,如果感覺不對,你就再改改while的判斷條件就行了。
publicstaticvoidmain(Stringargs[])
{
inti=0;
doublea=1;
doublehe=0;
while(4*he-3.14159>0.000001||4*he-3.14159<-0.0001)
{
a=1.0/(2*i+1);
if(i%2!=0)
{
a=-a;
}
he=he+a;
i++;
}
System.out.print("項數"+i);
}
Ⅹ java編寫一個計算圓周率π的近似值π=4*(1-1/3+1/5-1/7+1/9-1/11+....)
importjava.io.*;
publicclassPi
{
publicstaticvoidmain(String[]args)
{
finalintmax=1000;
doubleitem=0;
doublesum=0;
intflag=-1;
intn=0;
for(n=0;n<=max;n++)
{
flag*=-1;
item=flag*1.0/(2*n+1);
sum+=item;
}
System.out.println(4*sum);
}
}
終於申訴成功~~~