2016-06-30 6 views
2

私は非明示的な方法の1点で多項式を評価するMATLAB関数(つまり、私はその係数にアクセスすることはできません)matlabの多項式を評価する関数ハンドルから多項式の係数をどのように計算できますか?

y = @(t) P(t) 

を持っているが、私はによって(その係数を計算することができます方法はあります補間、その他の手段)、私はMatlabルーツ関数を使ってその根を見つけることができます。

ありシンボリック変数でそれを行う方法があるが、私は、シンボリック・コンピューティング使用せずに解決策があるかどうかを知りたいのです:あなたが合うようにpolyfitを使用することができます

+2

多項式の次数を知っていますか? – Shai

+0

@Shai私はそれが最大であることを知っています。 –

答えて

2

syms y ; 
coefficients=sym2poly(feval(P,y)); 

おかげで多項式。

、あなたは、係数を推定するために最もd 1ポイントを必要とする、あなたの多項式が小さいかdに等しい程度であると仮定します、

P = @(t) 4*t.^2-2.*t+1; # an example of deg2 poly 
d = 5; # we estimate P to of at most deg 5 
x = 0:d; 
y = P(x); 
coeff = polyfit(x,y,d) 

coeff = 
-0.0000 0.0000 -0.0000 4.0000 -2.0000 1.0000 

あなたが見ることができるように、我々は程度を推定するとき高次coeffはゼロです。

+1

ありがとう! –

+0

@ YacineE.Farisあなたの学位が20になると見積もった場合、このデモコードでは5の代わりに 'd = 20;'を設定する必要があります。 – Shai

関連する問題