{OFF} Как я могу получить функцию сплайн-интерполяции в Matlab? - PullRequest
0 голосов
/ 08 июня 2018

У меня есть данные лабораторных испытаний по кривой разряда батареи.Данные состоят из 22 точек напряжения против времени.В Matlab я проследил кривую интерполяции через сплайн-интерполяцию, но я хочу сделать производную от этого графика, как я могу это сделать?

введите описание изображения здесь

Код

x = [0; 3600    ;7200   ;10800; 14400;  18000;  21600;  25200   ;28800;...
32400;  36000   ;39600  ;43200  ;46800; 50400   ;54000; 57600;  61200;...
64800   ;68400  ;72000; 74880];
y = [12.75; 12.40;  12.38;  12.34;  12.30;  12.26   ;12.21  ;12.17  ;...
 12.12; 12.07;  12.02   ;11.97  ;11.91  ;11.85; 11.79;  11.72;  11.65;...
 11.56  ;11.46  ;11.35  ;11.17; 10.59];

f = fit( x, y,'cubicinterp')

1 Ответ

0 голосов
/ 08 июня 2018

Вы можете использовать gradient из y/x:

f = fit( x, y,'cubicinterp')
df = gradient(f(x)); % f'x
dx = gradient(x);    % dx

dfx = df ./ dx;
plot(x, y, x, dfx); 
...