2016-05-17 8 views
0

私はJavaプログラミングで新しく、数学のクラスを使用していますので、おそらく私の質問はルーキーのものです。しかし、私はここで私の評判を危険にさらし、誰かが私が間違っているところを教えてくれるなら地獄の穴に落としてしまいます。
だからここに私が述べた値を持つテキストブックKT/V持ち式spKT/V = -ln(R - 0.008 * t) + (4 - 3.5 * R) * 0.55 * (UF/V)
によってsinglepool KT/V(腎臓病で行われた計算)を計算することになって簡単なコードです:
R = 0.35、T = 3で、UFは、/V = 0.06は何とか結果1.21でエンディングする。
コンパイル後にこのクラスを実行すると、-1.029が返されます。
私は2つの質問を持っています:
1.なぜ私は負の数を得て、それを正に変えるのですか? (推測すると、数学のログと関係がある)
2.私はコードや教科書がうんざりしていますか?それは1.21を得るために何を変えるべきなのか私のものですか?負のMath.logの戻り値はKt/Vの計算に影響する可能性があります

いずれの入力も高く評価されます。みんなに感謝します。

import java.*; 
public class nephro { 

public static void main (String[] args) { 

    System.out.println(spKTV()); 

} 
public static double logrfm() { 
    double logX = x(0.35, 3); 
    double left = Math.log(logX); 
    return left; 
} 
public static double x(double R, double t) { 
    double x_res = (R - 0.008 * t); 
    return x_res; 
} 
public static double rufv (double R, double UFV) { 
    double rufv = (4 - 3.5 * R) * (0.55 * UFV); 
    return rufv; 
} 
public static double spKTV(){ 
    double result = logrfm() + rufv(0.35, 0.06); 
    return result; 
} 
} 
+5

ログの結果を否定するのを忘れた – harold

+0

@haroldログはどういう意味ですか?コードがコンパイルされ、完全に動作する、私は結果に満足していない。 –

+2

その式に '-ln'があります。コードではログを取ってからそれを否定しません。 – harold

答えて

2

1)計算に間違いがあるため、負の値があります。

2)本は正しいです(これはポケット計算機で確認できます)。コードに問題はここにある:代わりにする必要があります

double left = Math.log(logX); 

double left = - Math.log(logX); 

ところで。非常に多くの方法に分割されていなければ、コードは多少理解しやすくなります。

+0

しかし、サニティは過大評価されています!今すぐ動作します。彼らが言っているように«すべてには経験があります»。 –

関連する問題