Autore Topic: Disegno di una funzione  (Letto 318 volte)

Offline Andrea1893

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung galaxy S6 edge
  • Sistema operativo:
    Mac OS X 10.12.1
Disegno di una funzione
« il: 11 Maggio 2017, 12:50:43 CEST »
0
Salve a tutti, scrivo qui perchè dopo averci pensato per giorni non sono riuscito ad arrivare ad una soluzione.
Sto scrivendo un app che trova la radice quadrata e disegna un grafico di come ha trovato tale radice iterando la funzione f(x)=1/2(x+radix/x). La radice viene fornita dall'utente e in base a questa radice disegno la funzione con tale codice:
Codice (Java): [Seleziona]
                double i = 0;
                double radix; //già controllato che >0
                int t;
                int PRECISIONE;

                DataPoint[] funzione = new DataPoint[200000];
                for (t = 0; t < funzione.length; t++) {
                    funzione[t] = new DataPoint(i, 0.5 * (i + radix / i));
                    i = i + PRECISIONE;
                }
                LineGraphSeries<DataPoint> serie2 = new LineGraphSeries<>(funzione);
                graph.addSeries(serie2);
                serie2.setColor(BLACK);

Per disegnare il grafico sto utilizzando la libreria GraphView ma il mio problema non è che non funziona, anzi va benissimo.
Il problema è che la funzione viene disegnata a volte bene e a volte molto male(la funzione è fatta da segmenti e non una curva continua).
Il valore di PRECISIONE l'avevo fatto a casi precedentemente, ma la soluzione è molto brutta e non gestisce bene i casi in cui la radice da trovare sia molto piccola (es.0.00001) poichè dovrei fare moltissimi casi per gestire al meglio tutte le funzioni.
Quindi mii rivolgo a voi per capire se potrebbe esserci una soluzione in cui si usano gli esponenziali e i logaritmi per riuscire a gestire tutte le funzioni in modo che la PRECISIONE sia adeguata per riuscire a disegnare tutte le funzioni richieste.
Potrebbe anche essere cambiato il valore 200000 con qualcos'altro.
Per farvi capire meglio se inserisco un numero piccolo la precisione deve essere molto piccola (es. 0.01 potrebbe andare bene PRECISIONE=0.0005, mentre per valori alti, es. 1KK, potrebbe andare bene una precisione pari a 1). Vorrei perciò trovare una relazione che definisca il valore della PRECISIONE senza dover trattare moltissimi casi, prima ne trattavo circa 10 e non erano ancora sufficienti.
Vi prego aiutatemi, Grazie mille