begin process at 2010 02 10 16:56:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Algorithme

 > 

Maths

 > 

ca bug


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ca bug

jeudi 10 avril 2008 à 12:15:24 | ca bug

alejandro20

bonjour,
voila j'essaye de creer une interface  pour calculer le zero par dichotomie d'une fonction ln ou exp
le probleme c que je cherche a verifier f(a)*f(b)<0 qlq soit a et b
en gros je cherche une fonctionn aleatoire qui pourrait me donner des entiers négatifs et positifs a et b :
et en plus a la fin j'obtiens un encadrement avec mes valeurs initialisées c et d (1 et 4)
je suis debutante soyez indulgent
merci d'avance
je suis en galere, ca marche pas
Public Class calculzero

    Dim c, d As Decimal

    Dim epsilon As Decimal
    Dim a, b, x, m As Decimal
  
    Private Sub cmdcalculzero_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdcalculzero.Click
        a = Val(projet1.txta.Text)
        b = Val(projet1.txtb.Text)
        
        epsilon = Val(txtepsilon.Text)

        Dim f_m, f_d As Double
        Dim f_c As Double
        c = 1
        d = 4
        If projet1.optln.Checked = True Then
            f_c = (a * Math.Log(c) + b)
            f_d = (a * Math.Log(d) + b)
            f_m = (a * Math.Log(m) + b)
        ElseIf projet1.optexp.Checked = True Then

            f_c = (a * Math.Exp(c) + b)
            f_m = (a * Math.Exp(m) + b)
            f_d = (a * Math.Exp(d) + b)
        End If
        Do While f_c * f_d > 0

            Randomize()
            c = CInt(Int((50 * Rnd()) + 1))
            d = CInt(Int((-50 * Rnd()) + 1))
        Loop

        Do While (c - d) > 2 * epsilon
            m = (c + d) / 2
            If projet1.optln.Checked = True Then
                f_m = (a * Math.Log(m) + b)
            ElseIf projet1.optexp.Checked = True Then
                f_m = (a * Math.Exp(m) + b)
            End If

          
            If f_c * f_m > 0 Then
                c = m
            Else
                d = m
            End If
        Loop

      

        If c < d Then
            txtresultatzero.Text = c & " < k < " & d
        Else
            txtresultatzero.Text = d & " < k < " & c
        End If
    End Sub

    Private Sub cmdquittercalculzero_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdquittercalculzero.Click
        Me.Close()
    End Sub
End Class
jeudi 10 avril 2008 à 13:19:08 | Re : ca bug

oommeeggaa3d

tu pourrais commenter un peu ton code ?

ah au fait, le dichotomie pour trouver le zero d'une fonction Exponentielle, à mon avis, c'est pas gagné :-)
jeudi 10 avril 2008 à 17:52:05 | Re : ca bug

alejandro20

oui pas faux pour exp!!!!!!
je c pas ou ca bug
merci d'avance !!
Public Class calculzero
    Dim i As Integer
    Dim c, d As Decimal
    Dim MilieuInterval As Decimal
    Dim epsilon As Decimal
    Dim a, b, x, m As Decimal

    Private Sub cmdcalculzero_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdcalculzero.Click
        a = Val(projet1.txta.Text)
        b = Val(projet1.txtb.Text)
       
        epsilon = Val(txtepsilon.Text)
        a = Val(projet1.txta.Text) ' lecture des valeurs entrées par l'utilisateur dans une autre feuille projet1'
        b = Val(projet1.txtb.Text)

        epsilon = Val(txtepsilon.Text)

        Dim f_m, f_d As Double
        Dim f_c As Double
        'Je sais pas si il faut initialiser c et d et m pour que ca marche'

        f_c = (a * Math.Log(c) + b)
        f_d = (a * Math.Log(d) + b)
        f_m = (a * Math.Log(m) + b)

        Do While f_c * f_d > 0 ' il faut trouver deux nombres c et d tel que f_c*f_d<0 car comme ln est continue entre les deux il y aura le zero"
            Dim changement_signe As Integer
            Randomize()
            changement_signe = Rnd() * (-1) + 1 'on aura 0 ou 1 au hasard
            If changement_signe = 0 Then
                c = CInt(Int((100 * Rnd() + 1)))
                d = CInt(Int((100 * Rnd() + 1)))
            Else : c = CInt(Int((100 * Rnd() + 1))) * (-1)
                d = CInt(Int((100 * Rnd() + 1))) * (-1)
            End If

        Loop
        f_c = (a * Math.Log(c) + b)
        f_d = (a * Math.Log(d) + b)

        Do While (c - d) > 2 * epsilon ' precision de l'encadrement'
            m = (c + d) / 2 ' determination du milieu de l'intervalle [c,d] pour un encadrement plus precis'

            f_m = (a * Math.Log(m) + b)

            If f_c * f_m > 0 Then
                c = m
            Else
                d = m
            End If
        Loop

        If c < d Then
            txtresultatzero.Text = c & " < k < " & d ' affichage de l'encadrement trouvé'
        Else
            txtresultatzero.Text = d & " < k < " & c
        End If
    End Sub

    Private Sub cmdquittercalculzero_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdquittercalculzero.Click
        Me.Close()
    End Sub
End Class
jeudi 10 avril 2008 à 17:53:22 | Re : ca bug

alejandro20

oui pas faux pour exp!!!!!!
je c pas ou ca bug
merci d'avance !!
Public Class calculzero
    Dim epsilon As Decimal
    Dim a, b, x, m As Decimal

    Private Sub cmdcalculzero_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdcalculzero.Click
      
        a = Val(projet1.txta.Text) ' lecture des valeurs entrées par l'utilisateur dans une autre feuille projet1'
        b = Val(projet1.txtb.Text)

        epsilon = Val(txtepsilon.Text)

        Dim f_m, f_d As Double
        Dim f_c As Double
        'Je sais pas si il faut initialiser c et d et m pour que ca marche'

        f_c = (a * Math.Log(c) + b)
        f_d = (a * Math.Log(d) + b)
        f_m = (a * Math.Log(m) + b)

        Do While f_c * f_d > 0 ' il faut trouver deux nombres c et d tel que f_c*f_d<0 car comme ln est continue entre les deux il y aura le zero"
            Dim changement_signe As Integer
            Randomize()
            changement_signe = Rnd() * (-1) + 1 'on aura 0 ou 1 au hasard
            If changement_signe = 0 Then
                c = CInt(Int((100 * Rnd() + 1)))
                d = CInt(Int((100 * Rnd() + 1)))
            Else : c = CInt(Int((100 * Rnd() + 1))) * (-1)
                d = CInt(Int((100 * Rnd() + 1))) * (-1)
            End If

        Loop
        f_c = (a * Math.Log(c) + b)
        f_d = (a * Math.Log(d) + b)

        Do While (c - d) > 2 * epsilon ' precision de l'encadrement'
            m = (c + d) / 2 ' determination du milieu de l'intervalle [c,d] pour un encadrement plus precis'

            f_m = (a * Math.Log(m) + b)

            If f_c * f_m > 0 Then
                c = m
            Else
                d = m
            End If
        Loop

        If c < d Then
            txtresultatzero.Text = c & " < k < " & d ' affichage de l'encadrement trouvé'
        Else
            txtresultatzero.Text = d & " < k < " & c
        End If
    End Sub

    Private Sub cmdquittercalculzero_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdquittercalculzero.Click
        Me.Close()
    End Sub
End Class


Cette discussion est classée dans : end, bug, exp, if, then


Répondre à ce message

Sujets en rapport avec ce message

VBA Graphe [ par piekehle ] Bonjour,   Je suis sous powerpoint 2000. N'importe quel maniere de faire mon graphe a partir des valeurs A,B,C,D m'interesse. Ce que j'ai essayer c'es Joindre une pièce jointe à un email avec Winsok [ par basamir ] Bonjour,je viens de recuperer un code de vbfrance qui permet d'envoyer des emails grace à winsok et qui marche avec quelques smtp uniquement, j'ai che menu déroulant [ par mounirt82 ] Associer un menu déroulant à plusieurs feuillesMessage :Je voudrai savoir comment à partir d'une liste déroulante placée sur le feuille 1 d'un classeu Consolidation multi fichiers Excel [ par xRay13 ] Bonjour,j'utilise une macro qui me permet de consolider des valeur de cellules  presentes dans différentes feuilles d'un meme classeur avec pour denom créer un lien entre menu déroulant et plusieurs feuilles excel [ par mounirt82 ] Sujet : Associer un menu déroulant à plusieurs feuillesMessage :Je voudrai savoir comment à partir d'une liste déroulante placée sur le feuille 1 d'un Copie de fichier [ par fabricioliking ] J'ai un petit soucie avec mon code, en effet je l'ai battis grâce à des sources et des cours sur vbfrance et developpez.com et j'ai surement mal compr POUR LES WEBMASTERS CURIEUX DE LA POSITION DE LEUR SITE SUR GOOGLE [ par mogador ] bonjour,    j'ai bien essayé le code source : http://www.vbfrance.com/article.aspx picturebox fondu [ par DIJONCTER ] bonjour a tous !Voila je fais défiler des images (picturebox) à l'aide d'un Timer. Le problème c'est que j'aimerais qu'a chaque changement d'image il Recherche multicritere entre 2 dates [ par biloute91 ] Bonjour,j'ai un USF qui me permet de trouver le nombre d'éléments selon plusieurs critères. Mon problème est que lorsque je souhaite intégrer un critè Problème pour remplir un tableau [ par FCNAlex ] Bonjour, Je suis actuellement en stage et je dois développer un petit outil pr un suivi de temps de changement de série.J'utilise donc VB pour remplir


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales