Problemini del lunedì [26 Nov]
- Un esercizio sulle derivate (apparentemente solo un esercizietto
di analisi...).
Data la funzione
x(t) = (X0/cos(φ)) * exp(-t/τ) *
cos(ωp*t + φ),
con X0, τ,
ωp e φ delle costanti:
- calcolare la derivata di x rispetto al tempo t;
- trovare la relazione che lega φ a
τ e
ωp, data la condizione
x'(t=0) = 0, ovvero che nell'istante iniziale
sia nulla la derivata prima
di x rispetto al tempo.
(Nota: il pedice 'p' di ωp
sta a ricordare che essa è non una pulsazione,
bensì una pseudopulsazione, come si capirà.)
- (Continuazione, in R) Fare il plot di x in funzione di t,
per t che va da 0 a 5 (secondi), con i seguenti valori delle costanti
- X0 = 1 (cm);
- tau = 1 (s);
- ωp = 6.28 (s^-1);
- φ ricavata facendo uso della relazione trovata.
→ ci ricorda qualcosa? (Provare a cambiare i
parametri per vedere come cambia la curva.)
[Nota: le dimensioni sono poste fra parentesi in quanto ovviamente
non vanno messe nel codice R, ma dobbiamo essere coscienti
del significato dei numeri e del fatto che tutte le 'variabili' in
gioco sono grandezze fisiche che hanno delle dimensioni
fisiche (con eccezione di φ e suo coseno,
adimensionali).]
- Andamenti lineari, esponenziali e di potenza
in corrispondenza dei seguenti valori di x (scritti in modo tale
poter essere inseriti in uno script R):
abbiamo, in sei casi, diversi, i seguenti valori di y:
- y1 = c(1.00, 0.00, -1.00, -2.00, -3.00)
- y2 = c(1.00, 0.707, 0.577, 0.500, 0.447)
- y3 = c(-1.00, 1.00, 3.00, 5.00, 7.00)
- y4 = c(1.82 1.104, 0.669, 0.406, 0.246)
- y5 = c(0.44, 2.01, 9.00, 40.3, 180.8)
- y6 = c(1.00, 2.82, 5.20, 8.00, 11.18)
Usando opportuni plot dire, per ciascun caso, se si tratta di un
andamento lineare, esponenziale o di potenza e calcolare
i due coefficienti di ciascun andamento.
- Scrivere la funzione C (e ovviamente il main che la usa) che
calcola i coefficienti di ciascun andamento a partire da due punti
empirici, facendo uso della bozza che segue:
Note:
- questa funzione fa uso di switch(), il cui
uso è alquanto intuitivo (che avesse ancora dubbi cerchi sul web);
- si applichi la funzione ai casi sopra riportati, passando
a lepLaw() il primo e l'ultimo punto;
[il nome della funzione sta per Legge
lineare, esponenziale e di potenza]
- naturalmente, affinché il risultato sia corretto, deve essere
ragionevole l'ipotesi sull'andamento seguito dai dati empirici,
cosa per la quale si rimanda a sopra (→ plot).
- Ripasso su caratteri e codice ascii:
Si scriva un programma in C che legga un carattere
da tastiera (mediante scanf() o argv[], a scelta), quindi
- stampi il carattere ricevuto;
- stampi inoltre se è una lettera dell'alfabeto o se è un numero;
- se è una lettera minuscola la si converta in maiuscola;
- se è una lettera maiuscola la si converta in minuscola.
- Infine un esercizio in C sui vettori
che ci tornerà utile:
- definire un vettore di interi (per comodità) di N elementi,
mettendo nell'elemento i-mo l'indice stesso;
- estrarre a caso un indice fra 0 e N-1;
- spostare il valore corrispondente in fondo al vettore,
facendo traslare tutti gli altri valori per riempire il buco
lasciato;
- ripetere questa operazione per NVOLTE.
Ecco un esempio di come il vettore cambia a mano
a mano che si susseguono le estrazioni:
0 1 2 3 4 5 6 7 8 9
ind = 3
0 1 2 4 5 6 7 8 9 3
ind = 6
0 1 2 4 5 6 8 9 3 7
ind = 7
0 1 2 4 5 6 8 3 7 9
ind = 5
0 1 2 4 5 8 3 7 9 6
(Come variante si può scegliere a caso se il valore corrispondente
all'indice estratto lo mettiamo in fondo o all'inizio, sempre riempiendo
il buco lasciato, ma in questo caso traslando i valori nel verso opposto.)
Torna alla pagina del corso