Имеется двумерный массив данных 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);