0

matlab で非常に基本的な関数を定義しました。入力を受け取らず、10 個の浮動小数点数の配列を返します。私が抱えている問題は、関数を実行して配列を返すときに間違った値が得られることですが、値を代入して関数内から値を単純に出力すると、正しい答えが得られますか?! 以下のコードのサンプルを投稿しました。

% Calculate the terms in our expression
FirstTerm  = sin(Alpha)*(atan(x+d)-atan(x-d));
SecondTerm = cos(Alpha)*0.5*log(((x+d).^2+h.^2)/((x-d).^2+h.^2));

% Combine and return result
Result = 2 * (FirstTerm - SecondTerm)

FirstTermTemp  = sin(Alpha)*(atan(-8+d)-atan(-8-d));
SecondTermTemp = cos(Alpha)*0.5*log(((-8+d).^2+h.^2)/((-8-d).^2+h.^2));
ResultTemp = 2 * (FirstTermTemp - SecondTermTemp)

計算したい配列は -8 から始まるので、結果は一致するはずです。なぜ彼らがそうしないのか、誰にも分かりますか?乾杯ジャック

4

1 に答える 1

1

あなたはあなたの.前に/

% //Calculate the terms in our expression
FirstTerm  = sin(Alpha)*(atan(x+d)-atan(x-d));
SecondTerm = cos(Alpha)*0.5*log(((x+d).^2+h.^2)./((x-d).^2+h.^2));
% //Combine and return result
Result = 2 * (FirstTerm - SecondTerm)

Result =

 Columns 1 through 7:

   0.097944   0.133866   0.208270   0.425797   0.692904  -0.140347  -0.124798

 Columns 8 and 9:

  -0.095581  -0.076166
于 2013-10-14T11:23:11.873 に答える