非線形の曲線を分割し​て範囲ごとに近似する​プログラムが作りたい​です。

4 次查看(过去 30 天)
IORI
IORI 2024-1-30
评论: IORI 2024-1-31
n_TH_L = 20;
for N_I = 1:101
polyfunc_I_LG_TH = polyfit(data_TH, data_TH_LG_I(N_I,:), n_TH_L);
for N_TH = 1:451
TH = 0.1*(N_TH-1);
I_L_TH(N_I, N_TH) = polyval(polyfunc_I_LG_TH, TH);
end
end
現在,polyfitを使って近似を行っています。近似して下の図に示すようなグラフを使っています。
変数data_TH_LG_Iは,101×46のテーブルデータです。
I_L_THにて101×451のデータにして上の図のようなグラフに直しております。
しかし,近似する際に,THが0-7の範囲で近似の次数が少し変わると,近似精度が悪くなります。
そのため,下の図に示すような範囲に分割してpolyfitで近似したいのですがプログラムにて範囲を分けて近似する方法が分かりません。
ご教授お願いいたします。
  2 个评论
Akira Agata
Akira Agata 2024-1-30
サンプル点数が46個の曲線をなめらかに補間して451個にしたい、ということが目的でしたら interp1 を使う方法が簡単かと思います。あるいは今回はなにか理由があって区間ごとに多項式近似をしないといけないということでしょうか?
IORI
IORI 2024-1-31
ご回答ありがとうございます。
まさにおっしゃる通りの目的でございます。
早速,interp1を使ってみます。

请先登录,再进行评论。

回答(0 个)

标签

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!