0

私のアプリに使用する必要のある式があります:ここに

部分Sqrt(5-25)は、正または負にすることができます。もちろん、負の場合、Javaが処理できない虚数部を取得します。

私はそれを処理するための複雑なクラスを見つけるために周りを検索しましたが、基本的な操作(+-* /)しか見つかりませんでした。

実数部を取得するだけでよいことを知って、Javaでこれをどのように解決できますか?(虚数は重要ではありません)

私はAndroidプラットフォームで開発することを正確にしています

(Javaでのアプリケーションに関するため、スタックに投稿しますが、math.seに属している場合は、教えてください)

4

5 に答える 5

2

一般的な複素数の平方根を取ることは、実数の基本的な算術演算で行うことができます(さらに実数の平方根を取る): http: //www.mathpropress.com/stan/bibliography/complexSquareRoot.pdf(1つの手法はドモアブルの定理を利用するには:任意の複素数a+biは次のように書くことができます r(cos θ + i sin θ)

r = sqrt(a^2 + b^2),  cos θ = a/r, sin θ = b/r

更新:式r(cos θ + i sin θ) は元々オイラーによるものですが、ドモアブルの定理は

(a + ib)ⁿ = rⁿ(cos nθ + i sin nθ)
于 2011-06-08T09:58:53.297 に答える
2

あなたは単に前に非常にすべてを計算することができます:

プロット25-20+((2Pi0.3²)/(Pi10²)Sqrt [2 * 980(1+(Pi10²)/(Pi10²))] t)²0から38

また

プロット25-20+((2 *0.3²)/(10²)Sqrt [2 * 980(1 + 1)] t)²0から38

また

25-20 + 4 * 0.0000081 * 3920 * t ^ 2 0から38まで(私はいくつかの要因が間違っていますが、あなたは考えを理解します)

定数に基本的な数学を適用し、2番目のbinomic式を適用した後、中央(虚数部)を削除するだけです。

複素数とは何の関係もありません。

于 2011-06-08T10:16:14.123 に答える
0

「Javaはそれを処理できない」と言うのは正しくありません。平方根からdoubleを返す言語はそれを処理できませんが、Complexクラスがある場合は問題になりません。Pythonには1つ組み込まれています。Javaで書くのは簡単です。

于 2011-06-08T10:04:55.807 に答える
0

あなたは数学について混乱しています。-25の平方根は25*(-1)の平方根であり、それは25*の平方根-1の平方根であり5iです。その数の実数部は0です。

5が必要な場合は、数値の符号が「ルート化」されていることを確認し、負の場合は変更します。

于 2011-06-08T09:59:23.667 に答える
0

整数の平方根は、実数部がゼロの整数または複素数になります。負の整数の平方根の実数部はゼロです。いつも。

それで ...

public double realPartOfSquareRoot(int i) {
    return (i > 0) Math.sqrt(i) : 0;
}

しかし、どうすればこれを解決できますか?平方根を0に置き換えると、良い結果が得られません。架空の部分が式の残りの部分で実際に何かをしていると思いますか?

そうだと思います!(架空の部分を破棄するという考えは私にはあまり意味がありませんでした...しかし、あなたにはこれを行う正当な理由があると思いました。)

本当の答えは、複雑な演算を行うJavaライブラリを見つけることです。私はそれを使用する必要はありませんでしたが、最初に調べるのはApacheCommonsMathsライブラリです。

于 2011-06-08T10:01:42.187 に答える