{"id":10507,"date":"2019-11-09T16:48:38","date_gmt":"2019-11-09T15:48:38","guid":{"rendered":"http:\/\/www.valcon.it\/python\/?p=10507"},"modified":"2026-10-09T08:54:41","modified_gmt":"2026-10-09T06:54:41","slug":"matrici-quadrate","status":"publish","type":"post","link":"https:\/\/www.valcon.it\/python\/matrici-quadrate\/","title":{"rendered":"Matrici quadrate"},"content":{"rendered":"\n<p>Considera le tre matrici seguenti come <em>parametri attuali<\/em> nelle chiamate delle funzioni<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nA = &#x5B; &#x5B;2, 7], &#x5B;1, 0] ]\nB = &#x5B; &#x5B;1, 2], &#x5B;0, 4] ]\nC = &#x5B; &#x5B;1, 8], &#x5B;0, 5] ]\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Copia<\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-layout-1 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\ndef copia(m1):\n    m2=&#x5B;]\n    n=len(m1)  \n    for r in range(n): \n        riga=&#x5B;] \n        for c in range(n): \n            riga.append(m1&#x5B;r]&#x5B;c]) \n        m2.append(riga) \n    return m2\n<\/pre><\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\ndef copia(m1):\n    m2=&#x5B;] \n    for r1 in m1: \n        r2=&#x5B;] \n        for x in r1: \n            r2.append(x) \n        m2.append(r2) \n    return m2\n<\/pre><\/div><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Sottomatrice<\/h2>\n\n\n\n<p>Crea una sottomatrice di <strong>m<\/strong><br>Copia tutto tranne la riga <strong>er<\/strong> e la colonna <strong>ec<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\ndef sottoMatrice(m, er, ec):      \n    n=len(m)\n\n    mm=&#x5B;]\n    for r in range(n):\n        if(r != er): \n            riga=&#x5B;]\n            for c in range(n):\n                if(c != ec):\n                    riga.append(m&#x5B;r]&#x5B;c])\n            mm.append(riga)   \n\n    return mm\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Trasposta<\/h2>\n\n\n\n<p><em>Gli indici <strong>r<\/strong> e <strong>c<\/strong> sono scambiati&#8230;<\/em><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\ndef trasposta(m1):\n    m2=&#x5B;]\n    n=len(m1)\n    for r in range(n):\n        riga=&#x5B;]\n        for c in range(n):\n            riga.append(m1&#x5B;c]&#x5B;r])\n        m2.append(riga)\n    return m2\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Prodotto per uno scalare<\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-layout-2 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\ndef scalare(k, m1): \n    m2=&#x5B;] \n    n=len(m1) \n    for r in range(n): \n        riga=&#x5B;] \n        for c in range(n): \n            riga.append(k*m1&#x5B;r]&#x5B;c] ) \n        m2.append(riga) \n    return m2 \n<\/pre><\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\ndef scalare(k, m1):\n    m2=&#x5B;] \n    for r1 in m1: \n        r2=&#x5B;] \n        for x in r1: \n            r2.append(k*x) \n        m2.append(r2) \n    return m2\n<\/pre><\/div><\/div>\n<\/div>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nprint(scalare(2, A))  # &#x5B;&#x5B;4,14], &#x5B;2, 0]]\nprint(scalare(2, B))  # &#x5B;&#x5B;2, 4], &#x5B;0, 8]]\nprint(scalare(2, C))  # &#x5B;&#x5B;2,16], &#x5B;0,10]]\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Somma<\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-layout-3 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\ndef somma(m1, m2):   \n    m3=&#x5B;]\n    n=len(mat1)\n    for r in range(n): \n        riga=&#x5B;] \n        for c in range(n): \n            riga.append(m1&#x5B;r]&#x5B;c]+m2&#x5B;r]&#x5B;c]) \n        m3.append(riga) \n    return m3\n<\/pre><\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\ndef somma(m1, m2):   \n    m3=&#x5B;] \n    for r1, r2 in zip(m1, m2): \n        r3=&#x5B;] \n        for x1, x2 in zip(r1, r2): \n            r3.append(x1+x2) \n        m3.append(r3) \n    return m3\n<\/pre><\/div><\/div>\n<\/div>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nprint(somma(A, B))  # &#x5B;&#x5B;3,  9], &#x5B;1, 4]]\nprint(somma(A, C))  # &#x5B;&#x5B;3, 15], &#x5B;1, 5]]\nprint(somma(B, C))  # &#x5B;&#x5B;2, 10], &#x5B;0, 9]]\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Prodotto<\/h2>\n\n\n\n<p><em>Per ogni elemento del risultato si calcola un prodotto scalare&#8230;<\/em><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-layout-4 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\ndef prodotto(m1, m2):   \n    m3=&#x5B;] \n    n=len(m1)\n    for r in range(n): \n        riga=&#x5B;] \n        for c in range(n): \n            x=0\n            for k in range(n): \n                x += m1&#x5B;r]&#x5B;k] * m2&#x5B;k]&#x5B;c]\n            riga.append(x) \n        m3.append(riga) \n    return m3 \n<\/pre><\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\ndef prodotto(m1, m2):   \n    m3=&#x5B;]\n    m2t=trasposta(m2)\n    for r1 in m1: \n        r3=&#x5B;]\n        for r2 in m2t:\n            x=0\n            for x1, x2 in zip(r1, r2):\n                x += x1*x2 \n            r3.append(x) \n        m3.append(r3) \n    return m3\n<\/pre><\/div><\/div>\n<\/div>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nprint(prodotto(A, B))  # &#x5B;&#x5B;2, 32], &#x5B;1,  2]]\nprint(prodotto(A, C))  # &#x5B;&#x5B;2, 51], &#x5B;1,  8]]\nprint(prodotto(B, C))  # &#x5B;&#x5B;1, 18], &#x5B;0, 20]]\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Matrice nulla<\/h3>\n\n\n\n<p>Una matrice quadrata, piena di zeri, di dimensione n<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\ndef nulla(n):\n    m=&#x5B;]\n    for r in range(n):\n        riga=n*&#x5B;0] \n        m.append(riga)   \n    return m\n\nD=creaZeri(3)\n<\/pre><\/div>\n\n\n<p>Utilizza la funzione precedente per creare la struttura della matrice e poi modifica solo gli elementi diversi da zero<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Copia<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\ndef copia(m1):\n    n=len(m1) \n    m2=nulla(n)\n    for r in range(n): \n        for c in range(n): \n            m2&#x5B;r]&#x5B;c]=m1&#x5B;r]&#x5B;c]\n    return m2\n\nD=copia(matA)\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">Prodotto per uno scalare<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\ndef scalare(k, m1):   \n    n=len(m1)\n    m2=nulla(n)\n    for r in range(n):\n        for c in range(n):\n            m2&#x5B;r]&#x5B;c]=k*m1&#x5B;r]&#x5B;c] \n    return m2 \n\nD=scalare(2, A)  # &#x5B;&#x5B;4,14], &#x5B;2, 0]]\nD=scalare(2, B)  # &#x5B;&#x5B;2, 4], &#x5B;0, 8]]\nD=scalare(2, C)  # &#x5B;&#x5B;2,16], &#x5B;0,10]]\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">Somma<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\ndef somma(m1, m2):   \n    n=len(m1) \n    m3=nulla(n)\n    for r in range(n):\n        for c in range(n):\n            m3&#x5B;r]&#x5B;c]=m1&#x5B;r]&#x5B;c]+m2&#x5B;r]&#x5B;c]\n    return m3\n\nD=somma(A, B)  # &#x5B;&#x5B;3,  9], &#x5B;1, 4]]\nD=somma(A, C)  # &#x5B;&#x5B;3, 15], &#x5B;1, 5]]\nD=somma(B, C)  # &#x5B;&#x5B;2, 10], &#x5B;0, 9]]\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">Prodotto<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\ndef prodotto(m1, m2):   \n    n=len(m1) \n    m3=nulla(n, n)\n    for r in range(n):\n        for c in range(n):\n            x=0  \n            for k in range(n):\n                x += m1&#x5B;r]&#x5B;k]*m2&#x5B;k]&#x5B;c]\n            m3&#x5B;r]&#x5B;c]=x   \n    return m3\n\nD=prodotto(A, B)  # &#x5B;&#x5B;2, 32], &#x5B;1,  2]]\nD=prodotto(A, C)  # &#x5B;&#x5B;2, 51], &#x5B;1,  8]]\nD=prodotto(B, C)  # &#x5B;&#x5B;1, 18], &#x5B;0, 20]]\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Continua&#8230;<\/p>\n\n\n\n<ol>\n<li>Matrice unitaria<\/li>\n\n\n\n<li>Matrice 101 (tutti i valori sono 1 tranne sulla diagonale principale che contiene solo 0)<\/li>\n\n\n\n<li>Diagonale superiore<\/li>\n\n\n\n<li>Diagonale inferiore<\/li>\n\n\n\n<li>&#8230;<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Considera le tre matrici seguenti come parametri attuali nelle chiamate delle funzioni Copia Sottomatrice Crea una sottomatrice di mCopia tutto tranne la riga er e la colonna ec Trasposta Gli indici r e c sono scambiati&#8230; Prodotto per uno scalare Somma Prodotto Per ogni elemento del risultato si calcola un prodotto scalare&#8230; Matrice nulla Una &#8230; <a title=\"Matrici quadrate\" class=\"read-more\" href=\"https:\/\/www.valcon.it\/python\/matrici-quadrate\/\" aria-label=\"Leggi di pi\u00f9 su Matrici quadrate\">Leggi tutto<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41],"tags":[],"_links":{"self":[{"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/posts\/10507"}],"collection":[{"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/comments?post=10507"}],"version-history":[{"count":50,"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/posts\/10507\/revisions"}],"predecessor-version":[{"id":31523,"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/posts\/10507\/revisions\/31523"}],"wp:attachment":[{"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/media?parent=10507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/categories?post=10507"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.valcon.it\/python\/wp-json\/wp\/v2\/tags?post=10507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}