0

任意の2つの機能があると想像してください。その関数の共通部分を見つける必要があります。すべてのx値を試してチェックする必要はありませんf(x)==g(x)。通常、数学では、から派生した連立方程式を作成しますf(x)==g(x)。しかし、プログラミング言語で方程式を実装する方法がわかりません。
もう一度、私が探しているもの:

  1. 方程式を解くための概念的なアルゴリズム。
  2. 連立方程式と二次方程式についても同じです。

関数の派生を使用することでいくつかの回避策があるはずだと思いますが、私は最近学校で派生の概念を学び、この場合の使用方法がわかりません。

4

2 に答える 2

5

それはあなたが想像するよりもはるかに難しい問題です。これらのことを学ぶための出発点として適しているのは、 ニュートンラプソン法です。これは、の形式の方程式に数値近似を与えh(x) = 0ます。(を設定するh(x) = g(x) - f(x)と、これはあなたが尋ねている問題の解決策を提供します。)

方程式の正確な代数的解法(たとえばMathematicaで実装されている)はさらに困難です。基本的に、紙に方程式を解くときに頭の中で行うすべてのことを再現する必要があります。

于 2013-02-06T15:35:02.710 に答える
1

明らかに、この問題は、任意に複雑な「関数」を作成できるため、一般的なケースでは解決できません。たとえば、さまざまな超越的で複雑な変換を含む5兆の項を含む「関数」がある場合、コンピューターは1つの値を計算するだけで何年もかかる可能性があり、他の同様の関数と交差することはほとんどありません。

したがって、まず最初に、「関数」が何を意味するかを定義する必要があります。次数が4未満の多項式を意味する場合、問題ははるかに単純になります。このような場合、多項式の項を組み合わせて、交差点となる方程式の根を見つけます。

多項式に5つを超える項(5次以上)がある場合、簡単な記号解はありません。この場合、項が組み合わされ、反復近似によって根が見つかります。求根アルゴリズムを参照してください。

関数がsin/cos / log / e ^ xなどの超越的なものを含む場合、関数を一連または連分数として表すことにより、交差点を見つけることができる可能性があります。次に、一方の系列をもう一方の系列から減算し、値をゼロに設定します。連続の方程式を解くと、根の近似が得られます。

于 2013-02-06T18:17:23.850 に答える