1

'n'独立変数と従属変数を含むデータに対して線形補間を実行する必要があります。現在scipy.interpolate.LinearNDInterpolator、補間を実行するために使用しています。ただし、(変数の) すべての値に定数を掛けてデータ セットの範囲を変更すると、補間後の結果が完全に変わります。

これを具体的な例で説明しましょう。

 X = [[0.00000000e+00, 1.00000000e+00], [0.00000000e+00, 8.00000000e+00], [0.00000000e+00, 1.60000000e+01], [0.00000000e+00, 3.20000000e+01], 
      [0.00000000e+00, 6.40000000e+01], [0.00000000e+00, 1.28000000e+02], [1.00000000e-06, 1.00000000e+00], [1.00000000e-06, 8.00000000e+00], 
      [1.00000000e-06, 1.60000000e+01], [1.00000000e-06, 3.20000000e+01], [1.00000000e-06, 6.40000000e+01], [1.00000000e-06, 1.28000000e+02], 
      [1.00000000e-06, 2.56000000e+02], [1.00000000e-06, 5.12000000e+02], [1.00000000e-05, 1.00000000e+00], [1.00000000e-05, 8.00000000e+00], 
      [1.00000000e-05, 1.60000000e+01], [1.00000000e-05, 3.20000000e+01], [1.00000000e-05, 6.40000000e+01], [1.00000000e-05, 1.28000000e+02], 
      [1.00000000e-05, 2.56000000e+02], [1.00000000e-05, 5.12000000e+02], [1.00000000e-04, 1.00000000e+00], [1.00000000e-04, 8.00000000e+00], 
      [1.00000000e-04, 1.60000000e+01], [1.00000000e-04, 3.20000000e+01], [1.00000000e-04, 6.40000000e+01], [1.00000000e-04, 1.28000000e+02], 
      [1.00000000e-04, 2.56000000e+02], [1.00000000e-04, 5.12000000e+02], [1.00000000e-03, 1.00000000e+00], [1.00000000e-03, 8.00000000e+00], 
      [1.00000000e-03, 1.60000000e+01], [1.00000000e-03, 3.20000000e+01], [1.00000000e-03, 6.40000000e+01], [1.00000000e-03, 1.28000000e+02], 
      [1.00000000e-02, 1.00000000e+00], [1.00000000e-02, 8.00000000e+00], [1.00000000e-02, 1.60000000e+01], [1.00000000e-02, 3.20000000e+01], 
      [1.00000000e-02, 6.40000000e+01], [1.00000000e-02, 1.28000000e+02]]
 y = [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 6.99000000e-17, 5.60000000e-16, 1.12011400e-15, 2.24034300e-15, 
      4.48080000e-15, 7.56193140e-14, 2.17896343e-13, 5.02450401e-13, 6.99000000e-16, 5.60000000e-15, 1.12011430e-14, 2.24034290e-14, 4.48080000e-14, 8.96171430e-14, 
      1.79235429e-13, 3.58472001e-13, 6.99000000e-15, 5.60000000e-14, 1.12011429e-13, 2.24034286e-13, 4.48080000e-13, 8.96171429e-13, 1.79235429e-12, 3.58472000e-12, 
      6.99000000e-14, 5.60000000e-13, 1.10000000e-12, 2.20000000e-12, 4.50000000e-12, 9.00000000e-12, 6.99000000e-13, 5.60000000e-12, 1.12000000e-11, 2.24000000e-11, 
      4.48000000e-11, 8.95000000e-11]

値の補間を実行すると[7.10000000e-05, 18]、結果が得られます7.95281146e-1410^3最初の列と結果の列を掛けると、得10^12られる結果はまったく異なります。0.09352に相当するものを取得し9.352e-14ます。

  • これらのケースで scipy が異なる結果を出している理由について、誰かが光を当てることができますか?
  • これらの結果のうち、正しいものはどれですか? (私はExcelを使ってみましたが、すぐにscipyが別のテクニックを使っていることに気付きました).
  • この問題を解決するにはどうすればよいですか?
4

2 に答える 2