Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A

Documenti analoghi
1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso

Vettori e Matrici. Corso di Calcolo Numerico. 24 Aprile 2018

Laboratorio di Calcolo Numerico Laboratorio 8: Vettori e Matrici

LABORATORIO DI INFORMATICA ESERCITAZIONE VIII

Esercitazione 00 Introduzione a Matlab

3. Matrici e algebra lineare in MATLAB

Laboratorio di Calcolo Numerico Laboratorio 10: Norme di vettori e matrici, autovalori

Introduzione a MATLAB

MatLab - Testo pagina 1 di 5 101

05. Determinare una base ortonormale per ognuno dei seguenti spazi vettoriali.

Laboratorio computazionale numerico Lezione 3

Laboratorio di Analisi Numerica Lezione 3

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

Introduzione al MATLAB c Parte 2

Esercizi MatLab. Alessandro Benfenati. Ph.D Student.

3 Soluzione di sistemi lineari

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Laboratorio di Analisi Numerica Lezione 3

Esercitazioni di MatLab

clear clc v=input(['digitare V']); for i=1:length(v); for j=1:length(v); if i==j; m(i,j)=v(i); else; m(i,j)=0; end; end; end; disp(m)

Introduzione a MATLAB

Primi script in MATLAB

Esercitazione 4 Sistemi lineari, pivoting

8 Introduzione MATLAB

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

Ciclo di seminari: Metodi Computazionali per la Finanza

Disegnare nell intervallo [0, 1] con precisione 0.01 il grafico delle seguenti quattro funzioni

Laboratorio computazionale numerico Lezione 4

8 Introduzione MATLAB

1 Esercizi di Matlab. L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi.

Introduzione a MATLAB

1. Calcolo dell indice di condizionamento di una matrice

Metodi numerici con elementi di Programmazione A.A

Matrici. 3. Costruire le seguenti matrici, contarne gli elementi non nulli e visualizzarle con spy: . B 10x10 = ; D 7x7 =

Algebra matriciale. Un algebra è un sistema di segni in cui sono definite delle operazioni Algebra scalare Algebra dei vettori Algebra matriciale

Fondamenti di Informatica

Lezione 10 e 11, 26 Novembre e 3 Dicembre 2014

Esercizi di autovalutazione - Matlab Metodi Numerici con Elementi di Programmazione A.A

Argomento 12 Matrici

Università degli Studi di Napoli Federico II CdL Ing. Elettrica Corso di Laboratorio di Circuiti Elettrici

MATLAB parte II. Array

ESERCITAZIONE MATLAB

Registro di Matematica Applicata /18 - Dott.ssa L. Fermo 2

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 6 Metodi iterativi per sistemi lineari

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 3-28/3/2019

Calcolo Numerico (CdS in Matematica) A.A. 2012/13

INTRODUZIONE A MATLAB. Introduzione. Calcolatrice base. Calcolatrice base. Variabili predefinite o speciali. Variabili predefinite o speciali

Elementi di Calcolo Scientifico per l Ingegneria A.A

Corso di Geometria BIAR, BSIR Esercizi 2: soluzioni

Fondamenti di Informatica

Esercitazioni con GNU Octave

Laboratorio di Python

Informatica B. Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti. Prof. Marco Masseroli

Esercitazione 4: Vettori e Matrici

Funzioni per la costruzione di matrici

Esercitazione 1 Conversione di base

MATLAB - Programmazione - 2. Antonino Polimeno

2 Sistemi lineari. Metodo di riduzione a scala.

PreCorso di Matematica - PCM Corso M-Z

determinante della sottomatrice ottenuta da A cancellando la i-esima riga e la j-esima colonna

Università degli Studi di Napoli Federico II CdL Ing. Elettrica Corso di Laboratorio di Circuiti Elettrici

Esercizi di autovalutazione - Matlab Metodi Numerici con Elementi di Programmazione A.A

Informatica B

Dipartimento di Ingegneria Industriale DII Anno Accademico 2018/19 Registro lezioni del docente SOMMARIVA ALVISE

Laboratorio di Matematica Computazionale A.A Lab. 5

FONDAMENTI DI INFORMATICA I

Elementi di Algebra Lineare

UNIVERSITA DEGLI STUDI DI ROMA TOR VERGATA

Complementi di Matematica e Calcolo Numerico A.A

Scilab. Matrici Bidimensionali. Corso di Informatica CdL: Chimica. Claudia d'amato.

Metodi numerici con elementi di Programmazione A.A

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

MATRICI (ARRAY) IN MATLAB/OCTAVE

INTRODUZIONE A MATLAB

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 4-22/3/2018

Università degli Studi di Ferrara Corso di Laurea in Chimica - A.A

Analisi Numerica I Introduzione a Matlab

Lab 04 Programmazione Strutturata"

13 Esercizi di Riepilogo

MATRICI E OPERAZIONI

Capitolo 3 Matrici. Marco Robutti. Facoltà di ingegneria Università degli studi di Pavia. Anno accademico

Esercizio 1. Esercizio 2

MATLAB Elementi di grafica Costrutti di programmazione

Esercitazione 1 Conversione di base

Fondamenti di Matematica del discreto

Parte 1: tipi primitivi e istruzioni C

3. Elementi di Algebra Lineare.

Matlab. 1 Introduzione

MATRICI E VETTORI APPROFONDIMENTO PER IL CORSO DI LABORATORIO DI INFORMATICA SARA POLTRONIERI

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 4 - Polinomi e Interpolazione polinomiale

A.A. 2018/2019. Fondamenti di Programmazione in MATLAB FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09

Transcript:

Esercizi di MatLab Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, AA 2017 2018 Gli esercizi sono divisi in due gruppi: fondamentali ed avanzati I primi sono esercizi basilari per prendere familiarità con l ambiente MatLab, i secondi richiedono una conoscenza leggermente più ampia Indice 1 Esercizi fondamentali: calcolo vettoriale e matriciale 2 2 Esercizi fondamentali: function 5 1

1 Esercizi fondamentali: calcolo vettoriale e matriciale 1 Generare i vettori v = (1, 2,, 6) e w = (1, 2,, 6) (vettori colonna) ed effettuare le seguenti operazioni: (a) a = v+w; (b) b = 4v; (c) calcolare il prodotto di v per w elemento per elemento e salvare il risultato nella variabile c; (d) dividere ogni elemento di w per due e salvare il risultato nella variabile d; (e) dividere ogni elemento di v per il corrispondente elemento di w e salvare il risultato nella variabile e; (f) calcolare il prodotto scalare di v e di w, salvare il risultato in f; (g) calcolare g = 2v-6w; (h) memorizzare negli elementi di posto pari del vettore g1 gli elementi di posto pari di d e negli elementi di posto dispari di g1 gli elementi di posto dispari di c; (i) creare il vettore h con 5 copie del vettore v; (j) osservare il comportamento del comando h([6:6:end]); (k) sostituire 0 negli elementi con indice multiplo di 5 in h e 1 negli elementi con indice multiplo di 6; (l) dato u = (1, 2,, 6) (vettore riga) calcolare u*w e w*u: osservare i risultati e capire cosa succede 2 Generare una matrice quadrata A M n(r) (ove n è un dato introdotto dall esterno) con elementi generati a caso da una distribuzione uniforme nell intervallo [0, 1] e calcolare (eventualmente usando le funzioni cumulative): (a) un vettore che contiene la somma degli elementi di ciascuna colonna; (b) un vettore che contiene la somma degli elementi di ciascuna riga; (c) un vettore che contiene la somma degli elementi al quadrato di ciascuna riga; (d) il massimo degli elementi della matrice; (e) la somma di tutti gli elementi della matrice 3 Generare i vettori colonna v,w R 25 da una distribuzione uniforme nell intervallo [0, 1], Effettuare i seguenti passaggi: (a) t = v,w v + v,w w; (b) dato s = (1,, 25), memorizzare in p la divisione elemento per elemento di t per s; (c) data la matrice A M 3 25(R), generata da una distribuzione uniforme in [0, 1], salvare in q il prodotto Ap; (d) creare la matrice identità I di ordine 3, salvare in e1 la prima colonna di I, in e2 la seconda colonna e in e3 la terza colonna Salvare nella variabile a1 il prodotto scalare q,e_1, in a_2 il prodotto scalare q,e_2 e in a_3 il prodotto scalare q,e_3 ; (e) creare il vettore a = (a_1,a_2,a_3) e verificare che sia identico al vettore q; (f) memorizzare in un vettore b gli elementi di posto pari di t, moltiplicarli per 10 e arrotondarli utilizzando il comando fix; (g) creare il vettore c = (1,2,3), memorizzare in D il prodotto c*b : descrivere l output ottenuto; (h) data la matrice B le cui colonne sono costituite da 3 copie del vettore q, effettuare le operazioni BA e AB: sono consentite? Dare una motivazione in entrambi i casi, negativo e affermativo 4 Date le matrici A=[1 2 3; 4 5 6; 7 8 9], B=[2-1 0; -1 2-1; 0-1 2], descrivere gli output delle seguenti istruzioni: (a) A(:,[1,3])=B(:, 1:2); (b) C=A/B; (c) C=A^B; (d) C=triu(A)+tril(B,-1); (e) A([1:2],:)=[]; 2

(f) D=B([3,2],1:2:3); 5 Creare una matrice A M 5(R) a piacere ed effettuare le seguenti operazioni: (a) memorizzare in v la sua seconda riga; (b) memorizzare in w la sua terza colonna; (c) estrarre la sottomatrice B M 3(R) a parte dall elemento A(2,2); (d) creare una matrice C M 7(R) con la prima e l ultima colonna di zeri e la prima e ultima riga di 1, e al centro porre la matrice A; (e) creare la matrice D M 3(R) in cui ogni elemento è il prodotto degli indici di riga e colonna: verificare se è simmetrica; (f) eseguire BD e DB: sono diversi? (g) eseguire il prodotto componente per componente di B e D e vedere se questo corrisponde a B*D o D*B; (h) memorizzare in E la combinazione B*D^2-3*B*D-7*D^2 ; (i) verificare che D *B =(B*D) ; (j) calcolare Dw1, dove w_1 è il vettore contenente i primi tre elementi di w; (k) calcolare v1d, dove v1 è il vettore contenente i primi tre elementi di v; (l) creare la seguente matrice a blocchi: I r B 0 r B D B 0 r B I r con r opportuno I r è la matrice identità di ordine r, mentre 0 r è la matrice quadrata di dimensione r con ogni elemento pari a 0 6 Dato un vettore x = (x 1, x 2,, x n) e un naturale m > 0, costruire la seguente matrice: V = 1 x 1 x 2 1 x 3 1 x m 1 1 1 x 2 x 2 2 x 3 2 x m 1 2 1 x n x 2 n x 3 n x m 1 n utilizzando la sintassi vettoriale di MatLab Successivamente, creare la stessa matrice usando due cicli for innestati Misurare il tempo necessario per la costruzione di tale matrice con i due metodi utilizzando i comandi tic e toc 7 Quali elementi contiene il vettore z dopo i ciascuno dei seguenti comandi di Matlab? (a) z=[10 40 20 80 30 70 60 90]; z(1:2:7)=zeros(1,4); (b) z=[10 40 20 80 30 70 60 90]; z(7:-2:1)=zeros(1,4); (c) z=[10 40 20 80 30 70 60 90]; z([3 4 8 1])=zeros(1,4); 8 Data la matrice A=[2 2 1; 1-1 4; 2 1-3], descrivere l output dei seguenti comandi Matlab: (a) [p,q]=size(a(1:2,1:2)); (b) A/A ; (c) A(1,:)=A(2,:)*A(3,:); (d) A(2,:)=A(:,1) ; (e) A(:,2)=A(:,2)^3; 3

9 Creare due matrici quadrate A,B di dimensione 50 < n < 1000 e un vettore v di dimensioni opportune Utilizzando i comandi tic e toc, verificare la differenza di tempo di calcolo tra A*B*v e A*(B*v) 10 Data la matrice A M n(r), n scelto da tastiera, salvare in v la sua vettorizzazione tramite l uso del comando jolly : Calcolare V=v^2, eseguire il comando B = reshape(v,n,n) e controllare che B==A^2 11 Creare un vettore x di 20 elementi i cui elementi siano equispaziati fra 0 e 2π Salvare in y i valori della funzione seno calcolata in x, salvare in z i valori della funzione coseno calcolata in x Utilizzando il comando fprintf, stampare a video una tabella di tre colonne in cui sulla prima colonna devono essere presenti i valori di x, sulla seconda i valori di Y e infine sulla terza i valori di z 12 Dati A=[1 2 3; 4 5 6]; B=[2 2 1;1 0 3]; x=[1 2 3];y=[4 5 6]; descrivere gli output delle seguenti istruzioni: (a) C=A*B;; (b) z=a(1,:)*y; (c) z=x/ [B(:,2);3];; (d) z=x\y; (e) z=a(2,:)^ B(1,3:-1:1); 13 Dati i vettori xs = ones(10,1) e y = 2*randn(10,1), descrivere gli output dei seguenti comandi senza eseguirli: (a) abs(xs-y); (b) norm(xs-y)/norm(xs); (c) abs(xs-y)/abs(xs) Verificare i risultati al calcolatore 14 Data una matrice A M n(r), 2 < n < 10, contentente numeri random compresi fra -10 e 10 (utilizzare le funzioni rand) effettuare i seguenti passaggi: (a) estrarre in d la diagonale di A; (b) salvare in B la parte triangolare superiore di A; (c) sottrarre a B la diagonale di A (hint: controllare l uso della funzione triu per fare tutto in un passaggio); (d) porre C = B+B ; (e) dato v di dimensioni opportune, verificare che v *C*v sia maggiore di zero o meno, stampando un messaggio a video, mediante l utilizzo combinato della funzione fprintf e del ciclo di controllo if-then-else; (f) salvare in D la sottomatrice di A costituita dalle prime tre colonne e dalle ultime due righe di A ; scrivere in E il prodotto D *D; (g) dato v di dimensioni opportune, verificare che v *E*v sia maggiore di zero o meno, stampando un messaggio a video, mediante l utilizzo combinato della funzione fprintf e del ciclo di controllo if-then-else; (h) verificare che E sia simmetrica 4

2 Esercizi fondamentali: function Consiglio: scrivere un main che chiami ogni funzione dei successivi esercizi, invece di chiamare le funzioni da shell di comando Per esempio, se per il primo esercizio si utilizza la funzione my_factorial, allora il main che chiamerà tale funzione potrebbe essere clear close clc all all n = input ( Scegliere un numero \ n ); % potete decidere se introdurlo % da tastiera o definirlo nel main f = my_factorial (n); 1 Scrivere una function che preso in input un numero 0 n 10 naturale, ne calcoli il fattoriale 2 Scrivere una function che presi in input un vettore x e un numero intero n, restituisca il vettore y le cui componenti sono n x k i y i = k! k=0 Confrontare il risultato con la funzione nativa exp al variare di n 3 Scrivere una function che, date in input le coordinate di un punto x = (x 1, x 2) R 2 e un raggio R, controlli che tale punto sia all interno o meno della circonferenza di raggio R, stampando un messaggio a video; la function dovrà restituire anche la lunghezza di tale vettore 4 Scrivere una function che, dato in input una matrice A M 2(R), restituisca il suo determinante Confrontare il risultato ottenuto con il risultato fornito dalla funzione nativa det 5 Scrivere una function che, data in input una matrice A M n(r) con n a piacere, restituisca la diagonale di A, il valore massimo e il suo valore minimo di A 6 Scrivere una function che, dati in input tre vettori v R n, w R n 1, t R n 1 restituisca una matrice la cui diagonale è costituita dal vettore v, la prima sovradiagonale dal vettore w e la prima sottodiagonale dal vettore t 7 Data la matrice A = 8 9 2 9 6 5 1 0 9 e il vettore b = (19, 20, 10), scrivere una function che, preso in input un vettore y, controlli che esso sia soluzione del sistema Ax = b 8 Dato un polinomio p, scrivere una function che, dati in input un punto x 0 e i coefficienti del polinomio, calcoli il valore del polinomio in x 0 Confrontare il risultato ottenuto con il risultato fornito dalla funzione nativa polyval Hint: i coefficienti del polinomio possono essere memorizzati in un vettore Per esempio, i coefficienti di p(x) = 4x 3 + x 2 1 possono essere memorizzati nel vettore p = [4 1 0-1] 5

9 Data una matrice A M n(r) con n a piacere, scrivere una function che, data in input A, restituisca le tre matrici D, M, N tali che a 11 0 0 0 0 a 22 0 0 L = a n 1n 1 0 0 0 0 a nn 0 0 0 0 0 a 12 a 13 a 1n a 21 0 0 0 0 0 a 23 a 2n a 31 a 32 0 0 M = Utilizzare i comandi tril e triu, N = 0 0 0 a 3n a n1 a n2 a nn 1 0 0 0 0 0 0 10 Scrivere una function che, dato in input un naturale n, restituisca in output il valore ( 1 + 1 ) n n e la differenza fra il valore ottenuto e il numero e; la function dovrà stampare un messaggio a video contenente tale differenza con almeno 8 cifre significative (consultare l help di fprintf) 6