Inverse Laplace plot error
5 次查看(过去 30 天)
显示 更早的评论
Guys, I have a problem with this code, I've been trying to fix it for an hour and nothing.
When I plot the inverse laplace graph, the following error appears:
Error using plot
Data must be numeric, datetime, duration or an array convertible to
double.
clear all
close all
clc
syms s t;
D=23;
QT=348000;
Tc=300;
F= (((sqrt(2)*sqrt(D^2*QT^2/s)*8*D^2*QT^2-3*Tc^2*s^2))/(8*D^2*QT^2-Tc^2*s^2));
f=ilaplace (F);
f1=symfun(f,t)
t=[0:0.1:200];
plot(t,f1(t))
Can someone help me?
3 个评论
Star Strider
2023-1-26
The function won’t plot, however 1 will, since the objective is to plot the function.
回答(1 个)
Paul
2023-1-26
Hi PTK,
f1 is a symfun, so you could use fplot, or you could evaluate it at bunch of points and convert to double and the use plot, as shown below.
However, in this case ilaplace was not able to find a closed-form expression for f1, so neither approach will work. Are you sure the sqrt(1/s) is what's intended.
Also, f1(t) contains a dirac delta function. So even if f1 was in closed form otherwise, be careful using fplot because it ignores dirac delta functions, and evaluationg numerically can be tricky as well.
clear all
close all
clc
syms s t;
D=23;
QT=348000;
Tc=300;
F= (((sqrt(2)*sqrt(D^2*QT^2/s)*8*D^2*QT^2-3*Tc^2*s^2))/(8*D^2*QT^2-Tc^2*s^2))
f=ilaplace (F);
f1=symfun(f,t)
t=[0:0.1:200];
plot(t,double(f1(t)))
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Calculus 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!