Esempio 1: Dato il vettore A=-10:2:10 1) Determinare la lunghezza L del vettore; 2) Creare il vettore colonna B=-20:4:20 3) Effettuare il prodotto S= AxB righe per colonne 4) Estrarre da A il vettore C formato dagli ultimi 5 elementi di A 5) Estrarre da B il vettore D formato dai primi 5 elementi di B 6) Realizzare un ciclo for con cui creare una matrice H [L*L] che ha come righe dispari il vettore A e come righe pari il vettore B 7) Estrarre la seconda colonna della matrice H e indicare il vettore con F 8) Estrarre la quinta colonna della matrice H e indicare il vettore con G 9) Immettere da tastiera l intero N e moltiplicarlo per il vettore G, otteno il vettore P 10) Creare un ciclo in cui sommare, ad uno ad uno, tutti gli elementi di P finché la loro somma non sia inferiore a -100. Indicare il risultato della somma e il numero di elementi sommati.
% Esempio 1 % Creazione di A A=[-10:2:10]; % Lunghezza di A L=length(A); % creazione di B B=[-20:4:20]; % B deve diventare un vettore colonna; % Ne faccio la trasposta B=B'; % Prodotto righe per colonne S=A*B; % Estrazione del vettore C C=A(L-5:L); % Estrazione del vettore D D=B(1:5); % Creazione con ciclo for della matrice H for k=1:l % calcolo il resto della divisione k/2 resto=rem(k,2); % Se il resto della divisione è zero, allora il numero è pari. if resto==0 % il numero è pari H(k,:)=A; else H(k,:)=B; % Creazione vettore F F=H(:,2); % Creazione vettore G G=H(:,5); % Immissione numero N N=input('immettere il numero intero N= '); % vettore P P=N*G; % Calcolo della somma k=0; somma=0; while k<length(p) & somma>=-100 k=k+1; somma=somma+p(k); % Mostro risultati disp(['il risultato della somma è ' num2str(somma)]) disp(['il numero degli elementi sommati è ' num2str(k)])
( ) x = Asen ωt Esempio 2: Tracciare l ellisse di equazione y = Bsen( ωt ϕ) con A=5; B=8; ϕ=π/6 % Ellisse ; % Assegnazione dati A=5; B=8; w=300; phi=pi/6; % Calcolo il periodo T=(2*pi)/w; % Creazione vettore asse dei tempi % Comincio da t=0 e arrivo a t=t con passo T/360; t=[0:t/60:t]; % asse x x=a*sin(w.*t); % asse y y=b*sin(w.*t-phi); % Tracciamo l'ellisse % Creo la figura 1 % Creo il plot di coloro rosso e spessore della linea=2 plot(x,y,'r-','linewidth',2); % Titolo title('ellisse di equazione x=asin(wt); y=bsin(wt-phi)'); %Etichetta dell'asse x e y. Carattere di tipo Arial e grandezza 13pt xlabel('asse X','Fontname','Arial','Fontsize',13); ylabel('asse Y','Fontname','Arial','Fontsize',13); %Fisso il limite degli assi xmin=-8; xmax=+8; ymin=-10; ymax=+10; axis([xmin xmax ymin ymax])
x n + 1 Esempio 3: Sia data la successione numerica x n + 1 ( ) = 1.2 x( n) ( ) = 1.3 x( n) Realizzare, inoltre, il grafico della successione pre n=1 fino a n=20, sceglio da tastiera il valore x 1 ( ) % Realizziamo un ciclo for da n=1 fino a n=20 % Per capire se il numero n è dispari oppure pari, basta dividerlo per 2 % e controllare se il resto della divisione è zero oppure no % il comando rem(x,y) restituisce il resto della divisione x/y % Inserisco da tastiera il valore di x(0) x(1)=input(' Inserisci il valore x(1) = '); N_=20; % numero di valori da calcolare for N=1:N_ % costruisco il vettore n n(n)=n; % calcolo il resto della divisione n/2 resto=rem(n(n),2); if resto==0 % il numero è pari x(n(n)+1)=1.2*x(n(n)); else x(n(n)+1)=1.3*x(n(n))+1; % A questo punto il vettore n ha N_ elementi % mentre il vettore x ha (N_+1) elementi % Nel grafico della successione posso tracciare il grafico solo di N % elementi % Creo la figura 1 % Creo il plot di coloro nero e simbolo + plot(n,x(1:n_),'k+'); % Titolo title('successione numerica'); %Etichetta dell'asse x e y. Carattere di tipo Arial e grandezza 13pt xlabel('n','fontname','arial','fontsize',13); ylabel('x(n+1)','fontname','arial','fontsize',13); + 1
Esempio 4: % Esempio di caos deterministico. Verificare che per la successione x = ( 1 ) 2 n x n non è possibile identificare l'andamento asintotico (per n che te a infinito) e verificare che l'andamento della successione cambia sensibilmente al variare della condizione iniziale x 1 1 Calcolare anche la successione x n = n * sen e verificare, invece, che essa te a 1 per n che n te a infinito 2 % Successione calcolata per x(1)=0.5 x(1)=0.5 % valore iniziale for n=2:40 x(n)=(x(n-1))^2-2; % Diagramma della prima successione. (usiamo il colore blu e il simbolo o) subplot(2,1,1); %Dividiamo la figura 2 in due diagrammi. Tracciamo il primo plot(x,'bo-'); % Costruiamo una nuova successione cambiando il valore iniziale; clear x; % cancelliamo la successione vecchia x(1)=0.499; % Nuova condizione iniziale % La nuova condizione iniziale differisce dello 0.2% rispetto a x(1)=0.5 for n=2:40 x(n)=(x(n-1))^2-2; % In figure(1), sotto al diagramma 1, inseriamo anche in nuovo diagramma figure(1) subplot(2,1,2); plot(x,'r*-'); % (usiamo il colore rosso e il simbolo *) % Notare che le due successioni sono praticamente identiche fino a n=10 % Per valori maggiori di 10 esse sono totalmente diverse (nonostante il % loro valore iniziale differisca solo dello 0.2%). % Tracciamo ora in figure(2) una nuova successione che, invece, te a 1 clear x for n=1:40 x(n)=n*sin(1/n); figure(2); plot(x,'r*-'); % (usiamo il colore magenta e il simbolo +)