2017-03-17 4 views
2

x値とy値を含む2つの配列を出力するコードがあります。私は今これらの点を使って根本的に見つける必要がありますが、機能を知らなくても可能ですか? のみの組を使用して、二等分法を実装するにはどうすればいいですか?(x, y)ペア(機能なしf(x))?私がオンラインで見つけている例はすべて、あらかじめ定義された多項式関数を使って二分法を使っていることを示しています。 は、二分法を使用するための近似関数を最初に見つけるのに、が必要ですか?私が持っているものがすべてポイントのセットである場合、ルート検索をどのように実装しますか?

+5

あなたはポイントにカーブを当てはめてルーツを得ることができます。ここでは根はどういう意味ですか?あなたがする必要があるのは、y成分の符号が交互に連続する点を探し、線形補間を行って、その間のy = 0のxを求めることだけです。あなたはあまりにも多くの検索をしており、十分な考え方ではありません。 – duffymo

答えて

0

私は2つの後件ポイントに(x0,y0),(x1,y1)y0*y1<=0.0それは、彼らがゼロを交差されることを意味ので、根がそうこの場所の周りnポイントを取ると、多項式を形成するどこかの間にあるような補間を見つけるあなたはy=0.0

でポイントを平均平方根でなりますか、 BEZIERなど)を使用して、二分法またはその他の方法を使用します。あなたはこれだけこの問題を解決する線形補間を使用することができます初心者のために

はまた特別扱い:

x(t) = x0 + (x1-x0).t // parametric line x 
y(t) = y0 + (y1-y0).t // parametric line y 
y(t) = 0.0 // root y 
x(t) = ? // root x 
--------------------- 
0.0 = y0 + (y1-y0).t 
t = -y0/(y1-y0) 
--------------------- 
x(t) = x0 + (x1-x0).t 
x(t) = x0 + -y0/((y1-y0).(x1-x0)) // this is your approximate root 

は、あなたが見てみたいことy0またはの場合はゼロです。つまり、それらはルートであり、補間する必要はありません。それらが両方ともゼロであれば、それらの間に無限の数のルーツを持っています

関連する問題