Matlab:équation indéterminée comme argument d'une fonction
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

Matlab:équation indéterminée comme argument d'une fonction



  1. #1
    inviteb0635a97

    Unhappy Matlab:équation indéterminée comme argument d'une fonction


    ------

    Bonjour aux connaisseurs de Matlab,
    je tente désespérément de créer une fonction qui me donnerait comme résultat une somme de Riemann, pour me donner l'aire sous une courbe entre deux bornes(addition successive de l'aire d'un certain nombre de rectangles). Les arguments d'entrée doivent être la borne supérieure, la borne inférieur, le nombre de divisions de la plage d'intégration,et finalement la fonction à intégrer. De manière théorique, il suffit de multiplier la largeur des rectangles par la valeur de f(x) pour des valeurs de x correspondant au centre de chaque rectangle. Je vais vous donner un aperçu de ce que j'ai fait:

    function res=int_num(equation, a,b,n)
    %a=borne inferieure, b=borne superieure, n=nombre de divisions, equation=fonction a integrer,l=largeur des rectangles,x=position des x centraux,y=valeur de equation pour les x centraux

    l=(a-b)/n;
    x=((a+0.5*l):lb-0.5*l));
    y=equation(x);
    aires=x.*y;
    res=sum(aires)

    Une fois que j'ai sauvegardé ma fonction, je tente de l'appeler dans la fenêtre de commande, en écrivant:

    reponse=int_num(2.*x,0,2,10)
    il me sort un message d'erreur me disant que x n'a pas été défini.
    Je veux que ma fonction reste valable pour n'importe quelle équation, mais je n'arrive pas à la faire fonctionner.
    Que dois-je faire??

    Merci infiniment de venir à mon secours.
    boutch_97

    -----

  2. #2
    lou_ibmix_xi

    Re : Matlab:équation indéterminée comme argument d'une fonction

    Salut,
    Je pense qu'il faut que tu lui donnes ta fonction sous forme d'une chaîne de caractères, et tes autres arguments (bornes inf, sup et pas) sous la forme d'un vecteur x = [a : (b-a)/n : b]. Ensuite tu utilises la fonction 'eval', ça ressemblerait à ça:

    Code:
    function res=int_num(equation, x)
    %equation : chaine de caracteres contenant la fonction a integrer
    %x : support d'integration
    y = eval (equation);
    res = sum (x .* y);
    Par exemple, pour evaluer ton integrale de sin(x)/x entre -pi et pi par pas de 1e-3:

    Code:
    equation = 'sin (x) / x';
    x = -pi : 1e-3 : pi;
    int_num(equation, x)

Discussions similaires

  1. Résolution d'une équation sous Matlab
    Par invite4621550e dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 07/05/2007, 16h38
  2. limite fonction avec forme indéterminée
    Par invite7b559047 dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 06/10/2006, 10h16
  3. Equation d'une fonction à partir d'une courbe ou un tableau de valeur
    Par invitede4dbaab dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 15/12/2005, 06h54
  4. Langage C : pointeur sur une fonction en argument ...
    Par invite1a99f682 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 27/07/2005, 10h29
  5. équation d'une fonction a partir d'un graphique
    Par invite01251415 dans le forum Mathématiques du supérieur
    Réponses: 11
    Dernier message: 10/11/2004, 16h17
Découvrez nos comparatifs produits sur l'informatique et les technologies.