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

조회 수: 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!