How to compute integral when one of the limits is a vector

6 vues (au cours des 30 derniers jours)
Maurilio Matracia
Maurilio Matracia le 21 Sep 2020
Commenté : Ameer Hamza le 21 Sep 2020
Hello everyone,
I am trying to use the function integral to evaluate a function handle in a vector, such as:
FunctionToEvaluate = @(x) integral(@(z) z.^2+1, 0, x, 'ArrayValued',1)
EvaluatedFunction = FunctionToEvaluate([1 2 3])
but I am getting an error saying:
Error using integral (line 85)
A and B must be floating-point scalars.
Is there any way to avoid this error and evaluate the function in a vector?
Thank you in advance for your help!

Réponse acceptée

Ameer Hamza
Ameer Hamza le 21 Sep 2020
Modifié(e) : Ameer Hamza le 21 Sep 2020
If you want to use all the points in x as the limits one after the other, then following is the way to do that
FunctionToEvaluate = @(x) arrayfun(@(x_) integral(@(z) z.^2+1, 0, x_) , x);
EvaluatedFunction = FunctionToEvaluate([1 2 3])
Result
>> EvaluatedFunction
EvaluatedFunction =
1.3333 4.6667 12.0000
  2 commentaires
Maurilio Matracia
Maurilio Matracia le 21 Sep 2020
That's great, thank you very much!
Ameer Hamza
Ameer Hamza le 21 Sep 2020
I am glad to be of help!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB 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!

Translated by