Esercizi sull'istruzioni programmazione octave (superiori)

Da Wikiversità, l'apprendimento libero.
quiz
quiz
Esercizi sull'istruzioni programmazione octave (superiori)
Tipo di risorsa Tipo: quiz
Materia di appartenenza Materia: Informatica (istituti tecnici) per le superiori
Avanzamento Avanzamento: quiz completo al 00%

I seguenti esercizi riguardano Istruzioni Programmazione Octave studiati nella Lezione 5 della Parte Terza. Essi sono divisi per paragrafi in modo tale da favorire la scelta degli esercizi specifici.

Esercizi[modifica]

Es.1

Dato un vettore di 10 elementi calcola la media dei valori contenuti Sol.

v=[1 -4 -3  6 1 -1 7 1 3 2]
n=10;
somma=0;
for i=1:n
  somma=somma+v(i);
end

media=somma/n

Es.2

Dato un vettore di 10 elementi calcola il massimo e la posizione del massimo Sol.

v=[1 -4 -3  16 1 -1 7 1 3 2]
n=10;
massimo=v(1);
posmassimo=1;
for i=2:n
  if(v(i)>massimo)
    massimo=v(i);
    posmassimo=i;
  end
end

fprintf("il massimo vale %i ", massimo)
fprintf("e si trova nella posizione  %i \n", posmassimo)

Es.3

Dato un vettore di 10 elementi calcola quante volte il numero 5 è presente nel vettore Sol.

v=[1 -4 -3  16 5 -1 7 5 3 2]
n=10;
conta=0;
for i=1:n
  if(v(i)==5)
    conta=conta+1;
  end
end

fprintf("il numero 5 è presente %i volte \n", conta)

Es.3a

Disegna il grafico della funzione seno di ampiezza 5 (almeno un periodo) Sol.

t=0:0.1:8;
y=5*sin(t);
plot(t,y);

Es.4

Verifica se la matrice A è simmetrica (non puoi utilizzare la trasposta) Sol.

A=[2 3 4 5; 3 7 8 9 ; 4 8 0 6;  5 9 6 4 ]
nr=4;
nc=4;
for r= 1 : nr-1
 for c= r+1 : nr
    if A(r,c)!=A (c,r)
       error('matrice non simmetrica')
    endif
 endfor
endfor
fprintf('matrici simmetriche')

Es 5

Dato un sistema di equazioni lineari del tipo Ax=b risolvi il sistema prima triangolarizzando il sistema e poi ricavando le incognite del vettore x Sol:

A=[2 3 4 5 6; 3 7 8 9 2; 4 8 0 6 1;  5 9 6 4 3; 5 2 -4 4 3] 
b=[2; 3; 6; 0; 3 ]
nr=5;
nc=5;
% la soluzione è questa 
sol1=inv(A)*b 
% noi la ricaviamo triangolarizzando il sistema 
for r= 1 : nr-1
 for rx= r+1 : nr
  k= -A(r,r)/A(rx,r);
  A(rx,:)=k*A(rx,:)+A(r,:);
  b(rx,1)=k*b(rx,1)+b(r,1);
 end
end
% e poi iterativamente troviamo le incognite 

x(nr,1) = b(nr,1)/A(nr,nr);
for r= nr-1:-1:1
 somma=0;
 for k= r+1:nc
  somma=x(k,1)*A(r,k)+somma;
 end
  x(r,1)=( b(r,1)-somma)/A(r,r);
end
x