スプライン曲線による図形変化

1 回表示 (過去 30 日間)
Ryosuke KIJIMA
Ryosuke KIJIMA 2020 年 1 月 15 日
編集済み: michio 2020 年 1 月 23 日
上図のような関数を,n=2,n=4,n=12の高次スプライン曲線で表現した場合,どのようなコードを使えばよろしいでしょうか?
イメージとしては、下図のようなものにしたいです.
キャプチャ.PNG

採用された回答

Musashi Ito
Musashi Ito 2020 年 1 月 15 日
多項式近似でよければ、多項式近似の関数があるみたいなので同じようなことができそうです。
% オリジナルデータの作成
x = 0:119;
y = [zeros(1,45) 90*ones(1,30) zeros(1,45)];
% 多項式近似
p2 = polyfit(x,y,2);
yp2 = polyval(p2,x);
p4 = polyfit(x,y,4);
yp4 = polyval(p4,x);
p12 = polyfit(x,y,12);
yp12 = polyval(p12,x);
% グラフの作成
figure
plot(x,y,'o-')
xlim([0 120])
ylim([0 120])
hold on
plot(x,yp2)
plot(x,yp4)
plot(x,yp12)
hold off
legend('元データ','2','4','12')
  2 件のコメント
Ryosuke KIJIMA
Ryosuke KIJIMA 2020 年 1 月 23 日
回答ありがとうございます。
もう一つ質問よろしいでしょうか。
図のようなグラフを作るとき,多項式近似の曲線がオリジナルデータより大きくならないように(y<=600)定義したいです.
どのようなコードを付け足せばいいか教えてください.
michio
michio 2020 年 1 月 23 日
編集済み: michio 2020 年 1 月 23 日
Note: 追加質問分はこちら[関数の範囲選択]にて継続

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeスプライン についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!