【!!至急お願いします!!】 matlabで、矩形波を作成したいです。 f(x) = (1/π) * Σ{k=1から♾️} (sin(2k-1)x / (2k-1)) という式を使って矩形波を作成していただきたいです。 syms, symsumなどは使用できますが、squareは用いないでください。 plotでグラフが作成できると嬉しいです。 また、kの値を10や5000などに変更して、矩形波が近似されていく様子を見られると嬉しいです。 よろしくお願いします。 matlab 矩形波 syms symsum

プログラミング | 工学51閲覧xmlns="http://www.w3.org/2000/svg">500

ベストアンサー

フーリエ級数による矩形波ですね symsum を使うとすると、 syms x k % シンボリック変数の定義 N = 100; % フーリエ級数の項数(近似) % フーリエ級数の定義(有限和) f_sym = symsum(sin((2*k - 1)*x) / (2*k - 1), k, 1, N); % スケーリング係数 f_sym = (1/pi) * f_sym; % 数値化してプロット用に関数化 f_num = matlabFunction(f_sym); % 数値範囲の定義 x_vals = linspace(-pi, pi, 1000); y_vals = f_num(x_vals); % プロット plot(x_vals, y_vals, 'LineWidth', 1.5); grid on; xlabel('x'); ylabel('f(x)'); title(['symsum による矩形波のフーリエ近似(N = ' num2str(N) ' 項)']); とか、どうでしょうか?

この回答はいかがでしたか? リアクションしてみよう

ご回答いただきありがとうございます! --------------------------------------------------------------------------- 配列のサイズがこの演算に適合しません。 エラー: medis_kadai4_kukei (行 1) kukei = symsum(sin((2 .* k -1) .* x) / (2 .* k -1), k, 1, N); ^^^^^^^^^^^^^^^^^^^^^ ----------------------------------------------------------------------------- とエラー表示されるのですが、この対処法もご存知でしたらお教えいただけると幸いです。

ThanksImg質問者からのお礼コメント

長い時間お付き合いいただきありがとうございます!

お礼日時:5/16 21:17