Prodotto di Kronecker
Due matrici 2×2 danno un prodotto di Kronecker 4×4 formato da copie scalate della seconda. Inserisca entrambe le matrici riga per riga e ottenga A⊗B con la dimensione di ciascun fattore, anche quando le forme non coincidono. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Il prodotto tensoriale di Kronecker di due matrici è la matrice a blocchi che si ottiene scalando l'intero secondo fattore per ogni voce del primo. Gli studenti incontrano questa costruzione in algebra multilineare, informazione quantistica (operatori a due qubit scritti come prodotti di porte a un qubit), teoria dei grafi (prodotti di Kronecker di matrici di adiacenza) e elaborazione discreta dei segnali (filtri separabili). Questo calcolatore accetta due matrici rettangolari come righe di numeri finiti, costruisce il prodotto di Kronecker con un ciclo deterministico a quattro indici e restituisce la matrice prodotto insieme alle forme dei fattori.
Che cos'è il prodotto tensoriale di Kronecker — e che cosa non è
Il prodotto di Kronecker è una costruzione a blocchi, non un prodotto interno riga-colonna. Scriva A come una tabella m per n di numeri e B come una tabella p per q. Tale definizione non richiede che le dimensioni interne di A e B coincidano: una matrice due per tre può essere tensorizzata con una riga uno per due, o una colonna con una quadrata, e il prodotto è sempre definito finché entrambi i fattori sono rettangolari e finiti.
Questo è il primo contrasto con la moltiplicazione matriciale ordinaria, indefinita a meno che le colonne di A non uguaglino le righe di B. Non è nemmeno il prodotto di Hadamard, che moltiplica voci corrispondenti ed esige la stessa forma, né le costruzioni di Khatri–Rao o della somma di Kronecker che compaiono in altri angoli dell'algebra multilineare.
L'ordine conta: A tensore B e B tensore A hanno le stesse voci solo dopo un riordino noto di righe e colonne, e sono uguali come matrici solo in casi speciali, ad esempio quando entrambi i fattori sono uno per uno. Una verifica classica con interi è la coppia A uguale a [[1, 2], [3, 4]] e B uguale a [[0, 5], [6, 7]], il cui prodotto di Kronecker è la matrice quattro per quattro con prima riga [0, 5, 0, 10] e ultima riga [18, 21, 24, 28].
Questo calcolatore implementa esattamente quella regola a blocchi del manuale, arrotonda ogni voce pubblicata alla precisione richiesta e rifiuta di inventare un risultato quando una cella manca, è irregolare o non è finita.
Dove si usa il prodotto di Kronecker
Le aule e le piattaforme di tutoraggio usano un calcolatore del prodotto tensoriale di Kronecker perché chi impara possa controllare una costruzione a blocchi senza espandere a mano ogni copia scalata di B e senza confondere l'operazione con il prodotto ordinario A per B. I generatori d'esame hanno bisogno di un oracolo deterministico che segni una cella non finita come errore invece di restituire una matrice che contiene NaN, che un correttore difettoso potrebbe trattare come quasi successo.
Gli script di elaborazione dei segnali e delle immagini costruiscono nuclei separabili allo stesso modo, e gli algoritmi sui grafi che prendono il prodotto di Kronecker di matrici di adiacenza necessitano di un percorso esplicito e documentato per esempi interi modesti. La convalida fallita non consuma saldo.
Tenga le richieste entro il limite di ingresso venti per venti e il tetto di prodotto duecento per duecento, fissi il prodotto arrotondato nei test e otterrà matrici di Kronecker riproducibili per i compiti, i plugin LMS e i worker al bordo, senza erigere un'infrastruttura simbolica propria.
Casi d'uso
Chiavi di compiti ed esami
Costruisca A⊗B per matrici intere da manuale, controlli la forma (m·p)×(n·q) e verifichi ogni blocco rispetto a una copia di B scalata a mano.
Quantistica, grafi e nuclei separabili
Componga operatori a due qubit, grafi di Kronecker o filtri separabili quando entrambi i fattori rientrano nei limiti pubblicati di righe e colonne.
Domande frequenti
In che cosa il prodotto tensoriale di Kronecker differisce dalla moltiplicazione matriciale ordinaria?
La moltiplicazione ordinaria esige che le colonne di A uguaglino le righe di B e produce una matrice m×p di prodotti scalari riga-colonna. Il prodotto di Kronecker A⊗B è sempre definito per A e B rettangolari: dispone copie scalate di B e ha forma (m·p)×(n·q).
Che cosa succede se una matrice contiene Infinity o NaN?
Ogni voce di entrambi i fattori deve essere un numero finito; i valori non finiti non vengono fatturati e non compaiono mai in un prodotto.
A⊗B è uguale a B⊗A?
Non in generale. I due prodotti contengono gli stessi numeri dopo una permutazione nota di righe e colonne, ma sono uguali come matrici solo in casi speciali. Questo strumento calcola sempre A⊗B in quest'ordine.
Quali dimensioni di matrice sono supportate?
Ogni fattore può avere fino a 20 righe e 20 colonne. Il prodotto viene rifiutato se supererebbe 200 righe o 200 colonne.
Le due matrici devono avere dimensioni compatibili per il prodotto di Kronecker?
No. A differenza della moltiplicazione ordinaria, si possono combinare due matrici rettangolari qualsiasi: una 2×3 funziona con una riga 1×2. Se A ha m righe e n colonne e B ne ha p e q, il risultato ha m·p righe e n·q colonne.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/math/tensor-product \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":[[1,2],[3,4]],"b":[[0,5],[6,7]]}'const res = await fetch("https://api.kit.forhosting.com/math/tensor-product", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": [
[
1,
2
],
[
3,
4
]
],
"b": [
[
0,
5
],
[
6,
7
]
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/tensor-product",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": [
[
1,
2
],
[
3,
4
]
],
"b": [
[
0,
5
],
[
6,
7
]
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/tensor-product", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":[[1,2],[3,4]],"b":[[0,5],[6,7]]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":[[1,2],[3,4]],"b":[[0,5],[6,7]]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/tensor-product", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"a": [
[
1,
2
],
[
3,
4
]
],
"b": [
[
0,
5
],
[
6,
7
]
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.tensor_product",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_rows | 20 |
max_cols | 20 |
max_product_rows | 200 |
max_product_cols | 200 |
max_abs_entry | 1000000000000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Se A è m per n e B è p per q, A tensore B è la matrice (m volte p) per (n volte q) il cui blocco (i, j) è a_ij per B. Una cella non finita viene rifiutata con invalid_input anziché diventare in silenzio NaN o Infinity. Nessuna rete, nessuna casualità e un contratto che Lei può fissare nei test a $0.002 per chiamata riuscita.
Che cos'è il prodotto tensoriale di Kronecker — e che cosa non è
Allora A tensore B è la matrice alta e larga ottenuta sostituendo ogni voce a_ij di A con l'intero blocco scalato a_ij per B. Il risultato ha quindi m volte p righe e n volte q colonne, e la voce alla riga i volte p più r e alla colonna j volte q più c è esattamente a_ij per b_rc.
Contratto di ingresso, forma della risposta e fallimenti non finiti
Il campo a è il fattore sinistro: un array non vuoto di righe, ogni riga un array non vuoto di numeri finiti, tutte le righe della stessa lunghezza così la matrice è rettangolare. Il campo b è il fattore destro nella stessa forma per righe. La precision facoltativa, tra zero e quindici decimali, arrotonda ogni voce pubblicata del prodotto; il valore predefinito è dieci. Non c'è coercizione silenziosa di null a zero né diffusione di uno scalare in una matrice. La convalida fallita non viene fatturata. Invii con POST un corpo JSON con due matrici obbligatorie. Gli alias matrix_a, left e A per il primo fattore e matrix_b, right e B per il secondo sono accettati affinché fogli di calcolo, stringhe di query e moduli tipizzati riutilizzino lo stesso contratto. Ogni cella può arrivare come numero JSON o come stringa numerica; stringhe vuote, oggetti e token non finiti (Infinity, NaN o una stringa che non si analizza come decimale finito) falliscono con invalid_input che nomina il percorso del campo colpevole, ad esempio a[1][0]. Gli ingressi sono limitati a venti righe e venti colonne ciascuno, e il prodotto viene rifiutato se supererebbe duecento righe o duecento colonne, così una sola richiesta resta in un isolate Worker anche se la forma di Kronecker moltiplica le dimensioni dei fattori. In caso di successo il corpo restituisce product come matrice a blocchi nella stessa forma nidificata, i fattori ecoati a e b, i quattro numeri di forma rows_a, cols_a, rows_b e cols_b, le dimensioni del prodotto, la precisione usata, una breve stringa di formula che documenta la regola a quattro indici e i massimi di ingresso pubblicati. Abbini la risposta alla propria composizione se ha bisogno di parentesi di Kronecker ornate; questo endpoint restituisce solo numeri JSON e non emette grafici né riscritture simboliche.
Dove un'API di prodotto di Kronecker merita il proprio posto
I quaderni di informazione quantistica scrivono operatori a due qubit come prodotti di Kronecker di matrici a un qubit; una piccola API parse consente a una pagina di lezione di verificare X ⊗ I o H ⊗ H senza trascinare un intero sistema di algebra computazionale. Poiché l'implementazione è parse di livello A pura, ogni chiamata riuscita costa il prezzo base pubblicato $0.002, senza token di modello e senza rete in uscita.
Casi di integrazione
Fixture deterministiche per CI
Generi prodotti di Kronecker riproducibili per i test unitari senza mantenere a mano espansioni a quattro indici né controlli di non finitezza.
Domande tecniche
Quanto costa il calcolatore del prodotto tensoriale?
Lo strumento nel browser è gratuito. Le richieste API usano saldo KIT prepagato a $0.002 per chiamata riuscita; l'ingresso non valido non viene fatturato.