How to take an integral symbolically and then convert it to type double?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Walter Roberson
le 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.
Réponse acceptée
VBBV
le 16 Mai 2023
Modifié(e) : VBBV
le 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 commentaire
VBBV
le 16 Mai 2023
Assuming some random data, you can specify the integration variable t as the argument and do symbolic integration
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Assumptions dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!