Scomposizione con Ruffini



  • Scomposizione con Ruffini
    di Frank (utente non iscritto) data: 08/01/2015 13:28:10

    Ciao ragazzi, non sono molto esperto con l'estensione di vba su excel e stavo provando la scomposizione di un'equazione di quinto grado con la regola di Ruffini.

    Riporto il codice di come ho impostato il lavoro, spero mi potrete dare qualche dritta su eventuali errori e su come impostare il continuo. thanks a lot!!
     
    Sub Alex2()
    Dim x As Double, y As Double, i As Integer
    Dim AR(1 To 5) As Double, ARR(1 To 5) As Double
    Dim n As Integer, m As Integer
    
    a1 = 1
    b1 = 4
    c1 = 4
    d1 = 1
    e1 = 4
    f1 = 3
    
    
    AR(1) = x ^ 5 + x ^ 4 + x ^ 3 + x ^ 2 + x + 1
    AR(2) = x2 ^ 5 + x2 ^ 4 + x2 ^ 3 + x2 ^ 3 + x2 + 1
    AR(3) = x3 ^ 5 + x3 ^ 4 + x3 ^ 3 + x3 ^ 2 + x3 + 1
    AR(4) = x4 ^ 5 + x4 ^ 4 + x4 ^ 3 + x4 ^ 2 + x4 + 1
    AR(5) = x5 ^ 5 + x5 ^ 4 + x5 ^ 3 + x5 ^ 2 + x5 + 1
    
    ARR(1) = a1 + b1 + c1 + d1 + e1 + f1
    ARR(2) = a2 + b2 + c2 + d2 + e2 + f2
    ARR(3) = a3 + b3 + c3 + d3 + e3 + f3
    ARR(4) = a4 + b4 + c4 + d4 + e4 + f4
    ARR(5) = a5 + b5 + c5 + d5 + e5 + f5
    
        
        
        For i = 1 To n 'non parto da zero perchè il termine noto è diverso da zero
        
      y = AR(1) * ARR(1)
      
        If AR(1) * ARR(1) <> 0 Then
    
            x = 0 + i Or x = 0 - i
            
         End If
        
        Next
    .......ecc ecc



  • di frank (utente non iscritto) data: 08/01/2015 13:31:42

    pardon, f1=4



  • di Vecchio Frac data: 08/01/2015 13:47:36

    " l'estensione di vba su excel " ...?

    Di sicuro questa (d)istruzione:
    x = 0 + i Or x = 0 - i
    *non* fa probabilmente quel che pensi tu...
    Ma io non so neanche cosa sia la regola di Ruffini e non ho tempo di googlare adesso, quindi spiega un po' meglio e magari ci riusciamo :)





  • di alfrimpa (utente non iscritto) data: 08/01/2015 14:00:31

    Ciao Vecchio Frac

    Solo per il piacere di salutarti ti dico che la regola di Ruffini è una metodologia che in Algebra si utilizza per la scomposizione in fattori dei polinomi.

    Ma i miei ricordi scolastici si fermano qui e per i dettagli meglio attendere quanto ci dirà Frank

    Alfredo





  • di frank (utente non iscritto) data: 08/01/2015 14:01:32

    ciao, innanzitutto grazie per la disponibilità.
    in parole povere la regola di Ruffini serve ad effettuare la scomposizione di polinomi di un qualsiasi grado.
    Quello che intendevo fare con x=0+i Or x=0-i era di trovare il valore di x che rendesse y=0



  • di lepat (utente non iscritto) data: 08/01/2015 15:03:23

    Questo non è un forum di matematica, se tu sai cosa devi fare noi possiamo aiutarti a tradurlo con excel



  • di frank (utente non iscritto) data: 08/01/2015 15:20:11

    ok..mi servirebbero queste due cose:
    1) è giusto scrivere ---> AR(1)*ARR(1) = a1*x^5+b1*x^4+c1*x^3+d1*x^2+e1*x+f1
    2) mi servirebbe trovare il valore di x che renda y=0 (e con y intendo a1*x^5+b1*x^4+c1*x^3+d1*x^2+e1*x+f1)

    grazie in anticipo!



  • di Vecchio Frac data: 08/01/2015 15:32:10

    In generale puoi tradurre qualsiasi formula matematica in una sintassi comprensibile a VBA, che purtroppo non è mathlab e quindi non si può dargli in pasto una formula così come la si scrive in algebra.
    Bisogna creare una funzione che accetti in input tutti i parametri necessari, li mastichi e sputi fuori il risultato dell'operazione.
    Dovremmo chiarirci anche sui termini.
    Dopodiché potremmo anche ragionare sull'opportunità di array indicizzati piuttosto che di variabili singole.
    Inoltre magari ci sono soluzioni come il Solver di Excel che magari sono più adatte allo scopo.

    Cosa ti è noto di VBA e dell'ambiente di Excel?

    Esempio del calcolo dell'area del triangolo:
     
    'la funzione calcola l'area del triangolo note la base e l'altezza
    private function area_triangolo(base as single, altezza as single) as single
        area_triangolo = base * altezza / 2
    end function
    
    'la sub richiama la funzione
    sub calcola_area
    dim area as single 
        area = area_triangolo(15, 6)
        msgbox "L'area del triangolo di base 15 e altezza 6 è: " & area
    end sub
    






  • di frank (utente non iscritto) data: 08/01/2015 15:53:43

    ho giusto fatto un corso di 40 ore all'interno di un master universitario, quindi come avrai notato il mio livello è da beginner..

    Per quanto riguarda il mio esercizio, potresti darmi un'idea di come potrei impostare una funzione o un array? (per trovare il valore di x che renda a1*x^5+b1*x^4+c1*x^3+d1*x^2+e1*x+f1 = 0 ) thanks


  • Discussione chiusa
    di Vecchio Frac data: 09/01/2015 21:14:39

    Discussione chiusa perché duplicata in quest'altra:
    h t t p://www.excelvba.it/Forum/thread.php?f=1&t=7846