How to take an integral symbolically and then convert it to type double?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
L'O.G.
am 16 Mai 2023
Kommentiert: Walter Roberson
am 16 Mai 2023
How do I take the following integral symbolically? And convert it to double? I have a 1000 x 1 numeric vector of type double for A(t).
The following takes a minute or two to run and I'm not sure how to plot it to check.
syms t omega real
int(A*sin(omega*t),0,2*pi/omega)
6 Kommentare
Walter Roberson
am 16 Mai 2023
format long g
syms t omega real
A = rand(5,1)
Asym = sym(A);
symbolic_result = int(Asym*sin(omega*t),0,2*pi/omega)
omega = abs(randn())
numeric_result = integral(@(t) A .* sin(omega.*t), 0, 2*pi./omega, 'Arrayvalued', true)
Zero to within round-off error.
Akzeptierte Antwort
VBBV
am 16 Mai 2023
Bearbeitet: VBBV
am 16 Mai 2023
syms t omega real
A = rand(1000,1);
% specify the integration variable t as the argument
I = double(vpa(int(A.*sin(omega*t),t,0,2*pi/omega),2))
1 Kommentar
VBBV
am 16 Mai 2023
Assuming some random data, you can specify the integration variable t as the argument and do symbolic integration
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Assumptions finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!