Преобразование Лапласа уравнения из «подгонки» - PullRequest
1 голос
/ 08 января 2020

Это продолжение моего предыдущего вопроса: Преобразование Лапласа числовых данных в MATLAB


Я экспериментально собрал данные и хочу взять Лапласа преобразование этого. Однако laplace() нужна модель / уравнение. Я нахожу уравнение подгонки для моделирования моих данных:

[up,lo] = envelope(dat);

x = 1:length(up);
x = x';

f = fit(x,up,'poly3');

Затем для преобразования Лапласа мне нужно передать результат

f = fit(x,up,'poly3');

в

syms f
laplace(f)

Однако на данный момент это выплевывает преобразование f:

laplace(f)

ans =

1/s^2

Если это f

f = 

     Linear model Poly3:
     f(x) = p1*x^3 + p2*x^2 + p3*x + p4
     Coefficients (with 95% confidence bounds):
       p1 =   1.772e-12  (1.593e-12, 1.951e-12)
       p2 =  -2.211e-08  (-2.483e-08, -1.939e-08)
       p3 =   2.847e-05  (1.676e-05, 4.017e-05)
       p4 =      0.2762  (0.2627, 0.2897)

Как мне найти преобразование Лапласа f?

1 Ответ

4 голосов
/ 08 января 2020

Я не знаком с выводом fit, но ваша переменная symboli c должна быть как минимум x, поскольку это ваша зависимая переменная. Затем вы можете создать f самостоятельно:

p1 =   1.772e-12;
p2 =  -2.211e-08;
p3 =   2.847e-05;
p4 =      0.2762;

syms x

f = p1*x.^3 + p2*x.^2 + p3*x + p4;

laplace(f)
ans =

(8402860860456175*((50949907131585781563392*s)/5251788037785109375 + 1))/(295147905179352825856*s^2) - 6682337467919863/(151115727451828646838272*s^3) + 26323556995364325/(2475880078570760549798248448*s^4)

fit() дает вам переменную типа fitobject, к которой, если я правильно понимаю ее документацию , можно получить доступ. как структура. Это означает, что вы должны иметь возможность программно использовать подобранные параметры для построения своей функции символики c x.

...