Linguaggio Java: verifica elementi array in ordine crescente

Tema 9

Scrivere un metodo isArrayCrescente che riceve in ingresso un array di interi V e verifica se l’array è crescente.

Ad esempio, sia V l’array così costituito

1 2 3 4 5 6 7 8 9

allora isCrescente (V) = TRUE

 public class tema9 { public static boolean isArrayCrescente (int[] V) { //inizializziamo una variabile boolean impostandola sul valore TRUE, assumendo //che l’array sia crescente boolean crescente = true; // verifichiamo se ogni elemento di V è minore dell'elemento che lo segue for (int i = 0; crescente && i < V.length-1; i++) if (V[i] >= V[i+1]) crescente = false; return crescente; }  /* Applicazione Di Prova: Inizializziamo tre array su cui testare il metodo; il  * primo array sarà crescente, il secondo array sarà non decrescente, il terzo  * array sarà non crescente. */  public static void main(String[] args) { int[] A = { 1, 2, 5, 7 }; System.out.println(isArrayCrescente (A)); // array crecsente System.out.println(); int[] B = { 1, 2, 5, 5, 7 }; // array non decrescente (ma non crescente) System.out.println(isArrayCrescente (B)); System.out.println(); int[] Z = { 1, 2, 5, 3, 7 }; // un array non crescente System.out.println(isArrayCrescente (Z)); } }     

Linguaggio Java: stampa il massimo valore in un array

Tema 8

Scrivere un metodo trovaMassimoInArray che riceve in ingresso un array di interi V e stampa a video il valore più alto in esso presente.

Ad esempio, sia V l’array così costituito

Array A
3 5 1 7 9 2 4 6 1

allora trovaMassimoInArray (V) = 9

 public class tema8 { public static int trovaMassimoInArray (int[] V) { //il primo elemento di V viene scelto arbitrariamente come massimo provvisorio int max = V[0]; //effettuiamo una scansione dell'array partendo dal secondo elemento for (int i = 1; i < V.length; i++) { //se durante la scansione incontriamo un elemento più grande del primo, //aggiorniamo il valore di max if (V[i] > max) max = V[i]; } return max; }  /* Applicazione di Prova: Inizializziamo due array su cui testare il metodo; il  * primo array conterrà solo elementi positivi, il secondo array conterrà solo  * elementi negativi. */  public static void main(String[] args) { int[] A={3,5,1,7,9,2,4,6,1}; System.out.println(“Il valore piu’ grande contenuto nell’array A, e’:”); System.out.println(trovaMassimoInArray (A)); System.out.println(); int[] B ={-15,-4,-6}; System.out.println(“Il valore piu’ grande contenuto nell’array B, e’:”); System.out.println(trovaMassimoInArray (B)); } } 

Linguaggio Java: scambio degli elementi di due array e loro inversione

Tema 7

Scrivere un metodo scambiaElementiDiDueArrayInOrdineInverso che riceve in ingresso due array di interi A e B e trasferisce gli elementi dall’uno all’altro invertendone l’ordine. Ad esempio, siano A e B due array così costituiti

Array A
2 4 6 8 10
Array B
3 6 9 12 15

allora scambiaElementiArrayInOrdineInverso (A, B) darà

Array A
15 12 9 6 3
Array B
10 8 6 4 2

 public class tema7 { public static void scambiaElementiDiDueArrayInOrdineInverso (int[] A, int[] B) { // impostiamo un ciclo che scorra gli array // fissiamo come limite di scorrimento la dimensione di uno dei due tanto hanno // la stessa dimensione // creiamo un contenitore in cui posizioneremo di volta in volta gli elementi // che dovremo spostare int contenitoreTemporaneo; for (int i = 0; i < A.length; i++) { // iniziamo a posizionare nel contenitore il primo elemento dell'array contenitoreTemporaneo = A[i]; // nella prima posizione dell’array A trasferiamo l'ultimo elemento dell'array B A[i] = B[B.length-1-i]; // analogamente, nell'ultima posizione dell'array B trasferiamo il primo // elemento dell’array A B[B.length-1-i] = contenitoreTemporaneo; } // reiterando questo procedimento alla fine otterremo il risultato voluto } public static void visualizzaArray (int[] V) { for (int i = 0; i < V.length; i++) System.out.print(V[i] + " "); System.out.println(); }  /*Applicazione di Prova*/  public static void main(String[] args) { // inizializziamo due array int[] A = new int[] {1, 2, 3, 4, 5, 6}; int[] B = new int[] {4, 8, 12, 16, 20, 24}; // applichiamo il metodo ai due array scambiaElementiDiDueArrayInOrdineInverso (A, B); // visualizziamo gli elementi dei nostri array dopo l’applicazione del metodo visualizzaArray (A); visualizzaArray (B); } } 

Linguaggio Java: inversione degli elementi di un array

Tema 6

Scrivere un metodo invertiArray che riceve in ingresso un array di interi V e ne inverte gli elementi effettuando uno spostamento degli stessi.

Ad esempio, sia V l’array così costituito

1 2 3 4 5 6

Allora invertiArray (V) darà

6 5 4 3 2 1

 public class tema6 { public static int[] invertiArray (int[] V) { // creiamo un contenitore in cui posizioneremo di volta in volta gli elementi // che dovremo spostare int contenitoreTemporaneo; // impostiamo un ciclo che scorra l’array fino a metà della sua dimensione for (int i = 0; i < V.length/2; i++) { // iniziamo a posizionare nel contenitore il primo elemento dell'array contenitoreTemporaneo = V[i]; // nella prima posizione trasferiamo l’ultimo elemento dell’array V[i] = V[V.length-1-i]; // analogamente, nell’ultima posizione dell’array trasferiamo il primo elemento V[V.length-1-i] = contenitoreTemporaneo; } // reiterando questo procedimento alla fine otterremo l’array invertito return V; }  public static void visualizzaArray (int[] V) { for (int i = 0; i < V.length; i++) System.out.print(V[i] + " "); System.out.println(); /* Applicazione di Prova: Facciamo notare che questo metodo non si limita, come  * il precedente, a fare la stampa degli elementi in ordine inverso, ma effettua  * lo spostamento fisico di ciascun elemento da una cella all'altra.*/  public static void main(String[] args) { int[] A = new int[] {1, 2, 3, 4, 5, 6}; int[] B = invertiArray (A); visualizzaArray (B); } }     

Linguaggio Java: uguaglianza tra 2 array di interi

Tema 5

Scrivere un metodo verificaSeDueArrayUguali che riceve in ingresso due array A e B di interi e restituisce TRUE se gli array sono uguali; FALSE altrimenti.

 public class tema5 { public static boolean verificaSeDueArraySonoUguali (int[] A, int[] B) { // inizializziamo la variabile boolean uguali sul valore TRUE come se i due // array fossero, di fatto, uguali boolean uguali = true; // preliminarmente verifichiamo che i due array abbiano la stessa dimensione if (A.length != B.length) uguali = false; // nel caso di dimensioni diverse il metodo restituirebbe già da subito FALSE else { // verifichiamo ora che i due array siano uguali elemento per elemento for (int i = 0; uguali && i < A.length; i++) if (A[i] != B[i]) // appena due elementi di posizioni omologhe risultassero diversi il metodo // restituirebbe FALSE uguali = false; } return uguali; }  /* Applicazione di Prova */  public static void main(String[] args) { // verifichiamo il metodo su due array vuoti (il risultato sarà TRUE) System.out.println(verificaSeDueArraySonoUguali (new int[] { }, new int[] { }) ); System.out.println(); // verifichiamo il metodo su due array non vuoti e uguali (il risultato sarà // TRUE) System.out.println(verificaSeDueArraySonoUguali (new int[] { 3, 6, 9, 12 }, new int[] { 3, 6, 9, 12 })); System.out.println(); // verifichiamo il metodo su due array diversi (il risultato sarà FALSE) System.out.println(verificaSeDueArraySonoUguali(new int[] { 20, 30, 40, 50 }, new int[] { 20, 30, 40, 90})); System.out.println(); // verifichiamo il metodo su due array di lunghezza diversa (il risultato sarà // FALSE) System.out.println(verificaSeDueArraySonoUguali (new int[] { 11, 22, 33, 44, 55 }, new int[] { 33, 44 })); } }     

Linguaggio Java: somma degli elementi di un array

Tema 4

Scrivere un metodo sommaElementiArray che riceve in ingresso un array di interi V e restituisce il valore della somma di tutti i suoi elementi.

 public class tema4 { public static int sommaElementiArray(int[] V) { //inizializziamo una variabile di tipo intero nella quale confluirà il risultato //finale int somma = 0; for (int i = 0; i < V.length; i++) // ogni elemento dell’array verrà sommato ai precedenti somma += V[i]; return somma; }  /* Applicazione di Prova: Inizializziamo un array su cui testare il metodo. */  public static void main(String[] args) { int[] A = {1,2,3,4}; System.out.println(“La somma degli elementi dell’array A, e’:”); System.out.println(sommaElementiArray (A)); } }     

Linguaggio Java: stampa degli elementi positivi di un array

Tema 3

Scrivere un metodo stampaElementiPositivi che riceve in ingresso un array di interi V e stampa a video tutti e solo gli elementi positivi in esso contenuti.

 public class tema3 { public static int[] stampaElementiPositivi (int[] V) { int contaPositivi = 0; // contatore degli elementi positivi di V // inizialmente scorriamo l’array V per sapere quanti sono gli elementi positivi for (int i = 0; i < V.length; i++) if (V[i] > 0) // ogni volta che verrà trovato un elemento positivo sarà incrementata la // variabile che infine rappresenterà la dimensione del nuovo array contaPositivi++; // l'array Positivi avrà dimensione pari al numero di elementi positivi presenti in V int[] Positivi = new int[contaPositivi]; // trascriviamo nell'array Positivi gli elementi positivi di V, nello stesso // ordine in cui occorrono in V int j = 0; // indice per la scansione dell’array Positivi for (int i = 0; i < V.length; i++) if (V[i] > 0) { Positivi[j] = V[i]; j++; } return Positivi; }  public static void visualizzaArray (int[] V) { for (int i = 0; i < V.length; i++) System.out.print(V[i] + " "); System.out.println(); }  /* Applicazione di Prova: Inizializziamo due array su cui testare il metodo; il primo array conterrà solo elementi positivi, il secondo array conterrà anche elementi negativi e nulli. */  public static void main(String[] args) { // array che contiene solo elementi positivi visualizzaArray ( stampaElementiPositivi (new int[] { 1, 2, 3, 5 }) ); System.out.println(); // stampiamo una riga vuota per separare i risultati // array che contiene anche negativi e nulli visualizzaArray ( stampaElementiPositivi (new int[] { 8, -5, 9, 0, 13 })); } }     

Nota: In questo caso abbiamo inizializzato i due array direttamente all’interno dell’invocazione del metodo stampaElementiPositivi a sua volta innestato all’interno del metodo visualizza

Linguaggio Java: stampa degli elementi di un array in ordine inverso

Tema 2

Scrivere un metodo stampaArrayCapovolto che riceve in ingresso un array di interi V e stampa a video i suoi elementi in ordine inverso, dall’ultimo valore al primo.

 public class tema2 { public static void stampaArrayCapovolto (int[] V) { // naturalmente questa volta il ciclo partirà dall’ultima posizione e // gradualmente l’indice verrà decrementato for (int i = V.length-1; i >= 0; i--) System.out.print(V[i] + " "); System.out.println(); }  /*Applicazione di Prova: Creiamo un array contenente al suo interno la tabellina del 2 e poi invochiamo il metodo stampaArrayCapovolto per stampare a video il risultato.*/  public static void main(String[] args) { int[] A = new int [10]; for(int i = 0; i < A.length; i++) A[i] = (i+1)*2; stampaArrayCapovolto ( A ); } } 

Linguaggio Java: stampa degli elementi di un array

Tema 1

Scrivere un metodo visualizzaArray che riceve in ingresso un array di interi V e ne stampa a video gli elementi.

 public class tema1 { public static void visualizzaArray (int[] V) { // acquisiamo l’array V e impostiamo un ciclo per scorrere tutti i suoi elementi for (int i = 0; i < V.length; i++) System.out.print(V[i] + " "); System.out.println(); }  /*Applicazione di Prova: Creiamo un array contenente al suo interno la tabellina del 2  e poi invochiamo il metodo per stampare a video il risultato.*/  public static void main (String[] args) { int[] A = new int [10]; for (int i = 0; i < A.length; i++) A[i] = (i+1)*2; visualizzaArray ( A ); } } 

Nota: Il metodo visualizzaArray sarà spesso utilizzato in altre applicazioni di questo manuale.

Sudoku 060314

Sudoku molto facile per principianti

0 : 0

Usa i tasti freccia o il mouse per spostarti nello schema. I tasti da 1 a 9 per riempire una casella, il tasto 0, Canc oppure Spazio per cancellare.

Regressione polinomiale animazione

Se avete coppie di dati, la regressione polinomiale avvicina i valori con un polinomio in . Mathcad usa una funzione chiamata regress per trovare i coefficienti per la migliore approssimazione polinomiale, qualunque sia il grado da voi scelto.

Ecco l’inizializzazione. Potete usare il foglio di lavoro di Mathcad per i vostri dati introducendoli in due vettori chiamati e . Sceglieremo alcuni dati per illustrare la funzione regress .

Introducete il grado del polinomio che intendete usare:

Mathcad fa il resto con tre equazioni:

Ecco i coefficienti , con il termine noto come primo termine e il coefficiente della potenza pi alta come ultimo termine.

Il polinomio è:

La correlazione per questa approssimazione :

Ora Mathcad rappresenta i dati e la curva di approssimazione :

Seguono gli scarti , che sono i valori attuali dei dati meno i valori previsti dalla funzione approssimante.

Regressione esponenziale

E’ sempre interessante vedere quanto vicino arrivata l’approssimazione ai coefficienti che abbiamo usato per costruire i dati. I coefficienti variavano tra 2 e 6 e noi abbiamo ottenuto per l’approssimazione. nei nostri dati era sempre e per l’approssimazione abbiamo ottenuto . Naturalmente abbiamo aggiunto rumore ai dati, cos che non ci aspettiamo che questi coefficienti dell’approssimazione coincidano esattamente con i coefficienti usati per ottenere i nostri dati. 

————————————————————————————————————————-

Ecco la rappresentazione dei dati e la curva che rappresenta la funzione approssimante .

                 Per vedere l’animazione possiamo cliccare sul grafico seguente

La funzione approssimante con e . Il coefficiente di correlazione per questa approssimazione .

Risultati: l’approssimazione e il grafico

Questo completa la nostra occhiata dentro la scatola nera. Ovviamente ci sarebbe ancora molto da dire, ma siamo pronti per vedere alcuni risultati.

La vostra calcolatrice vi restituir questi valori di prova come la risposta, ma se c’ un po’ di rumore nei vostri dati questi valori potrebbero non essere esattamente i valori che minimizzano la somma degli errori quadratici nell’approssimazione. Cos noi imporremo alla funzione genfit di partire con i nostri valori di prova e di fornirci una risposta pi sicura.

Se osservate gli argomenti in ingresso a genfit vedrete che essi includono i vettori dei dati, i nostri valori di prova per i parametri, e la funzione , che chiaramente ha qualcosa a che fare con la forma della funzione approssimante. Infatti la prima entrata in proprio la nostra funzione con e al posto di e . Se conoscete l’analisi matematica potete notare che gli altri due argomenti in entrata sono le derivate del primo argomento rispetto ai due parametri e . La funzione genfit usa una procedura iterativa che minimizza la somma dei quadrati degli errori nell’approssimazione e ha bisogno di queste derivate per il calcolo. E’ un problema delicato e abbiamo bisogno di iniziare l’iterazione con valori vicini alla risposta finale, ecco perch abbiamo curato la scelta dei valori di prova.

E ora tocca alle equazioni per il calcolo dell’approssimazione. Prima occupiamoci dei valori di prova per i due coefficienti prendendo i logaritmi dei loro valori . Se la vostra calcolatrice pu dare l’approssimazione esponenziale, probabilmente usa questo trucco. Funziona, perch se allora cosicch il logaritmo di una funzione lineare di . Useremo coefficiente angolare e ordinata all’origine della retta che meglio approssima il grafico logaritmico per costruire valori di prova per gli originali parametri esponenziali. L’operatore freccia sopra ci dice che prenderemo i logaritmi di tutti valori dei dati in una volta.

Per essere sicuri che il nostro grafico mostri tutti i dati useremo il max e il min di e per fissare la scala del grafico. Prima troviamo gli intervalli di e e quindi estendiamo un po’ ciascun intervallo. Per rappresentare la funzione approssimante useremo una variabile diversa, .

Prima costruiremo alcuni dati che hanno pressappoco un andamento esponenziale. Sceglieremo alcuni valori per e li sposteremo un po’ a destra e a sinistra. Quindi li passeremo attraverso una funzione esponenziale e li moltiplicheremo per un fattore casuale compreso tra 2 e 6. Ci aggiunge rumore ai nostri dati e la procedura di approssimazione avr un po’ di lavoro da fare.

Dentro la scatola nera

Potete considerare il vostro foglio di lavoro come una scatola nera , come gli ingegneri chiamano un dispositivo di cui si preoccupano unicamente degli input e degli output e non del suo funzionamento. Tutto ci che dovete fare digitare i vostri dati in due vettori chiamati e e andare alla fine del foglio di lavoro per vedere i coefficienti e e costruire un grafico con i dati e la curva approssimante.

Se avete coppie di dati , la regressione esponenziale avvicina i valori con un’espressione della forma . Mathcad pu rapidamente trovare i migliori valori per le costanti e . Esso usa una funzione sofisticata genfit , che rende la somma dei quadrati degli errori nella vostra approssimazione pi piccola possibile.

   Regressione esponenziale animata con Mathcad

Carlo Elce

Onde

La somma di due onde in opposizione di fase produce un’onda stazionaria.
Per rendertene conto clicca sul pulsante a lato

Per rendertene conto clicca sul pulsante a lato

equazione di un onda retrograda
equazione di un onda progressiva
variabile temporale
variabile spaziale
Equazione di un’onda: funzione della variabile temporale e della variabile spaziale
                                                               con Mathcad               
                                                                                                                (Carlo Elce)

Integrazione trapezi

 

Per vedere l’animazione in una modalit controllata dal mouse clicca sul grafico seguente
Errore
Calcolo numerico con la formula
dei trapezi

Valore dell’integrale definito da calcolare
Determinazione dei punti su cui valutare
la funzione da integrare
  h inizialmente vale 2 perch N vale 2
Ampiezza variabile delle suddivisioni
Numero variabile di suddivisioni dell’intervallo di integrazione
Estremi dell’intervallo di integrazione
Funzione da integrare
Integrazione Numerica con Mathcad mediante il Metodo dei Trapezi
                                            
 

Integrale virgola mobile

>>>>

Calcolo in virgola mobile con Mathcad dell’integrale indicato
                                        (Carlo Elce)

Generalmente, il processore simbolico di Mathcad restituisce i risultati senza tenere conto della precisione numerica, cos i termini non vengono ridotti. Se digiti la parola riservata " float " , oppure  se scegli dal menu Symbolics Evaluate Floating Point , o ancora se clicchi su float dal menu View Symbolic float Mathcad restituisce i valori numerici dei risultati con la precisione desiderata.
Inoltre puoi forzare il calcolo dei risultati in virgola mobile usando un parametro k.
Per rendertene conto clicca sul pulsante a lato

Fattoriale

Per vedere il programma in azione clicca sull’icona alla tua destra

Fattoriale di 1
Inizialmente FRAME vale 0 e pertanto n vale 1
Codifica dell’algoritmo di calcolo
Numero intero variabile di cui si vuole calcolare il fattoriale
FRAME variabile incorporata di Mathcad
Programma Mathcad per il calcolo del Fattoriale come funzione Iterativa

Per vedere il programma in azione clicca sull’icona alla tua destra

Fattoriale di 0
Inizialmente FRAME vale 0 e pertanto in questo caaso n vale 1
Codifica dell’algoritmo di calcolo
Numero intero variabile di cui si vuole calcolare il fattoriale
FRAME variabile incorporata di Mathcad
Programma Mathcad per il calcolo del fatt oriale come funzione ricorsiva

Il fattoriale di un numero intero pu essere calcolato con un procedimento ricorsivo o con un procedimento iterativo.

Mathcad consente di usare sia un algoritmo ricorsivo sia un algoritmo iterativo.

Il fattoriale di un numero intero n il prodotto dei primi n numeri interi e si indica con n!
Esso rappresenta il numero delle permutazioni semplici di n oggetti.

Nota
Per inserire del testo con Mathcad basta digitare da tastiera i caratteri che compongono le parole da riportare.
Per le equazioni bisogna avvalersi della Toolbar Calculator e della Evaluation Toolbar, ivece per fare la codifica con Mathcad degli algoritmi di calcolo del fattoriale bisogna servirsi della Programming Toolbar.
Nel file tutto ci che compare di colore marrone o viola testo puro semplice, mentre tutto ci che appare evidenziato in giallo stato digitato mediante le Toolbars di cui sopra.

Calcolo del fattoriale di un numero intero mediante programmazione con Mathcad
                                                               ( Carlo Elce )

Fattori primi

Per vedere il programma in azione clicca sul pulsante a lato

La routine successiva trova i fattori primi (con i loro esponenti) dell’intero variabile n . Da notare che la routine include, nella lista dei suoi argomenti, il vettore P, determinato precedentemente, dei numeri primi minori o uguali a n .

Programma ricorsivo per la ricerca dei numeri primi di un numero intero variabile n :

 

 

Fattorizzazione di un Intero mediante Programmazione con Mathcad

                                                  ( Carlo Elce )

Iterazione cubica complessa

Per vedere il programma in azione clicca sull’icona a lato

Cubica Complessa Iterata mediante Programmazione con Mathcad
                                             (Carlo Elce)

Combinazioni mathcad

Per vedere il numero delle combinazioni C(n,k) al variare di k clicca sul pulsante a lato

Al variare di k si ha:
Numero di combinazioni di n oggetti a k a k
Numero di elementi di un gruppo:
Numero di oggetti:
I coefficienti binomiali C(n,k) sono anche uguali al numero di combinazioni di n oggetti a k a k
ossia al numero di gruppi di k elementi che si riescono a formare con n oggetti.

Calcolo dei Coefficienti Binomiali variabili con Mathcad ( Carlo Elce )

Circonferenza mathcad

 CIRCONFERENZA DI CENTRO NELL’ORIGINE E RAGGIO VARIABILE CON MATHCAD
                                                                     CARLO ELCE

Ascissa del centro:
Ordinata del centro:
Raggio variabile:
Equazione parametrica
della circonferenza

Per vedere il grafico della circonferenza di raggio variabile clicca sul pulsante a lato

Per vedere il grafico della circonferenza di raggio assegnato clicca sul pulsante a lato

Ciclo while somme

Programma Mathcad per il calcolo della Radice Quadrata dei primi 100 numeri interi a meno di 0.000000000001 mediante un Ciclo While
                                                     (Carlo Elce)

Nota
Per inserire del testo con Mathcad basta digitare da tastiera i caratteri che compongono le parole da riportare.
Per le equazioni bisogna avvalersi dellaToolbar Calculator e della Evaluation Toolbar, invece, per fare la codifica con Mathcad dell’algoritmo di calcolo, bisogna servirsi della Programming Toolbar
ed infine, per l’animazione, dal menu a discesa View cliccare sul pulsante Animate…
Nel file tutto ci che compare di colore blu, marrone o viola testo puro semplice, mentre tutto ci che appare evidenziato in giallo stato digitato mediante le Toolbars di cui sopra.

Per vedere il programma in azione clicca sull’icona alla tua destra

Ciclo for somme

Programma Mathcad per le prime 100 somme parziali n-sime mediante un ciclo for
                                                                  (Carlo Elce)

Per la sequenza delle prime 100 somme n-sime clicca sul pulsante seguente

Cardioide

 

dove l’angolo formato dalla linea che congiunge l’origine con il centro del cerchio mobile e l’asse . La curva sar:

Ci piacerebbe animare il disegno della curva facendo in modo che l’angolo vari. Abbiamo bisogno di poter disegnare il cerchio ruotante in qualsiasi posizione .
In tale posizione il nostro cerchio avr centro:
Usando l’equazione del cerchio
troviamo due funzioni che possono essere usate per disegnare il nostro cerchio in una posizione qualsiasi

Cambiando il valore di , qui sotto, puoi vedere la nuova posizione del cerchio e la curva tracciata dal punto solidale ad esso. (Tutti gli angoli sono misurati in radianti.)

Ripetiamo l’impostazione data usando la variabile k come parametro per far variare l’angolo .
Per vedere l’animazione sulla Cardioide clicca sull’icona a lato

Una particolare Epicicloide animata con Mathcad:   la   Cardioide      (Carlo Elce)

Nota
Per inserire del testo con Mathcad basta digitare da tastiera i caratteri che compongono le parole da riportare.
Per le equazioni bisogna avvalersi dellaToolbar Calculator o della Evaluation Toolbar, per i grafici della Toolbar Graph, per le lettere greche della Greek Symbol Toolbar, ed infine, per l’animazione, dal menu a discesa View cliccare sul pulsante Animate.
Nel file tutto ci che compare di colore blu o bordeaux testo puro semplice, mentre tutto ci che appare evidenziato in giallo stato digitato mediante le Toolbars di cui sopra.

Le curve nel piano sono descritte spesso come punti che si muovono sottoposti a certe condizioni. Per esempio, la Cardioide generata da un punto P sulla circonferenza di un cerchio A che rotola su un altro cerchio B avente lo stesso raggio a. Essa un caso particolare dell’Epicicloide in quanto si ottiene da essa imponendo che i raggi dei due cerchi siano uguali tra loro.

Incominciamo col disegnare due cerchi di raggio a e b tangenti esternamente con a=b.

raggi dei  due cerchi

Useremo le equazioni parametriche in funzione di per disegnare il cerchio fisso, ed per quello mobile

equazioni parametriche del cerchio fisso
equazioni dei due rami del cerchio mobile

Il cerchio mobile inizia a rotolare in senso antiorario lungo la circonferenza del cerchio fisso. Se teniamo il nostro occhio fermo su di un punto della circonferenza solidale al cerchio mobile, vediamo che esso traccia una curva man mano che il cerchio rotola partendo dal punto

Metteremo a punto un’animazione che ci mostrer la curva descritta  dal punto solidale al cerchio ruotante.

Con un p di trigonometria ed il disegno qui sotto,

possiamo trovare le equazioni parametriche per la curva tracciata dal punto solidale al cerchio mobile;

Analisi dati

Dati:
Intervalli:
Per costruire l’istogramma digitiamo le  istruzioni seguenti:
Numero di elementi nel vettore dei dati:
Valore medio dei dati:
Deviazione Standard:
Funzione interpolatrice normale:
Secondo voi i punteggi del test sono normalmente distribuiti?

Analisi dei Dati : Analisi dei dati e distribuzione normale  con  Mathcad
                                                   
(Carlo Elce)

 

Mathcad dispone di molte funzioni predefinite che misurano la tendenza centrale e la dispersione di un insieme di dati. Usando queste funzioni possiamo trovare media, mediana, deviazione standard e varianza di un insieme di dati.

Una delle distribuzioni classiche che descrivono molti tipi di dati che ricorrono in natura, nelle scienze e altri campi la distribuzione normale. Quando dei dati sono normalmente distribuiti, tendono ad accumularsi intorno ad un valore centrale, la media, con i punti esterni a tale intorno che diventano tanto meno frequenti quanto pi sono lontani dalla media. Quando si rappresentano dati normalmente distribuiti, il loro grafico la cosiddetta curva a campana. Il punto massimo della curva la media dei dati. Una distribuzione normale ha approssimativamente il 68% della sua distribuzione che cade entro una deviazione standard 1 dalla media; approssimativamente il 95% della distribuzione entro una deviazione standard 2 dalla media; e approssimativamente il 99.7% della distribuzione entro una deviazione standard 3 dalla media.

In un Test di Scienze della Terra, un insegnante ha registrato i seguenti punteggi nel suo registro: 75, 80, 91, 90, 66, 84, 85, 80, 59, 77, 75, 80, 72 e 67. Calcolare media, mediana e deviazione standard di questi punteggi.

Prima creiamo un vettore di dati:

Da notare che usiamo l’operatore matriciale di trasposizione (M T ) per visualizzare i dati in orizzontale.

Quindi, disponiamo i dati in ordine crescente con la funzione predefinita sort di Mathcad:

La media il valor medio dei dati, la somma di tutti i punteggi diviso il numero dei punteggi:

La mediana il numero in posizione centrale o il valor medio dei punteggi centrali quando i dati sono ordinati:

La deviazione standard misura la dispersione dei dati: un valore basso indica che i dati tendono ad accumularsi vicino al valore centrale, mentre un valore alto indica che i dati sono sparpagliati.

Mathcad possiede anche delle funzioni predefinite per trovare il valore massimo e il valore minimo nei dati e anche il numero dei dati.

Valore massimo:
Valore minimo:
Numero dei dati:

Qui sotto, i dati del test sono rappresentati graficamente con un istogramma confrontato con una distribuzione normale avente la stessa media e la stessa deviazione standard:

indice corrispondente al primo elemento del vettore dei dati

Vertici poligoni regolari

Per vedere l’angolo che formano i raggi vettori con l’asse x e le coordinate dei vertici clicca sul pulsante a lato
Uso di variabili range:
Numero variabile di punti per creare il grafico:

I n q uesta sezione illustreremo come sia possibile con Mathcad, usando le variabili range, rappresentare graficamente una curva polare in un piano X-Y.

Uso di Variabili Range per il Grafico delle Curve
VISUALIZZAZIONI GRAFICHE ANIMATE CON MATHCAD ( CARLO ELCE )

Teorema Lagrange

Coefficiente angolare tangente in
Coefficiente angolare secante :
Estremi dell’intervallo [a,b]
Per vedere l’animazione sul teorema del valor medio clicchiamo sul grafico seguente:

Rappresentazione grafica della secante g(t) congiungente gli estremi dell’intervallo [a,b] e della tangente in c.

In accordo con il Teorema del Valor Medio, esiste almeno un punto dell’intervallo (a,b) in cui il coefficiente angolare della retta tangente alla curva uguale a m a b .                                                  Impostiamo un blocco risolutivo di Mathcad per trovare tale punto:

Rapporto incrementale della funzione g(t) nell’intervallo [a,b]:
Estremi dell’intervallo:
Funzione continua e derivabile in tutto R e quindi anche su [a,b]:
Sia y = g(x) un funzione continua sull’intervallo chiuso [a, b] e derivabile almeno nei punti interni ad esso, in tale ipotesi esiste almeno un punto c appartenente all’ntervallo aperto (a,b) tale che si abbia:
Il Teorema del Valor Medio animato con Mathcad (Carlo Elce)

Sistema parametrico

Clicca sul grafico seguente per vedere l’animazione relativa alle soluzioni variabi li
Equazione del fascio di ret te
Equazione del ramo inferiore della circonferenz a
Equazione del ramo superiore della circonferen za
Blocco risolutivo di Mathcad per il calcolo delle soluzioni simbolich e:
Parametro variabile
Risoluzione simbolica e grafica di un sistema parametrico con Mathcad
                                                   Carlo Elce

Serie fourier

Per vedere l’animazione sul grafico del polinomio di Fourier e della funzione data clicca sulla finestra seguente
Polinomio di Fourier:
Calcolo dei coefficienti di Fourier:
Programma per il calcolo dei coefficienti di Fourier :
Ordine variabile della serie approssimante di Fourier:
Introduciamo la semidimensione dell’intervallo di periodicit:
:
Introduciamo una funzione periodica in un intervallo:
In questa sezione viene mostrato come sia possibile calcolare i coefficienti di Fourier per una funzione periodica e generare il polinomio approssimante di Fourier .
Calcolo animato dei coefficienti di Fourier con  Mathcad                                          (Carlo Elce)

Poligoni regolari

Per vedere l’animazione clicca sul pulsante seguente:

Grafico
Numero variabile di lati
Equazioni della circonferenza di raggio unitario
Calcoli Associati
Numero variabile di lati
Parametri interessati

In questa sezione mostreremo come sia possibile disegnare un poligono regolare di n lati, inscritto in una circonferenza, usando le radici n-sime dell’unit, che si distribuiscono simmetricamente rispetto all’origine.

Descrizione
Poligoni Regolari inscritti in una circonferenza con Mathcad (C. Elce)

Orbita pianeta

Orbita ellittica di un pianeta intorno al Sole con Mathcad                

Descrizione

Le orbite planetarie degli oggetti su una traiettoria ellittica intorno al Sole sono illustrate dalla seguente animazione:

Parametri interessati
Raggio del Sole nel grafico illustrativo
Raggio del pianeta nel grafico illustrativo
Calcoli associati
Traiettoria ellittica
Dati parametrici per il grafico del Sole
Coordinate variabili
del centro del pianeta
Dati parametrici per il grafico del pianeta utilizzato nell’animazione

Matrici triangolari

Programma per formare una matrice triangolare bassa:
Programma per formare una matrice triangolare alta:
Per formare le matrici diagonali a partire dai vettori v e w digitiamo:
Immettiamo i vettori:
Per creare una matrice unitaria di ordine 3 digitiamo:

In questa sezione mostreremo come Mathcad consenta di lavorare con particolari tipi di matrici.

Particolari Tipi di Matrici con Mathcad  ( Carlo Elce )

Mappa logistica

Sequenza logistica per il grafico
Clicca sul grafico seguente per vedere l’animazione
Grafico della sequenza della funzione logistica
Numero di iterazioni
—————————————————————————————————- ——–
Mappa della funzione logistica con Mathcad ( Carlo Elce )
Descrizione

La funzione logistica, , che interviene nella teoria del caos, qui viene rappresentata graficamente. Inoltre la sequenza delle successive iterazioni di questa funzione viene graficata con le sue orbite, evidenziando come le orbite caotiche tendono a stabilizzarsi.

Parametri Coinvolti

Coefficiente della funzione logistica (0 a 4) (Con il valore di  a = 3.2 vengono descritte le orbite periodiche.)

Valore iniziale della sequenza della funzione logistica
Numero di iterazioni nella sequenza della funzione logistica
Calcoli
Funzione logistica
Sequenza logistica

Isometrie piane

Formulazione complessa con Mathcad delle Isometrie piane  ( Carlo Elce )

In questa sezione mostreremo l’uso di Mathcad nello studio delle trasformazioni geometriche applicate alle figure piane. In particolare, vedremo le isometrie applicate ai movimenti rigidi delle figure piane. Useremo degli esempi per illustrare tali concetti.

Ogni isometria può essere considerata composta da tre tipi di trasformazioni elementari: Traslazioni, Rotazioni intorno all’origine e Simmetrie rispetto all’asse x .

La Traslazione di un poligono, i cui vertici sono rappresentati da un vettore complesso, si può ottenere come somma di un vettore complesso e di un numero complesso. Mathcad si rivela molto utile nel sommare un numero complesso ad un vettore in quanto somma ad ogni componente del vettore il numero dato. Per R uotare un poligono di un angolo v intorno all’origine basta moltiplicare il vettore complesso, i cui elementi rappresentano i vertici del poligono, per v. Per la simmetria di un vettore A rispetto all’asse x basta considerare i complessi coniugati dei vertici del poligono dato.

Per vedere l’animazione clicca sul grafico seguente

Per le rotazioni intorno all’origine del poligono individuato dal vettore A si procede nel modo seguente:
Per vedere l’animazione clicca sul grafico seguente

Per la simmetria rispetto all’asse x basta considerare il vettore avente come elementi i complessi coniugati degli elementi del vettore A . Pertanto basta considerare il seguente vettore e rappresentarlo

Per la simmetria rispetto ad una retta obliqua, passante per l’origine, basta considerare la trasformazione seguente:

Per una simmetria rispetto ad una retta, passante per l’origine degli assi ed inclinata di 30 gradi rispetto all’asse x, bisogna considerare i vettori seguenti :

Per la simmetria rispetto ad una retta obliqua qualsiasi, non passante per l’origine, basta considerare la trasformazione seguente:

Per una simmetria rispetto ad una retta, non passante per l’origine degli assi ed inclinata di 30 gradi rispetto all’asse x, bisogna considerare i vettori seguenti:

Inviluppo parabola

Inviluppo animato della parabola con Mathcad (C. Elce)
Questo programma con Mathcad permette di trovare la tangente in un punto variabile x di una curva di equazione y=f(x):
Le definizioni che intervengono in questo file si trovano nel file Def01_04.mcd all’indirizzo:
La seguente funzione restituisce una serie di tangenti alla curva distribuite nei punti dell’intervallo I Il parametro S serve ad individuare l’intervallo [-S,S] in cui rappresentare la tangente.
Per vedere l’animazione sull’inviluppo clicca sul grafico seguente

Infinitesima x limitata

 
Per vedere il comportamento di f(x) in un intorno variabile di 0 clicca sul grafico seguente
definizione della funzione
intervallo di variazione della variabile x
d semidimensione variabile dell’intorno di 0
k parametro variabile
FRAME variabile incorporata di Mathcad

Nota
Per inserire del testo con  Mathcad  basta digitare da tastiera i caratteri che compongono le parole da riportare.
Per le equazioni bisogna avvalersi dellaToolbar Calculator o della Evaluation Toolbar, per i grafici della Toolbar Graph, ed infine, per l’animazione, dal menu a discesa View cliccare sul pulsante Animate.
Nel file tutto ci che compare di colore viola, blu o marrone testo puro semplice, mentre tutto ci che appare evidenziato in giallo stato digitato mediante le Toolbars di cui sopra.

Rappresentazione con Mathcad della funzione in un intorno variabile di 0                                                                                

Logaritmo animazione

 

Logaritmo in base 10 e in base b variabile  con Mathcad (Carlo Elce)
FRAME variabile incorporata di Mathcad
 base variabile del logaritmo
intervallo di variazione della variabile x
definizione parametrica della funzione logaritmo in base b
definizione della funzione logaritmo in base 10

Per vedere la funzione logaritmo animata clicca sull’icona a lato

Nota
Per inserire del testo con Mathcad basta digitare da tastiera i caratteri che compongono le parole da riportare.
Per le equazioni bisogna avvalersi dellaToolbar Calculator e della Evaluation Toolbar, invece, per tracciare i grafici, bisogna servirsi della Graph Toolbar
ed infine, per l’animazione, dal menu a discesa View cliccare sul pulsante Animate…
Nel file tutto ci che compare di colore blu, marrone o viola testo puro semplice, mentre tutto ci che appare evidenziato in giallo stato digitato mediante le Toolbars di cui sopra.

Per vedere logb (10) al variare della base clicca sull’icona a lato                      

Crivello eratostene

Programma Mathcad per la ricerca dei numeri primi con il crivello di Eratostene
                                                             (Carlo Elce
)

Nota
Per inserire del testo con Mathcad basta digitare da tastiera i caratteri che compongono le parole da riportare.
Per le equazioni bisogna avvalersi dellaToolbar Calculator e della Evaluation Toolbar, ivece, per fare la codifica dell’algoritmo di Eratostene, bisogna servirsi della Programming Toolbar.
Nel file tutto ci che compare di colore marrone o viola testo puro semplice, mentre tutto ci che appare evidenziato in giallo stato digitato mediante le Toolbars di cui sopra.

FRAME variabile incorporata di mathcad
k indice della sequenza dei numeri primi
inizialmente FRAME vale 0 e pertanto k vale 1
primo elemento della sequenza dei numeri primi
 
Per vedere il programma in azione clicca sull’icona a lato

Cicloide mathcad flash

 
Esempio : Trovare l’area e la lunghezza di un arco conoscendo il raggio del cerchio, a .
Lunghezza di un arco:
Area sottesa da un arco:

Per vedere l’animazione in una modalit controllata dal mouse clicca sulla finestra grafica seguente
Coordinate del punto P sulla circonferenza e solidale con essa :
La Cicloide con Mathcad e Flash 5: equazioni ed animazione (Carlo Elce)

Nota                                                                                                                                                      Per inserire del testo con Mathcad basta digitare da tastiera i caratteri che compongono le parole da riportare.
Per le equazioni bisogna avvalersi della Calculator Toolbar, per i grafici della Graph Toolbar ed infine per le lettere greche della Greek Symbol Toolbar.
Nel file tutto ci che compare di colore marrone testo puro semplice, mentre tutto ci, che appare evidenziato in giallo, stato digitato mediante le Toolbars di cui sopra.

La cicloide la curva descritta dal punto P sulla circonferenza di raggio a quando questa rotola su di un piano orizzontale.
Variabile incorporata
FRAME
Parametro variabile
Equazioni parametriche della cicloide:
Equazioni parametriche dei due rami della circonferenza di raggio a e di centro variabile C(k,a) :

Proiezioni cartografiche

Il procedimento con il quale le coordinate geografiche (latitudine e longitudine) sono trasformate da una sfera tridimensionale in una mappa piana bidimensionale chiamato proiezione cartografica. La branca della scienza che si occupa della effettuazione di tali proiezioni prende il nome di cartografia.

Le dimensioni dei continenti, degli oceani, dei paesi e le loro distanze vengono tutte modificate quando sono trasformate in quelle corrispondenti su di una superficie piana.

Un metodo comune di classificazione delle proiezioni su mappe bidimensionali è quello di raggrupparle secondo il tipo di superficie sulla quale la sfera è stata proiettata: cilindrica, conica e azimutale. Questa classificazione fornisce un vantaggioso sistema per visualizzare e comprendere il processo di trasformazione.

Nelle proiezioni cilindriche, le distorsioni diventano sempre più considerevoli con l’aumentare della distanza dei punti considerati dall’equatore, come mostrato nel seguente disegno. Si noti come le aree trasformate  risultano più grandi man mano che ci si sposti verso latitudini più alte.

Una proiezione azimutale viene spesso usata per mappe con forme circolari o quadrate. È costruita proiettando punti della sfera su un piano tangente alla sfera in un punto, spesso situato a uno dei due poli della Terra.

Una proiezione conica è particolarmente adatta per mostrare aree situate alle latitudini medie, con estensione da est a ovest (per esempio gli Stati Uniti). Questa proiezione si ottiene sviluppando su un piano la superficie laterale di un cono retto, tangente alla sfera lungo un parallelo o secante questa secondo due paralleli.

Tutte queste varie proiezioni possono essere rappresentate con semplicità, riportando latitudine e longitudine (coordinate sferiche) su di un piano XY (coordinate Cartesiane). È davvero facile costruirle con Mathcad.

Per prima cosa, leggiamo un ampio insieme di dati (circa 7000 punti!) di longitudini e latitudini nella variabile

Quindi visualizziamo le latitudini e le  longitudini prodotte dalla proiezione cilindrica:

Siccome latitudine e longitudine di un luogo sono solamente le sue coordinate sferiche, per disegnare i nostri dati sulla superficie di un globo in tre dimensioni, abbiamo bisogno di convertirli da coordinate sferiche a coordinate Cartesiane (x,y,z):

Se volessimo far ruotare il globo attorno all’asse, che unisce Polo Nord e Polo Sud, possiamo utilizzare una matrice di rotazione con parametro:

Variando il valore dell’angolo di rotazione q vedremo il globo ruotare . Per rendertene conto clicca sul grafico seguente:

Calcolo della lunghezza dell’arco di curva di una funzione con Mathcad

CALCOLO DIFFERENZIALE
Calcolo della lunghezza dell’arco di curva di una funzione con Mathcad

                                               (Carlo Elce)

In questa sezione mostreremo come sia possibile rappresentare e calcolare la lunghezza di un arco di curva variabile con Mathcad.
Funzione di cui si vuole calcolare l’arco di curva:
Ascissa del punto iniziale:
Ascissa del punto finale:
Parametri variabili per il calcolo dell’arco variabile e del suo grafico:
Grafico di f(x) e dell’arco variabile su f(x):
Lunghezza dell’arco di circonferenza:

Apertura angolare delle forbici

Componente SmartSketch: Apertura angolare delle forbici
COMPONENTI  IN  MATHCAD   ( CARLO  ELCE )

 

In questo file viene utilizzato Mathcad per calcolare la variazione dell’apertura angolare delle forbici in funzione della velocità angolare e dell’intervallo di tempo. Il componente SmartSketch di Mathcad è usato per visualizzare il movimento delle forbici basando la variazione automatica del disegno sul calcolo matematico.

parametro variabile
velocità angolare
variabile temporale
Calcolo dell’apertura angolare:
apertura angolare
Clicca sul pulsante play per vedere l’animazione

Folium cartesio

Grafico  del  Folium  di  Cartesio  con  Mathcad  ( Carlo Elce )

Le funzioni implicite in x e y sono quelle funzioni in cui non è facile isolare una variabile in funzione dell’altra. Per esempio, consideriamo il Folium di Cartesio la cui equazione è x^3 + y^3 -3*x*y = 0.
Per graficare questa funzione con Mathcad è consigliabile usare il comando "Contour Plot". In questo modo si riuscirà ad ottenere il grafico della funzione implicita come curva di livello di una superficie dello spazio a tre dimensioni.

parametro variabile
Estremi dell’intervallo in cui deve variare x :
Immettiamo il numero di divisioni dell’intervallo in cui deve variare x :
Estremi dell’intervallo in cui deve variare y :
Immettiamo il numero di divisioni dell’intervallo in cui deve variare y :
:

La funzione di cui sopra ammette una rappresentazione parametrica razionale:
E pertanto:

Frange di interferenza di due sorgenti ondulatorie con Mathcad

I fenomeni, che si verificano quando due onde vengono a sovrapporsi in una regione dello spazio, sono chiamati fenomeni di interferenza.

Due sorgenti sonore, che oscillano in fase, emettono un’onda sonora sinusoidale con la stessa frequenza delle sorgenti. Queste frange di interferenza si costruiscono semplicemente sommando due onde sonore coerenti emesse da due sorgenti poste ad una certa distanza tra loro. I punti dello spazio, la cui differenza delle distanze dalle due sorgenti è uguale ad un multiplo pari di mezza lunghezza d’onda, oscillano con una un’ampiezza di oscillazione che è somma delle due ampiezze di partenza (interferenza costruttiva). In questi punti l’oscillazione ha un massimo o un minimo. Nei punti invece, la cui differenza delle distanze dalle due sorgenti è un multiplo dispari di mezza lunghezza d’onda, i vettori oscillazione si sottraggono e si elidono a vicenda (interferenza distruttiva). In questi punti l’ampiezza di oscillazione è nulla.

Per visualizzare questo processo, possiamo usare il menu Tools/Animation/Record di Mathcad e, dopo aver selezionata l’area in cui localizzato il grafico del fenomeno espresso mediante funzioni parametriche, clicchiamo sul pulsante Record Animation/Animate.

A tale scopo, per prima cosa, definiamo i parametri caratteristici dell’onda sonora.
Velocit del suono:
Frequenza del suono:
A partire dal valore di questi due parametri, troviamo le altre caratteristiche dell’onda usando le formule seguenti:
Pulsazione:
Lunghezza d’onda :
Frequenza spaziale:
Periodo:
Risoluzione del grafico in pixels :
La dimensione della finestra grafica viene posta uguale a 6 lunghezze d’onda. Una lunghezza d’onda corrisponde alla distanza tra due cerchi concentrici nei grafici seguenti:
Distanza tra le due sorgenti:
Il nostro prossimo passo sar quello di definire la griglia per il grafico della nostra superficie.
Immettiamo le equazioni delle nostre onde al lavoro:
Queste due funzioni in due variabili, periodiche nel tempo e nello spazio, sono le equazioni delle onde in due dimensioni (rispetto alle coordinate x e y ).
Per ottenere le frange di interferenza dobbiamo comporre le due onde sommando le funzioni sorgente1 e sorgente2 :
I grafici seguenti sono controllati dalle seguenti variabili globali che restano tali in tutta l’animazione Si potrebbero modificare tali valori e vedere come appaiono i grafici..
Alla risoluzione in pixels viene assegnato il valore:
Alla dimensione della finestra grafica viene assegnato il valore:
Distanza tra le due sorgenti :

Per avere una computazione agevole dell’animazione stata usata la variabile incorporata FRAME, come parametro variabile, in relazione alla variabile tempo, considerata come variabile globale.