Use of 'ArrayValued' in Matlab numerical integration
75 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Renzo Del Fabbro
le 23 Sep 2022
Réponse apportée : Torsten
le 23 Sep 2022
Why in Matlab numerical integration
f = @(x) 5;
integral(f,0,2,'ArrayValued',true)
needs 'ArrayValued',true ... while
f = @(x) x;
integral(f,0,2)
don't need it?
0 commentaires
Réponse acceptée
Davide Masiello
le 23 Sep 2022
Modifié(e) : Davide Masiello
le 23 Sep 2022
Let's take a look at the error message
f = @(x) 5;
integral(f,0,2)
The important line here is "Output of the function must be the same size as the input".
I believe this could be due to the fact that integral passes a whole array of x-values in the attempt to integrate the function within the default tolerances.
If your functions does not depend on x, then the ouput would be a single scalar and therefore different from the input.
Specifing 'ArrayValued' as true, you tell the solver that the output must be an array the same size as the x passed to it.
In fact, you could try to integrate an equivalent function where the dependance on x is explicit, and it would work without specifying 'ArrayValued' as true.
f = @(x) 5*(x-x+1);
integral(f,0,2)
10
Plus de réponses (1)
Voir également
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!