IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Somme de Riemann


Sujet :

R

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Somme de Riemann
    Hello!

    Je suis débutante dans R mais j'essaye vraiment de comprendre ce que j'écris..

    Je dois faire une somme de Riemann pour une fonction et je dois changer la borne a (b est toujours égale à 1). Le premier a= 1/10 ; le deuxième a= 1/100 et le troisième = 1/1000.

    Je me suis lancée dans l'écriture de la somme de Riemann mais je rencontre un problème déjà à ce niveau..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    myRiemann=function(f,a,b,h){
    + xi= a+ h/2
    + A=0
    + while (x<b){
    + fi=f(xi)
    + A=A+f*fi
    + xi=xi+h
    + }
    + return (A)
    MyRiemann= ?
    Je ne sais déjà pas comment "fermer", où intégrer le "a"...
    Après je pensais les définir plus bas avec b=1 et refaire 3 fois pour a.

    Désolée si je vous embête avec mes questions d'étudiante

  2. #2
    Membre confirmé
    Homme Profil pro
    MCU
    Inscrit en
    Juillet 2010
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : MCU
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2010
    Messages : 185
    Points : 486
    Points
    486
    Par défaut
    Bonjour,

    Je ne sais pas ce que sont les sommes de Riemann mais concernant votre code:
    • x n'est pas défini (vous parliez de xi?)
    • f semble être une fonction et vous multipliez une fonction par le résultat de celle-ci (f*fi)?


    De plus, merci d'utiliser les balises à votre disposition pour encadrer votre code et le rendre plus lisible.

    Après, quand vous aurez défini votre algorithme et votre fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(a in c(10, 100, 1000)) {
     MyRiemann(a)
    }
    devrait suffire.

    HTH

    Vincent

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    http://ljk.imag.fr/membres/Bernard.Y...me_riemann.jpg

    La somme de Riemann a pour but d'approximer l'aire sous la courbe en faisant la somme des rectangles. x1 C'est mes "largueurs" de triangle et fxi c'est donc le point qui s'y réfère sur le graphique et qui fait la hauteur.
    x1 * fxi est donc un rectangle qu'on additionne à un autre, etc. Jusqu'à ce qu'on bute sur la borne b..
    Donc je sais pas vraiment si ça "code" pour ce que je voulais vraiment :/

  4. #4
    Futur Membre du Club
    Profil pro
    Spécialités : Statistique Computationelle, Apprentissage Artificiel, Data Mining
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Spécialités : Statistique Computationelle, Apprentissage Artificiel, Data Mining

    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 8
    Points
    8
    Par défaut Integrale de Riemann avec R
    Salut,
    je crois que ton problème est que tu veux tout calculer à la fois, quelques principes de R et voilà. J'ai documenté le code pour que tu comprennes les points clés.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    f <- function(x){2*exp(x)-5*log(x)}   # fonction à évaluer
    a <- c(1/10, 1/100, 1/1000)   # les valeurs de a à utiliser 
    b <- 1
     
    Riemann <- function(a,b,f){
         n <- 1000   # se fixer un nombre "n" (suffisamment grand)
         pas <- (b-a)/n   # calculer l'amplitude de chaque intervalle
         x <-  seq(from=a, to=b, by=pas)   # générer les points d'estimation de f
         fx <- f(x)   # ??? En fait, les fonctions de R sont d'ordre supérieur (voir le lambda calcul en programmation fonctionnelle)
         Sr <- pas*sum(fx)   # calcul de l'integrale de Riemann !
         return(Sr)
         }
     
    Riemann <- Vectorize(Riemann, vectorize.args="a")   # vectoriser le paramètre a !!! (on exploite le fait que R est un langage vectoriel)
     
     # application aux différentres valeurs de a
     
     results <- Riemann(a,b,f)   # Pas de problème car "a" est vectorisé.
     names(results) <- paste("R",round(a,length(a)),sep="*")   # Juste pout rendre les choses propres
     
    cat("\nLes différentes sommes de Riemann sont :\n\n"); print(results);cat("\n") # Affichage des résultats
     
     
    #### Vérification des résultats avec la fonction intégrale propre à R #### (attention, il s'agit d'une approximation quadratique, pas l'intégrale de Riemann !)
     
    integrate(f, lower=1/10, upper=1, subdivisions=1000)
    integrate(f, lower=1/100, upper=1, subdivisions=1000)
    integrate(f, lower=1/1000, upper=1, subdivisions=1000)
     
    # NB:la fonction "integrate" de R n'est pas vectorizée, on peut le faire si on le veut, mais c'est pas nécessaire ici (on n'a que 3 intégrales à calculer)

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/12/2012, 23h21
  2. [math] somme de plusieurs vecteurs à 3 dimensions
    Par teska dans le forum Mathématiques
    Réponses: 5
    Dernier message: 04/06/2003, 21h40
  3. - [procédure stockée] - Problème de Somme
    Par korrigann dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 20/05/2003, 11h51
  4. [CR ?] Somme d'heure sous Crystal ?
    Par Peter PARKER dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 17/04/2003, 16h24
  5. xsl : sous sommes?
    Par Slash dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 31/03/2003, 13h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo