How to compute integral when one of the limits is a vector
    3 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
    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!
0 commentaires
Réponse acceptée
  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
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur Numerical Integration and Differentiation 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!