Ipercubo

Animazione HTML5+Javascript di un ipercubo >>> ipercubo.html

Animazione Python+Tkinter di un ipercubo >>> ipercubo.py

import tkinter as tk
from math import sin, cos

class Ipercubo:
def __init__(self, master):
self.master = master
self.canvas = tk.Canvas(master, width=600, height=600, bg='white')
self.canvas.pack()

self.angolo = 0.0
self.punti = self.genera_vertici()
self.spigoli = self.genera_spigoli()
self.disegna()

self.anima()

def genera_vertici(self):
# Vertici di un ipercubo in 4D
return [(-1, -1, -1, -1), (-1, -1, -1, 1), (-1, -1, 1, -1), (-1, -1, 1, 1),
(-1, 1, -1, -1), (-1, 1, -1, 1), (-1, 1, 1, -1), (-1, 1, 1, 1),
(1, -1, -1, -1), (1, -1, -1, 1), (1, -1, 1, -1), (1, -1, 1, 1),
(1, 1, -1, -1), (1, 1, -1, 1), (1, 1, 1, -1), (1, 1, 1, 1)]

def genera_spigoli(self):
# Genera gli spigoli tra i vertici
spigoli = []
for i in range(16):
for j in range(i + 1, 16):
if bin(i ^ j).count('1') == 1: # Collega i punti che differiscono in un solo bit
spigoli.append((i, j))
return spigoli

def proietta(self, punto):
# Proietta il punto 4D in 2D
z = punto[2]
k = 300 / (3 + z) # Fattore di prospettiva
x = punto[0] * k
y = punto[1] * k
return (x + 300, y + 300) # Trasla al centro del canvas

def disegna(self):
self.canvas.delete("all") # Pulisce il canvas
punti_proiettati = [self.proietta(self.ruota(punto)) for punto in self.punti]

# Disegna gli spigoli tra i vertici
for spigolo in self.spigoli:
self.canvas.create_line(punti_proiettati[spigolo[0]], punti_proiettati[spigolo[1]], fill='black')

def ruota(self, punto):
x = punto[0]
y = punto[1]
z = punto[2]
t = punto[3]

# Ruota l'ipercubo attorno agli assi
angolo_x = self.angolo * 0.1
angolo_y = self.angolo * 0.2
angolo_z = self.angolo * 0.3
angolo_t = self.angolo * 0.4

x, y = x * cos(angolo_x) - y * sin(angolo_x), x * sin(angolo_x) + y * cos(angolo_x)
y, z = y * cos(angolo_y) - z * sin(angolo_y), y * sin(angolo_y) + z * cos(angolo_y)
z, t = z * cos(angolo_z) - t * sin(angolo_z), z * sin(angolo_z) + t * cos(angolo_z)
t, x = t * cos(angolo_t) - x * sin(angolo_t), t * sin(angolo_t) + x * cos(angolo_t)

return (x, y, z, t)

def anima(self):
self.angolo += 0.05 # Incrementa l'angolo
self.disegna()
self.master.after(50, self.anima) # Richiama nuovamente anima dopo 50 ms

if __name__ == "__main__":
root = tk.Tk()
root.title("Ipercubo")
Ipercubo(root)
root.mainloop()

Per provare la versione Python è necessario disporre di un ambiente di sviluppo per Python, come Thonny – Python IDE for beginners scaricabile gratuitamente all’indirizzo https://thonny.org/
Dopo l’installazione di Thonny è sufficiente copiare e incollare il listato precedente nell’ambiente di sviluppo ed eseguirlo con il Run ▶.

Attività da svolgere a casa durante la settimana di sospensione delle attività didattiche (2-8 marzo 2020)

A causa delle difficoltà di accesso al registro elettronico, pubblico in questa pagina un elenco di attività didattiche da svolgere autonomamente a casa.

Classe 1ª H

Algebra: studiare con attenzione la teoria al §2 (pag. 369-375) soffermandosi in particolare sugli esempi; quindi, svolgere gradualmente nell’arco della settimana gli esercizi da pag. 387 n. 15, 17, 23, 28, 43, 46, 61, 65, 70, 73, 87, 92, 116, 119, 126, 131, 144, 148, 178, 182, 144, 212, 223, 225, 229, 230.
Fisica: ripassare sul libro le operazioni con i vettori in componenti cartesiane §3 (pag. 95-102) soffermandosi in particolare sugli esercizi di esempio; studiare autonomamente l’utilizzo della funzione tg-1 a pag. 99; quindi, svolgere gli esercizi a pag. 102 n. 1, 2, 3, 4.

Classe 4ª A

Fisica: continuare lo studio della teoria sul potenziale elettrico sul libro (pag. 175-177, 180-185) soffermandosi in particolare sugli esercizi svolti; quindi risolvere a pag. 206 es. 8, 11, 18, 25, 38, 40.

Classe 4ª F

Matematica: studiare con attenzione la teoria al §3 (pag. 349-354) soffermandosi in particolare sugli esempi; quindi, svolgere gradualmente nell’arco della settimana gli esercizi da pag. 372 n. 78, 80, 85, 89, 99, 101, 107, 115, (118), 119, 120.
Fisica: studiare la parte iniziale della teoria sul potenziale elettrico sul libro (pag. 172-177, 180-182) soffermandosi in particolare sugli esercizi svolti; quindi risolvere a pag. 206 es. 2, 4, 8, 11, 18, 25.

Google annuncia la supremazia quantistica

Con uno studio pubblicato su “Nature” arriva la conferma che il computer quantistico sviluppato dai ricercatori di Google ha superato il più potente supercomputer del mondo costruito da IBM.

L’articolo pubblicato su “Nature” riporta che, grazie al processore quantistico programmabile Sycamore a 53 qubit, è stato possibile completare in appena 200 secondi un’elaborazione che anche al più potente supercomputer del mondo (il Summit di IBM) avrebbe richiesto circa 10.000 anni. Un’affermazione inequivocabile del raggiungimento della quantum supremacy, ossia essere riusciti a battere le prestazioni dei computer tradizionali più potenti in circolazione.

Il traguardo raggiunto ha una grande rilevanza scientifica, non solo tecnologica, “perché finora non si aveva nessuna certezza che un simile risultato si potesse davvero ottenere. Si temeva che non fosse possibile mantenere le caratteristiche di un sistema quantistico anche in un sistema di dimensioni notevoli come questo”.

Articolo completo disponibile sul sito on-line di Le Scienze:

https://www.lescienze.it/news/2019/10/24/news/google_supremazia_quantistica-4592609/

Test in preparazione alle prove INVALSI

Segnalo i link a cui potete trovare esempi di prove INVALSI computer based, simili a quelle che saranno somministrate nel mese di maggio agli allievi delle classi seconde:
 
Indico anche un link ad un sito (non ufficiale INVALSI)  in cui è possibile avere correzione automatica dei test/esercitazione, anche se relativi alle prove somministrate gli scorsi anni:
 
Comunicato di Gabriella Rosso
(referente INVALSI per il Liceo)

L’uomo che vide l’infinito

Il trailer (in inglese) di “L’uomo che vide l’infinito”, con Dev Patel nel ruolo del protagonista, il matematico indiano Srinivasa Ramanujan, e Jeremy Irons, nel ruolo del suo mentore G.H. Hardy. La pellicolà uscirà in italia il prossimo 9 giugno.