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

1 view (last 30 days)
Ryosuke KIJIMA
Ryosuke KIJIMA on 15 Jan 2020
Edited: michio on 23 Jan 2020
上図のような関数を,n=2,n=4,n=12の高次スプライン曲線で表現した場合,どのようなコードを使えばよろしいでしょうか?
イメージとしては、下図のようなものにしたいです.
キャプチャ.PNG

Accepted Answer

Musashi Ito
Musashi Ito on 15 Jan 2020
多項式近似でよければ、多項式近似の関数があるみたいなので同じようなことができそうです。
% オリジナルデータの作成
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 Comments
Ryosuke KIJIMA
Ryosuke KIJIMA on 23 Jan 2020
回答ありがとうございます。
もう一つ質問よろしいでしょうか。
図のようなグラフを作るとき,多項式近似の曲線がオリジナルデータより大きくならないように(y<=600)定義したいです.
どのようなコードを付け足せばいいか教えてください.
michio
michio on 23 Jan 2020
Edited: michio on 23 Jan 2020
Note: 追加質問分はこちら[関数の範囲選択]にて継続

Sign in to comment.

More Answers (0)

Categories

Find more on スプライン in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!