6

たとえば、私はこのような5つのポイントを持っています、

(1,1) (2,-1) (3,2) (4,-2) (5,2)

今、

  • 1)Matlabでこれらのポイントを補間する関数が必要です。
  • 2)この関数をプロットしたい。
  • 3)入力から数値を読み取り、出力にF(x)を書き込みます。

これどうやってするの??

4

3 に答える 3

8

与えられたデータポイントに多項式を当てはめるには、を使用できますpolyfit(x,y,n)。ここで、は、の点を持つベクトル、はyの点を持つベクトル、は多項式の次数です。Mathworkspolyfitドキュメントの例を参照してくださいxxyn

あなたの場合:

x=[1,2,3,4,5];
y=[1,-1,-2,-2,2];
n=3;
p = polyfit(x,y,n)

そして、例から取ったプロット

f = polyval(p,x);
plot(x,y,'o',x,f,'-')

または、(上記のプロットの代わりに)多項式のよりきれいなプロットを作成するには

xx=0:0.1:5;
yy = erf(xx);
f = polyval(p,xx);
plot(x,y,'o',xx,f,'-')
于 2012-11-29T19:11:57.543 に答える
3

適切なフィットがどのようなものかわからず、別のフィットを試してみたい場合は、カーブフィッティングツールボックスを使用してくださいcftoolxy座標を使用して2つのベクトルを作成する必要があります。その後、を使用して遊ぶことができますcftool

別のオプションはinterp1、補間に関数を使用することです。詳細については、 matlabのドキュメントを参照してください。

于 2012-11-29T19:19:40.973 に答える
1

多項式補間が必要な場合は、polyfit関数を見てください。これは通常、最小二乗多項式近似に使用されますが、次数+1をフィッティングするポイントの数と同じにするように選択した場合でも、引き続き機能します。ご存知かもしれませんが、内挿の場合、内挿の次数は-1の点の数に等しくなります。したがって、上記の例のポイントでは、次数4の多項式が必要です。mathworksのドキュメントへのリンクは次のとおりです

http://www.mathworks.co.uk/help/matlab/ref/polyfit.html

ポイントをそれぞれのx座標とy座標の2つのベクトルに分割すると、次のベクトルbで補間多項式係数を簡単に取得できます。

  b = polyfit(x,y,4)

上記のデータに基づくと、xベクトルとyベクトルは次のようになります。

x = [1 2 3 4 5];
y = [1 -1 2 -2 2]
于 2012-11-29T19:10:14.653 に答える