[C++] Equazioni di terzo grado

di il
1 risposte

[C++] Equazioni di terzo grado

Salve a tutti! Volevo cheidervi aiuto a riguardo di {vedi titolo thread}. Ossia equazioni di terzo grado.
Usando le regole di cardano, ossia lo sviluppo per radicali, so risolvere un'equazione di terzo grado con opportune sostituzioni ecc..
Quando devo scrivere in C++ un programma per le equazioni di secondo grado va tutto perfetto. Il problema sorge quando devo implementare quelle di terzo grado perché vorrei tener conto anche delle soluzioni complesse, i.e. radici quadrate di quantità negative.
Il punto è che mi blocco, e non ho trovato ancora alcuna dispensa/libro che affronti l'argomento, né tantomeno mi spieghi come introdurre la possibilità di radici negative..
ho cercato davvero ovunque! Avreste qualche indizio/aiuto?
E' l'unico problema del codice (anche se non è poco, lo ammetto).
grazie a tutti!!

1 Risposte

  • Re: [C++] Equazioni di terzo grado

    Ciao, provo a vedere se si riesce a risolvere. Premetto che non conosco il metodo di Cardano, quindi il mio è un ragionamento che ha dei limiti.
    Domanda: le soluzioni complesse le trovi solo alla fine o ti trovi ad operare con quantità immaginarie già durante l'applicazione dell'algoritmo?
    Se il problema è che ti compare un numero complesso solo alla fine, quindi quando non devi più usarlo per altre operazioni, potresti fare un controllo con un if e, se la quantità sotto radice è negativa, cambi il segno e fai un cout andando ad inserire manualmente 'i' alla fine del tuo numero, es:
    
    
    if(radicando<0){
    soluzione=sqrt((-1)*radicando);
    
    std::cout <<"La soluzione complessa è: " <<soluzione <<"i" <<std::endl;
    }
    
    
    Se invece ti trovi a dover compiere delle operazioni sulla quantità immaginaria questo metodo non penso funzioni, dovresti separare parte reale ed immaginaria. Scrivendolo in forma trigonometrica o esponenziale non migliora?
    Ripeto, non conoscendo l'algoritmo di Cardano posso fare poco, spero però di averti dato qualche idea per risolvere
Devi accedere o registrarti per scrivere nel forum
1 risposte