私が求めていることはできないかもしれませんが、皆さんが私を助けてくれることを願っています。複数の多項式フィッティングを使用した曲面プロット
私は2つの2D配列f1(x1)= y1とf2(x2)= y2を持っています。私はこれらの比の表面プロットを作成したいので、z次元は(f2(x2)/ f1(x1))です。残念ながら私は問題に近づく方向から壁に向かっています。
私の主な問題は、各アレイの範囲が異なり、x1は300から50,000になり、x2は300,1200になります。今、私はf2(x2)= f2(1200)すべてのx2> 1200です。しかし、この結びつきは、多項式をこの現実的な方法で適合させることは不可能です(私の最初のデータセットは5次の多項式でうまく再現され、2番目のデータセットは1番目次数多項式)。私が関数を(x2、y2)に当てはめることができる代替方法があるので、境界外のすべての点の境界値が必要ですか?
私の非常に間違った試みは、一見無害な問題は、* SE Aの右の痛みがいかにおかしい
# x1 is an array from 300 to 50,000 in steps of 50
# x2 is an array from 300 to 1,150 in steps of 50
f1_fit = np.poly1d(np.polyfit(x1, y1, 5))
f2_fit = np.poly1d(np.polyfit(x2, y2, 1))
X, Y = np.meshgrid(x1, x2)
Z = (f2_fit(x2)/f1_fit(x1))
、次のようになります。 :D
編集:ここではおもちゃのデータの量は、だから私は私の問題を解決するために管理
x1 = x2 = [ 300. 350. 400. 449. 499. 548. 598. 648. 698. 748.
798. 848. 897. 947. 997. 1047. 1097. 1147. 1196. 1246.
1296. 1346. 1396. 1446. 1496. 1546. 1595. 1645. 1695. 1745.]
y1 = [ 351. 413. 476. 561. 620. 678. 734. 789. 841. 891.
938. 982. 1023. 1062. 1099. 1133. 1165. 1195. 1223. 1250.
1274. 1298. 1320. 1340. 1360. 1378. 1395. 1411. 1426. 1441.]
y2 = [ 80. 75. 70. 65. 62. 58. 58. 52. 48. 46. 44. 41. 38. 35. 32.
32. 29. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30.]
この問題を解決する方法は2つあります。手動補間を行って "中間"データポイントの値を取得するか、scipyの 'interp2d'関数を使ってhttp://docs.scipy.org/doc/scipy/reference/generated/scipyを補間することができます。 interpolate.interp2d.html –
私に遊ぶための入力データを与えたら、それを行う方法を教えてあげます。 –
データを追加しました。 – obtmind