[MatLab, Progetto Matlab Aiuto]

Messaggioda Antonio93 » 20/04/2017, 15:49

Salve ragazzi ho questo progetto da fare entro martedì volevo un aiuto da parte vostra come impostarlo cioè non ho capito ho questa funzione combinando con x<0 e x>0 cosa dovrei fare ragazzi ???? chi mi aiuta ?? Non voglio sapere i punti come si fanno perchè li so fare (credo) non riesco ad impostare la funzione cioè
la mia funref= .... e che significa che devo combinarla con x>0 e x>0 per poi fare gli altri punti...

Perchè ho sempre fatto questo tipo di esercizio che il prof mi dava la funzione di riferimento ed io svolgevo i punti ora con sto x<0 e x>0 non so proprio da dove iniziare...

Immagine
Antonio93
Starting Member
Starting Member
 
Messaggio: 1 di 14
Iscritto il: 20/04/2017, 15:42

Re: [MatLab, Progetto Matlab Aiuto]

Messaggioda apatriarca » 20/04/2017, 17:46

Il metodo più semplice è probabilmente quello di scrivere una funzione in un file separato che faccia uso di if o indicizzazione tramite le condizioni. Se proprio vuoi usare delle funzioni anonime allora devi usare qualche "trucco". Una soluzione potrebbe essere la seguente:
Codice:
funref = @(x) (x >= 0).*(x.*x - 1) - (x > 0).*cos(2*x);

Il codice sfrutta la conversione automatica da valore booleani (logical) a valori reali (double). Avremo cioè che le due condizioni sono uguali a zero quando sono false e a uno quando sono vere. Possono quindi essere usate per attivare/disattivare parti della espressione in quel modo.
apatriarca
Moderatore
Moderatore
 
Messaggio: 4600 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: [MatLab, Progetto Matlab Aiuto]

Messaggioda Antonio93 » 20/04/2017, 17:55

Ma scusa la mia funrif non deve essere funrif= @(x) (e^(-x)3.*x-pi/2)+2 .......

non posso contattarti in maniera diretta tramite skype o altro ?? Perchè se non riesco ad impostare la funzione non posso iniziare nulla :(
Antonio93
Starting Member
Starting Member
 
Messaggio: 2 di 14
Iscritto il: 20/04/2017, 15:42

Re: [MatLab, Progetto Matlab Aiuto]

Messaggioda apatriarca » 20/04/2017, 19:59

Ero convinto di averti risposto ma a quanto pare non l'ho fatto. Le componenti che mancano vanno semplicemente sommate all'espressione che ho scritto.. Non le avevo inserite in quanto l'esercizio ti lascia libero di scegliere quali di quelle funzioni usare e per quali valori moltiplicarle.. C'è qualcos'altro che non ti è chiaro?
apatriarca
Moderatore
Moderatore
 
Messaggio: 4601 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: [MatLab, Progetto Matlab Aiuto]

Messaggioda Antonio93 » 20/04/2017, 21:10

Ah quindi dovrei fare una cosa di questo tipo

funrif= @(x) (e^(-x)3.*x-pi/2) più le altre funzioni iniziali che sommo ecc.. poi ci metto affianco (x >= 0).*(x.*x - 1) - (x > 0).*cos(2*x);
Dovrebbe essere così ?? non l'ho mai fatto scusa xD

Ah una cosa mi puoi scrivere la funzione iniziale sommando le 3 funzioni voglio vedere se l'ho scritta bene in matlab scusa ma sono all'inizio!
Antonio93
Starting Member
Starting Member
 
Messaggio: 3 di 14
Iscritto il: 20/04/2017, 15:42

Re: [MatLab, Progetto Matlab Aiuto]

Messaggioda apatriarca » 20/04/2017, 21:31

Devi scrivere qualcosa di simile al seguente codice in cui ho inserito tutte le funzioni.
Codice:
f1 = @(x) exp(-x)*sin(3*x - 0.5*pi);
f2 = @(x) sin(2*x)/(1 + 3*x.^2);
f3 = @(x) (1 - exp(-x)).*cos(3*x);
f4 = @(x) (x >= 0).*(x.^2 - 1) - (x > 0).*cos(2*x);
funrif = @(x) 2*f1(x) - f2(x) + 3*f3(x) + f4(x);

Per comodità ho definito tutte le funzioni separatamente per poi sommarle all'interno di funrif.
apatriarca
Moderatore
Moderatore
 
Messaggio: 4602 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: [MatLab, Progetto Matlab Aiuto]

Messaggioda Antonio93 » 20/04/2017, 21:38

Ah capito grazie mille domani mattina provo con i vari grafici ecc vedo che funzione mi esce xD

Grazie mille Moderatore gentilissimo nel caso continuiamo la discussione domani se qualcosa dovesse andare storto ??? non mi abbandoni confido in lei Ahahahaha


Ho provato ora a fare come mi hai detto tu mi da questo errore

Immagine
Antonio93
Starting Member
Starting Member
 
Messaggio: 4 di 14
Iscritto il: 20/04/2017, 15:42

Re: [MatLab, Progetto Matlab Aiuto]

Messaggioda apatriarca » 20/04/2017, 22:32

Scusa, non ho provato il codice prima di postarlo. In questo momento sono sul cellulare e ho difficoltà a scrivere il codice, ma il problema è che alcuni * devono essere convertiti in .*
apatriarca
Moderatore
Moderatore
 
Messaggio: 4603 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: [MatLab, Progetto Matlab Aiuto]

Messaggioda Antonio93 » 21/04/2017, 09:06

Ciao scusami nel codice delle funzioni mi hai scritto x>=0 e poi x>0 è un errore hai sbagliato giusto ??? è la prima x<=0 e la seconda x>0 Giusto ?



La mia funzione vedi va bene così oppure non è giusta ???


http://s16.imagestime.com/out.php/i1116 ... agine4.png


Ma è giusto trovare le ascisse a -15 ecc... ?? Non lo so vedo la funzione un pò strana tu che dici ???

Poi una cosa dovrei calcolare la derivata della mia funzione come dovrei fare ??
Antonio93
Starting Member
Starting Member
 
Messaggio: 5 di 14
Iscritto il: 20/04/2017, 15:42

Re: [MatLab, Progetto Matlab Aiuto]

Messaggioda apatriarca » 21/04/2017, 10:43

Si, ho sbagliato a scrivere. Le condizioni devono essere quelle scritte nel testo dell'esercizio.. Quindi x <= 0 e x > 0. Credo che la funzione sia giusta. Le costanti le puoi cambiare per ottenere forme diverse da quella da te ottenuta. Sarebbe per esempio meglio cercare di avere massimi/minimi/zeri.. più evidenti nel grafico. La derivata si ottiene per linearità. Devi cioè calcolare la derivata di ogni parte della funzione e quindi sommarle. Nel caso della funzione a pezzi la derivata sarà uguale a quella di ognuna delle sue parti separatamente ma il punto x=0 andrà studiato a parte.. Ma tutto questo non ha ovviamente nulla a che fare con Matlab..
apatriarca
Moderatore
Moderatore
 
Messaggio: 4604 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Prossimo

Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite