Mathlab problema con grafico

di il
1 risposte

Mathlab problema con grafico

Buon giorno, ho un problema nella visualizzazione di un grafico a 5 funzioni.
In facoltà mi chiedono di visualizzare un unico grafico contenente le seguenti 5 funzioni:

x^3-3x^2+7x+50
3x^2-6x+7
(x^3-3x^2+7x+50)/x
(x^3-3x^2+7x)/x
50/x

Plottate singolarmente ottengo grafici ben visibili, ma quando unisco le 5 funzioni col comando hold on, il risultato è che ottengo scale differenti con conseguente poca visibilità delle linee del grafico.
E' possibile fare in maniera che il grafico delle 5 funzioni disponga di scale diverse per ogni funzione in maniera che possano essere visualizzate in maniera ben visibile?
Grazie anticipatamente per quanti vorranno essermi di aiuto.

1 Risposte

  • Re: Mathlab problema con grafico

    Domanda molto interessante!
    E anche le funzioni sono interessanti!
    Le due funzioni critiche, per la visualizzazione del grafico sono la 3 e la 5 a causa della variabile al denominatore.
    L'aspetto interessante da catturare nel grafico è l'andamento delle funzioni nell'intorno di 0.
    Si può scegliere come range di valori della x

    x=-3:0.1:5;

    il piccolo passo permetterà di avere diversi punti nell'intorno dello 0.
    Il limite maggiore della x, più grande (in valore assoluto) di quello inferiore, consente di evidenziare l'andamento delle funzioni 2 e 4.

    Per ovviare all'inconveniente rappresentato dal fatto che le funzioni 3 e 5 tendono a +Inf e -Inf al tendere di x a 0 che "maschera" i valori assunti dalle altre funzioni, si può costruire un grafico con due sistemi di assi cartesiani sovrapposti, suddividendo tra di essi il plottaggio delle funzioni (funzioni 1, 2 e 4 nel primo, funzioni 3 e 5 nel secondo).

    Per evitare il mascheramento del primo sistema di assi da parte del secondo, per questo si possono settare gli attributi

    color=none
    YAxisLocation=right

    rimane da identificare in modo chiaro quali curve del grafico facciano siano riferite alla scale dell'asse "y" di sinistra e quali a quella di destra; questo si può fare lavorando sulla legenda del grafico o aggiungendo delle notazioni sullo stesso.
    
    x=-2:.01:3;
    
    y1=x.^3-3.*x.^2+7*x+50;
    y2=3*x.^2-6*x+7;
    y3=(x.^3-3*x.^2+7.*x+50)./x;
    y4=(x.^3-3*x.^2+7.*x)./x;
    y5=50./x;
    
    a1=axes
    plot(x,y1,'r')
    grid on
    hold on
    plot(x,y2,'k')
    plot(x,y4,'m')
    
    a2=axes
    plot(x,y3,'c')
    hold on
    plot(x,y5,'color',[1 .5 0])
    set(a2,'color','none')
    set(a2,'YAxisLocation','right')
    
    
    Hope this helps
Devi accedere o registrarti per scrivere nel forum
1 risposte