2017-02-08 6 views
0

ベクトルyを繰り返し、2つの入れ子になったforループを使用して、ベクトルの各数値のテイラー展開の合計のリストを返そうとしています。 。Matlab:各要素のテイラー展開を与えるベクトルを反復する

それは割当A(:) = B、A及びB内の要素の数と同じでなければならないエラーを

を返す保ちます。

コード:

n = 6 
y = zeros(1,n); 
x = [0.785398,0.392699,0.19635,0.098175]; 

for i = (1:4) 

    for i = 0:n 

     y(i+1) = (-1).^i*x.^(2*i+1)/factorial(2*i+1); 

    end; 

    SINx = sum(y) 

end 
+1

内側と外側の両方のループに同じ変数iを使用しています。それはタイプミスですか? – ibancg

+0

私は本当にあなたが言うことを何も得ていません。 – Bernhard

答えて

0

問題は、yが唯一の長さnのあるときは、番号と場所をYを埋めるためにしようと、N + 1ということです。言い換えれば

length(y) = 6とあなたがy(6+1)

を埋めるためにしようとも私はそれを言うことはできませんj

0

と第2のループカウンタをchancing考える同じカウンターで2ループを避けるために試してみてくださいこれは各点でテイラー展開を行いますが、コードを修正します

n = 6 
x = [0.785398, 0.392699, 0.19635, 0.098175]; 
y = zeros(n, size(x,2)); 

for j = 1:size(x,2) 

    for i = 0:n-1 

     y(i+1, :) = ((-1)^i) * x.^(2*i+1) ./ factorial(2*i+1); 

    end 

    SINx = sum(y(i+1, :)) 

end 
+0

ありがとう – fgg3331

関連する問題