Имеется двумерный массив данных x и y, адаптировать значения y под новые значения x

Существует величина Fi(l), где Fi есть величина спектральной плотности потока излучения Солнца на орбите Земли (Вт/м2/нм) и l - длина волны УФ излучения (нм), эти данные представлены в виде таблицы Excel. Вопрос: каким способом можно подобрать значения Fi(l) для новых значений l, пробовал линейной и сплайн интерполяциями - не подходит, возможно, нужно строить математическую модель и уже на её основе что-то вычислять, вдруг кто-то сталкивался с подобным. Перечень данных прикладываю:

 l_Fi       Fi        new_l
_____    ________    ______

  0.5    2.28e-06      0.3
  0.5    2.28e-06     0.44
  0.5    2.28e-06      0.8
  1.5    0.000122      1.8
  2.5    1.51e-05      2.3
  3.5    2.52e-05      3.1
  4.5    3.71e-05      4.4
  4.5    3.71e-05        5
  6.5    4.37e-05     6.15
  9.5    1.65e-05       10
 14.5    2.14e-05       15
 19.5    0.000204       20
 24.5    4.76e-05       25
30.05    0.000625       30
 34.5    6.94e-05       35
 39.5    5.83e-06       40
 44.5    4.39e-06       45
 49.5    3.97e-05       50
 54.5    4.84e-06       55
 59.5    7.78e-06       60
 64.5    2.44e-06       65
 69.5    4.45e-06       70
 74.5    6.16e-06       75
 79.5    1.43e-05       80
 84.5    3.06e-05       85
 89.5    5.98e-05       90
 94.5     1.2e-05       95
 99.5    2.27e-05      100

Ответы (1 шт):

Автор решения: Сергей Галкин

Если вам надо конкретно значения в новых точках получить, то в Матлабе команда interp1 прекрасно с этим справляется. Сначала уберите повторяющиеся значения в l_Fi и Fi Потом наберите код

new_Fi=interp1(l_Fi,Fi,new_l,'pchip','extrap');
new_Fi=new_Fi.*(new_Fi>0);
→ Ссылка