← Back to CoursesStemExpert
StemExpert
Expert · Handboek · 5. Vectoren en matrices
StemExpert · Brecht Corbeel · schoolium.me
StemExpert
E5. Vectoren en matrices
EExpert · deel E1 · Wiskundige gereedschapskist

Handboek · hoofdstuk 5Vectoren en matrices

Richtingen in de ruimte en veel vergelijkingen tegelijk: het rekenwerk achter krachten, netwerken en constructies

Krachten, snelheden en zonnestralen hebben een richting in drie dimensies: je rekent ermee als vectoren. Met het scalair product vind je een hoek, een projectie of een arbeid; met het vectorproduct een normaal, een oppervlakte of een moment. Een matrix bundelt veel getallen tot één object: een transformatie die een figuur draait of rekt, of een stelsel met tientallen onbekenden. Je lost zulke stelsels op met de methode van Gauss, met de hand en in Python, en je gebruikt ze voor Kirchhoff-netwerken en vakwerken. Voor Habitat reken je het 12,8 V-net van de klimaatmodule door als één matrixvergelijking.

9× uitleg7× uitgewerkt voorbeeld1× ontleed1× naslag1× verhaal1× het geheel2× code18 opdrachten in het werkboek± 12 lestijden
Drie tuidraden, drie krachten in drie richtingen: samen duwen ze de mast recht naar beneden.
Drie tuidraden, drie krachten in drie richtingen: samen duwen ze de mast recht naar beneden.
Na dit hoofdstuk
Verhaal · 5.1

Rekenstokjes, planetoïden en de snelste computers

1/22

Ruim tweeduizend jaar geleden werd in China een handboek samengesteld met 246 rekenproblemen uit de praktijk: landmeten, belastingen, graan, bouwwerken. Jiuzhang suanshu, De negen hoofdstukken over de rekenkunst, kreeg zijn vorm rond het begin van onze jaartelling; Liu Hui schreef er in 263 een commentaar bij. Het achtste hoofdstuk heet fangcheng, 'rechthoekige schikking'. Het eerste probleem: drie bundels graan van de beste soort, twee van de middelste en één van de slechtste leveren samen 39 dou (een inhoudsmaat); twee, drie en één leveren 34 dou; één, twee en drie leveren 26 dou. Hoeveel levert één bundel van elke soort? De rekenaars legden de getallen met bamboestokjes in kolommen op een rekenbord en trokken veelvouden van kolommen van elkaar af tot er één onbekende overbleef: de eliminatie die je in dit hoofdstuk leert. Onderweg verschenen negatieve getallen, en het boek gaf er gewoon rekenregels voor.

In Europa kreeg de methode de naam van Carl Friedrich Gauss. Op 1 januari 1801 ontdekte Giuseppe Piazzi in Palermo Ceres, vandaag een dwergplaneet, maar na enkele weken verdween ze in het licht van de zon. De 24-jarige Gauss berekende uit de weinige waarnemingen haar baan, en op 31 december 1801 vond Franz Xaver von Zach Ceres terug, dicht bij de plaats die Gauss voorspeld had. Om een baan zo goed mogelijk aan veel metingen aan te passen, gebruikte Gauss de methode van de kleinste kwadraten (hoofdstuk 41; Adrien-Marie Legendre publiceerde ze in 1805, Gauss in 1809), en de stelsels die daaruit volgen, loste hij systematisch op door eliminatie.

Het woord matrix (Latijn: 'dat waaruit iets voortkomt') gebruikte James Joseph Sylvester in 1850 voor een rechthoekige tabel getallen; in 1858 legde Arthur Cayley vast hoe je matrices vermenigvuldigt en inverteert. Het woord vector komt van William Rowan Hamilton, die op 16 oktober 1843 tijdens een wandeling langs een kanaal in Dublin zijn quaternionen bedacht en de formule in een brug kraste. De notatie met scalair product en vectorproduct die ingenieurs vandaag gebruiken, is van Josiah Willard Gibbs en Oliver Heaviside, rond 1880.

En de snelste computers ter wereld? Sinds 1993 verschijnt twee keer per jaar de TOP500-lijst van supercomputers. De rangschikking steunt op één test: hoe snel een machine een enorm stelsel lineaire vergelijkingen oplost met de methode van Gauss.

Waarom dit hoofdstuk ertoe doet

Een net van kabels, een vakwerk van staven, een model met honderd parameters: telkens staan er veel onbekenden in veel vergelijkingen tegelijk. Vectoren beschrijven krachten en richtingen in de ruimte; matrices bundelen stelsels en transformaties tot één object waarmee een computer rekent. Het brein van het station lost zo zijn voedingsnet op, berekent de stand van de zon op elk paneel en fit zijn modellen (hoofdstuk 36 en 41).

Met stokjes in kolommen losten Chinese rekenaars al stelsels op: kolommen van elkaar aftrekken tot er één onbekende overbleef.
Met stokjes in kolommen losten Chinese rekenaars al stelsels op: kolommen van elkaar aftrekken tot er één onbekende overbleef.
Uitleg · 5.2

Wat je al weet: vectoren, nu in drie dimensies

2/22
wat je al kanwat nu komt
een vector heeft grootte en richting; kop-staart optellen, ontbinden in componenten (hoofdstuk 6 van I)vectoren als rijtjes getallen, in 2D en 3D; rekenen per component
arbeid met de kracht langs de weg (hoofdstuk 9 van I) bij elke hoek: het scalair product
moment met de loodrechte arm (hoofdstuk 10 van I), ook in 3D: het vectorproduct
de hoek van de zon op een paneel (hoofdstuk 6 van I)de invalshoek voor elke stand van de zon, met één scalair product
een stelsel van drie vergelijkingen met np.linalg.solve (hoofdstuk 21 van I)wat een matrix is, en hoe Gauss het stelsel oplost

Kies drie loodrechte assen: naar het oosten, naar het noorden, omhoog. Dat is een rechtshandig assenstelsel: duim, wijsvinger en middelvinger van je rechterhand wijzen langs , en . Een vector noteer je met zijn componenten, , of als met de eenheidsvectoren langs de assen. Optellen en met een getal vermenigvuldigen gaat per component, precies zoals je in hoofdstuk 6 van I krachten optelde door hun componenten op te tellen.

lengte, eenheidsvector, vector tussen twee punten
De lengte volgt uit Pythagoras, twee keer: eerst in het grondvlak, dan omhoog. Een eenheidsvector heeft lengte 1 en draagt alleen de richting: een kracht van 400 N langs een draad is .

Voorbeeld: heeft lengte en eenheidsvector . De drie componenten van een eenheidsvector zijn de cosinussen van de hoeken met de assen: maakt een hoek van met de verticaal.

x (oost)y (noord)z (omhoog)a = (3; 2; 2,5)ax = 3ay = 2az = 2,5O
In isometrie: de vector a is de diagonaal van een doos met ribben aₓ, a_y en a_z.
Uitgewerkt voorbeeld · 5.3

Drie tuidraden aan een weermast

3/22

De weermast van het station (6,0 m, met windmeter en zonnestralingsmeter) wordt rechtgehouden door drie tuidraden naar ankers op 3,0 m van de voet, onder 120° van elkaar: naar het noorden, het oostzuidoosten en het westzuidwesten. Elke draad staat op 400 N. Bereken de kracht van elke draad op de top als vector, de hoek van de draden met de grond en de totale kracht op de mast.

A1 A2 A3 F1 F2 F3 top T (0; 0; 6)voetoostnoord
De drie draadkrachten wijzen van de top naar de ankers; horizontaal heffen ze elkaar op.
Gegeven
  • top m, ankers op 3,0 m onder 0°, 120° en 240° (vanaf het noorden, met de klok mee)
  • spanning 400 N per draad
Gevraagd
  • , , en hun som
  • de hoek met de grond
Oplossing
  1. 1
    Ankers: , , .
  2. 2
    Richting van draad 1: , lengte , eenheidsvector .
  3. 3
    Kracht: N. Zo ook N en N.
  4. 4
    Som: N. De horizontale componenten heffen elkaar op (de mast staat recht); de verticale tellen op tot 1073 N naar beneden.
  5. 5
    Hoek met de grond: . Controle: de verticale component van één draad is .
Antwoord
Elke draad trekt met omlaag en opzij; samen duwen de draden de mast met 1073 N in de grond, zonder zijdelingse kracht.
Klopt dit? Symmetrie: drie gelijke horizontale componenten van 179 N onder 120° vormen een gesloten driehoek (kop-staart, hoofdstuk 6 van I). Waait het, dan verandert de spanning in de draden; met drie draden en een mast zijn er dan meer onbekenden dan vergelijkingen in de top (hoofdstuk 13).
Uitleg · 5.4

Het scalair product

4/22

Twee vectoren geven samen een getal (een scalair): vermenigvuldig de componenten twee aan twee en tel op.

scalair product (inproduct)
: de hoek tussen de vectoren (0° tot 180°). Positief bij een scherpe hoek, nul bij een rechte hoek, negatief bij een stompe. .

Waarom de cosinus? Neem de driehoek met zijden , en . De cosinusregel zegt . Werk je het linkerlid per component uit, dan krijg je . Vergelijk: de som van de producten ís .

Wat je ermee doet.

  • Een hoek: , in 3D net zo eenvoudig als in 2D.
  • Loodrecht: . Een snelle test, zonder hoeken.
  • Projectie: is het stuk van langs ; de projectievector is .
  • Arbeid en vermogen: alleen de component van de kracht langs de verplaatsing doet arbeid: , (hoofdstuk 9 van I).
  • Zonlicht op een vlak: per m² vangt een vlak met normaal de instraling , met de richting naar de zon.
θab|b| cos θ: de projectie van b op aa · b = |a| · |b| · cos θ= |a| maal de projectie van b
Het scalair product is |a| maal het stuk van b dat langs a ligt.
Uitgewerkt voorbeeld · 5.5

Arbeid als scalair product: de batterijkar op de oprit

5/22

De batterijkar van 80 kg (hoofdstuk 8 van I) moet de oprit naar de module op: 6,40 m horizontaal en 0,40 m hoog (6,25 %). Je trekt aan een touw onder 30° met de horizontaal. De rolweerstand is 2,5 % van de normaalkracht. Bereken de touwkracht voor een constante snelheid en de arbeid van elke kracht als scalair product. Controleer met de energie.

s = (6,40; 0,40) mF (touw, 30°)G = 785 NNFr 26,4°krachten niet op schaal
Alleen het stuk van elke kracht langs s telt voor de arbeid; N staat loodrecht op s en doet niets.
Gegeven
  • m, ,
  • touw onder 30° met de horizontaal
Gevraagd
  • , , en hun som
Oplossing
  1. 1
    Hellingshoek ; het touw maakt met de oprit.
  2. 2
    Evenwicht langs de oprit: , want het touw tilt de kar een beetje op. Dus .
  3. 3
    Touw: N, dus .
  4. 4
    Zwaartekracht: N, . De normaalkracht staat loodrecht op : , geen arbeid.
  5. 5
    Rolweerstand: , de weerstand is tegen de beweging in, over : .
Antwoord
; , , . Som: .
Klopt dit? De som is nul: bij constante snelheid verandert de kinetische energie niet (hoofdstuk 9 van I). Evenwijdig met de oprit duwen kost 68,5 N (hoofdstuk 8 van I: 69 N) maal 6,41 m : iets meer, want dan drukt de kar harder op de oprit en is de rolweerstand groter. Met het touw moet je harder trekken (75,6 N), maar je doet minder arbeid.
Uitleg · 5.6

Het vectorproduct

6/22

In drie dimensies kan je twee vectoren ook tot een nieuwe vector vermenigvuldigen:

vectorproduct (uitproduct)
Ezelsbruggetje voor de componenten: . De -component gebruikt alleen en , en begint met ; de volgende krijg je door de letters één plaats door te schuiven.

Eigenschappen.

  • staat loodrecht op en op : reken maar na dat .
  • Zijn lengte is de oppervlakte van het parallellogram op en (basis , hoogte ). De helft is de oppervlakte van de driehoek.
  • Zijn richting volgt de rechterhandregel: krul de vingers van naar , de duim wijst langs . Zo is .
  • De volgorde telt: . En : evenwijdige vectoren spannen geen oppervlakte op.

In het vlak () blijft alleen de -component over, : positief als tegen de klok in van ligt. In de figuur: en geven : recht omhoog, met als lengte de oppervlakte 4,5.

aba × boppervlakte van het parallellogram = |a × b| = 4,5a = (2,5; 0; 0)b = (0,8; 1,8; 0)a × b = (0; 0; 4,5)rechterhand: vingers van anaar b, de duim wijstlangs a × b
a en b spannen een parallellogram op; a × b staat er loodrecht op en is even lang als zijn oppervlakte.
Uitgewerkt voorbeeld · 5.7

Het moment als vectorproduct: wind op het zonnepaneel

7/22

In hoofdstuk 10 van I zocht je de armen van de wind en het gewicht op de steun van het zonnepaneel (60°, 1,00 m in de hellingsrichting, onderrand 0,20 m boven het dak). Bereken nu de momenten om de voorste voet met : (a) van de wind, 495 N loodrecht op het paneel in het midden C, bij storm uit het noorden; (b) van het gewicht van paneel en steun, 25 kg in C.

voorste voet (draaipunt)rCwind 495 NG = 245 Nx: horizontaal naar het zuideny: omhoogz: uit het blad, naar je toezuiden →
De wind grijpt aan in C; r loopt van de voorste voet naar C. Het moment van de wind draait met de klok mee.
Gegeven
  • horizontaal naar het zuiden, omhoog, uit het blad
  • C ligt 0,25 m achter de voet en hoog
Gevraagd
  • en en hun draaizin
Oplossing
  1. 1
    Arm: m.
  2. 2
    Wind: loodrecht op het paneel, naar het zuiden en omhoog: N.
  3. 3
    : alleen de -component is niet nul: .
  4. 4
    Negatief: met de klok mee in de figuur. De wind wil de steun voorover over de voorste voet kantelen.
  5. 5
    Gewicht: N, : tegen de klok in, het houdt de steun op zijn plaats.
Antwoord
(kantelend), (stabiliserend): dezelfde 333 en 61,3 N·m als in hoofdstuk 10 van I.
Klopt dit? Geen armen zoeken, geen loodlijnen tekenen: de vector en de componenten van de kracht volstaan, en het teken geeft de draaizin. Blaast de wind schuin op het paneel, dan krijgt een -component en ook een - en -component: momenten om de andere assen, die de steun doen wringen. De formule blijft dezelfde.
Uitgewerkt voorbeeld · 5.8

De zon op het paneel: normaal, oppervlakte en invalshoek

8/22

Het zonnepaneel is 1,65 m breed (oost-west) en 1,00 m lang in de hellingsrichting, onder 60° op het zuiden. Bereken met een vectorproduct de normaal en de oppervlakte, en met een scalair product de invalshoek van het zonlicht op 21 juni om 12:00 en om 15:00 zonnetijd. Hoeveel W/m² vangt het paneel als de directe straling loodrecht op de stralen 900 W/m² is (rekenwaarde)?

a (1,65 m, oost)b (1,00 m)n (normaal)s (naar de zon, 15 u)θx oosty noordz
De normaal n volgt uit a × b; de hoek θ tussen n en de richting van de zon bepaalt hoeveel licht het paneel vangt.
Gegeven
  • oost, noord, omhoog; breedtegraad 50,8°, declinatie op 21 juni 23,44°
  • zonnestand om 15:00: hoogte , azimut (vanaf het noorden, met de klok mee)
Gevraagd
  • , oppervlakte, om 12:00 en 15:00, instraling
Oplossing
  1. 1
    Randen: langs de onderrand , de helling op .
  2. 2
    . Lengte 1,65: de oppervlakte in m². Normaal : naar het zuiden en omhoog, 60° uit de verticaal.
  3. 3
    Middag: de zon staat in het zuiden op : . , .
  4. 4
    15:00: . , .
  5. 5
    Instraling op het paneel: : om 12:00 758 W/m², om 15:00 519 W/m².
Antwoord
, oppervlakte 1,65 m²; invalshoek 32,6° om 12:00 (758 W/m²) en 54,8° om 15:00 (519 W/m²).
Klopt dit? Middag: , zoals in hoofdstuk 6 van I. Om 15:00 werkt die eenvoudige formule niet meer (de zon staat niet in het zuiden), het scalair product wel. Neem je , dan wijst de normaal het dak in: de volgorde telt.
Uitleg · 5.9

Matrices: tabellen die vectoren transformeren

9/22

Een matrix is een rechthoekige tabel getallen. Een -matrix maal een vector geeft een nieuwe vector: elke component is het scalair product van een rij met de vector.

matrix maal vector
Rechts de sleutel: is een combinatie van de kolommen. De eerste kolom is het beeld van , de tweede dat van . Wie weet waar de basisvectoren heen gaan, kent de hele transformatie.

Zo'n transformatie is lineair: en . Rechten blijven recht, de oorsprong blijft liggen, een rooster van parallellogrammen wordt een rooster van parallellogrammen. Drie bouwstenen:

rotatie, schaal en afschuiving
Rotatie tegen de klok in over : de kolommen zijn en , zelf gedraaid. Een spiegeling in de -as is .
determinant
De factor waarmee elke oppervlakte verandert (het eenheidsvierkant wordt het parallellogram van de kolommen, met oppervlakte ). Negatief: de figuur is gespiegeld. Nul: alles valt op een rechte, en de transformatie is niet omkeerbaar.
rotatie over 30°det = 1schaal (1,5 en 0,6)det = 0,9afschuiving (0,6)det = 1gestippeld: het origineel; pijlen: de beelden van eₓ (kolom 1) en ey (kolom 2)
Het huisje gedraaid, geschaald en afgeschoven; de pijlen zijn de kolommen van de matrix. Draaien en afschuiven bewaren de oppervlakte (det = 1).
Uitleg · 5.10

Matrixvermenigvuldiging: transformaties na elkaar

10/22

Eerst toepassen en dan is ook een lineaire transformatie: . Het product bereken je rij maal kolom:

matrixproduct
Element is het scalair product van rij van met kolom van . Het aantal kolommen van moet gelijk zijn aan het aantal rijen van .

Drie gevolgen:

  • De volgorde telt. In het algemeen is . In de figuur liggen beide huisjes na de draaiing op hun zij, maar links (eerst draaien, dan in de -richting uitrekken) is het huisje twee keer zo hoog geworden, van vloer tot nok, en rechts (eerst uitrekken, dan draaien) twee keer zo breed, langs de vloer. De matrix die je het laatst toepast, staat links.
  • De eenheidsmatrix (enen op de diagonaal) verandert niets: . De inverse maakt ongedaan: . Voor een -matrix is
inverse van een 2 × 2-matrix
Alleen als . Voor een rotatie is de inverse de rotatie terug: (de getransponeerde: rijen en kolommen verwisseld).
  • Determinanten vermenigvuldigen: , logisch: oppervlaktefactoren na elkaar vermenigvuldigen.

Een mooie toepassing: twee keer draaien is één keer draaien over de som, . Werk je het product links uit, dan staan daar de somformules voor en (opdracht 5.16).

eerst R(90°), dan SS · Reerst S, dan R(90°)R · S
Links S · R (eerst draaien, dan in x uitrekken), rechts R · S: dezelfde twee matrices, een ander resultaat.
Uitgewerkt voorbeeld · 5.11

Van robot naar wereld: coördinaten omrekenen

11/22

Het inspectierobotje (hoofdstuk 33 van I) staat in de kweekruimte op m, met zijn neus onder 30° met de -as van de ruimte. Zijn ultrasone sensor ziet een obstakel 0,50 m recht vooruit en 0,10 m naar links (robotassen: vooruit, naar links). Waar ligt het obstakel in de ruimte? Het robotje rijdt daarna 0,30 m vooruit en draait 45° naar links. Geef zijn nieuwe stand als één matrix, en waar het obstakel dan voor het robotje ligt.

x (m)y (m)bakxr yr pR qobstakel30°
De robot kent het obstakel in zijn eigen assen (q); de draaimatrix en de plaats p brengen het naar de assen van de ruimte.
Gegeven
  • m,
  • obstakel in robotcoördinaten m
Gevraagd
  • het obstakel in wereldcoördinaten
  • de nieuwe stand
  • het obstakel voor het robotje na de beweging
Oplossing
  1. 1
    Een vector in de robotassen draai je over 30° naar de wereldassen en je telt de plaats van de robot erbij: .
  2. 2
    , dus m.
  3. 3
    Met homogene coördinaten (een derde component 1) wordt rotatie plus verschuiving één matrix: , en .
  4. 4
    Bewegen is vermenigvuldigen: . Nieuwe plaats m, neus onder 75°.
  5. 5
    Terug naar het robotje: m: 0,21 m vooruit en 0,07 m naar rechts.
Antwoord
Het obstakel ligt op m in de ruimte. Na de beweging staat het robotje op m onder 75°, en ziet het het obstakel 0,21 m vooruit en 0,07 m rechts.
Klopt dit? Een rotatie bewaart lengtes: m en m. Robotarmen, drones en computerspelletjes rekenen zo: elke schakel of camera heeft zijn eigen matrix, en een keten van bewegingen is een product van matrices.
Uitleg · 5.12

Stelsels als matrixvergelijking; de methode van Gauss

12/22

Een stelsel van lineaire vergelijkingen met onbekenden is één matrixvergelijking : rij van bevat de coëfficiënten van vergelijking . De methode van Gauss lost ze op in twee fasen.

1. Heen: elimineren. Drie bewerkingen veranderen de oplossingen niet: twee rijen verwisselen, een rij met een getal (niet nul) vermenigvuldigen, en een veelvoud van een rij bij een andere optellen. Gebruik ze om onder de diagonaal nullen te maken, kolom na kolom. Het diagonaalelement waarmee je werkt, heet de spil. Is de spil nul, verwissel dan rijen; in een computer kies je altijd het grootste element in de kolom als spil (rijverwisseling), anders kunnen afrondingsfouten ontploffen (opdracht 5.12).

2. Terug: invullen. De laatste rij heeft nog één onbekende; vul die in de rij erboven in, enzovoort.

Drie mogelijke uitkomsten. Blijft er op de diagonaal nergens een nul, dan is er precies één oplossing (). Krijg je een rij met , dan is er geen oplossing; een rij geeft er oneindig veel. Meetkundig, bij drie onbekenden: drie vlakken die elkaar in één punt snijden, die geen gemeenschappelijk punt hebben, of die een hele rechte gemeen hebben.

kost van Gauss
1000 onbekenden: , een fractie van een seconde. Een miljoen onbekenden (een eindige-elementenmodel, hoofdstuk 13): . Gelukkig staan in zulke matrices bijna alleen nullen, en slimme methoden rekenen daar niet mee.
3−1−210−14−10−2−1403−1−210011−5100−58203−1−210011−5100063270R2 ← 3R2 + R1 R3 ← 3R3 + 2R1 R3 ← 11R3 + 5R2 terug: 63 I₃ = 270
Kolom per kolom nullen maken onder de diagonaal: na twee stappen staat onderaan één vergelijking met één onbekende.
Uitgewerkt voorbeeld · 5.13

Gauss met de hand: de mazen van een brug

13/22

Een brugschakeling zoals in hoofdstuk 21 van I, met ronde waarden: , , , en op 10 V. Stel de vergelijkingen op voor de drie maasstromen (een stroom die rond een venster loopt, met de klok mee), los ze op met Gauss, bereken de stroom door en controleer met de potentialen van M en N.

10 VR₁ = 1 kΩR₂ = 2 kΩMR₃ = 2 kΩR₄ = 1 kΩNR₅ = 1 kΩTB (0 V)I1 I2 I3
Drie vensters, drie maasstromen met de klok mee; R₁, R₂ en R₅ worden elk door twee mazen gedeeld.
Gegeven
  • in kΩ, stromen in mA, spanning in V
  • maas 1: bron, , ; maas 2: , , ; maas 3: , ,
Gevraagd
  • , ,
  • de stroom door
Oplossing
  1. 1
    Maaswet per venster. Een weerstand die twee mazen delen, draagt het verschil van hun maasstromen. Maas 1: . Maas 2: . Maas 3: . Als aangevulde matrix: .
  2. 2
    Elimineer : geeft ; geeft .
  3. 3
    Elimineer : geeft .
  4. 4
    Terug: ; ; .
  5. 5
    Door loopt van M naar N. Controle met potentialen: , , en .
Antwoord
uit de bron, , ; door . De vervangingsweerstand is .
Klopt dit? Vermogensbalans: de bron levert ; de weerstanden nemen op. De matrix is symmetrisch: dat is altijd zo bij maasvergelijkingen met weerstanden, en een eerste controle van je opstelling.
Code · 5.14

Gauss in Python, en numpy

14/22

Met de hand stop je bij drie of vier onbekenden. Een eigen functie gauss(A, b) doet precies wat je op het vorige blad deed, met rijverwisseling, en telt de vermenigvuldigingen en delingen. Ze lost de twee bruggen op en vergelijkt daarna met np.linalg.solve op willekeurige stelsels van 10 tot 160 onbekenden.

Pythongauss.py40 regelsDownload
# gauss.py - een stelsel oplossen met de methode van Gauss (met rijverwisseling), en vergelijken met numpyimport numpy as np  def gauss(A, b):    """Lost A x = b op. Geeft x en het aantal vermenigvuldigingen en delingen terug."""    A, b = np.array(A, float), np.array(b, float)    n = len(b)    bewerkingen = 0    for k in range(n - 1):                          # heen: nullen onder de diagonaal        p = k + np.argmax(abs(A[k:, k]))            # grootste spil in kolom k        if A[p, k] == 0:            raise ValueError("de matrix is singulier")        A[[k, p]], b[[k, p]] = A[[p, k]], b[[p, k]]  # rijen verwisselen        for i in range(k + 1, n):            m = A[i, k] / A[k, k]            A[i, k:] -= m * A[k, k:]            b[i] -= m * b[k]            bewerkingen += (n - k) + 2    x = np.zeros(n)    for i in range(n - 1, -1, -1):                  # terug: van onder naar boven invullen        x[i] = (b[i] - A[i, i + 1:] @ x[i + 1:]) / A[i, i]        bewerkingen += n - i    return x, bewerkingen  x, ops = gauss([[3, -1, -2], [-1, 4, -1], [-2, -1, 4]], [10, 0, 0])print("brug met ronde waarden (mA):", np.round(x, 4), " maal 7:", np.round(7 * x, 6)) R1, R2, R3, R4, R5 = 1.0, 2.2, 1.5, 2.2, 1.0          # de brug van hoofdstuk 21 van Intermediate (kΩ)M = [[R1 + R2, -R1, -R2], [-R1, R1 + R3 + R5, -R5], [-R2, -R5, R2 + R4 + R5]]I, _ = gauss(M, [10, 0, 0])print(f"brug van hoofdstuk 21: stroom door R5 = {I[2] - I[1]:.4f} mA") rng = np.random.default_rng(5)                      # hoe groeit het werk met het aantal onbekenden?for n in (10, 20, 40, 80, 160):    A, b = rng.normal(size=(n, n)), rng.normal(size=n)    x, ops = gauss(A, b)    verschil = np.max(np.abs(x - np.linalg.solve(A, b)))    print(f"n = {n:3d}: {ops:8d} bewerkingen = {ops / n**3:.3f} n³, verschil met numpy {verschil:.0e}")

Uitvoer:

brug met ronde waarden (mA): [7.1429 2.8571 4.2857]  maal 7: [50. 20. 30.]
brug van hoofdstuk 21: stroom door R5 = 0.3602 mA
n =  10:      475 bewerkingen = 0.475 n³, verschil met numpy 2e-13
n =  20:     3250 bewerkingen = 0.406 n³, verschil met numpy 4e-15
n =  40:    23700 bewerkingen = 0.370 n³, verschil met numpy 2e-14
n =  80:   180200 bewerkingen = 0.352 n³, verschil met numpy 6e-14
n = 160:  1403600 bewerkingen = 0.343 n³, verschil met numpy 2e-13

De brug met ronde waarden geeft de zevenden van de handberekening. De brug van hoofdstuk 21 van I: 0,3602 mA door , zoals in opdracht 21.14 daar (met de knooppuntenmethode, een -stelsel: zie opdracht 5.10). Het aantal bewerkingen groeit met en de verhouding nadert : twee keer zoveel onbekenden is acht keer zoveel werk. De verschillen met numpy zijn afrondingsfouten van de orde .

In de praktijk

Gebruik np.linalg.solve(A, b): dat is Gauss met rijverwisseling (een LU-ontbinding), in geoptimaliseerde code. Bereken nooit np.linalg.inv(A) @ b: dat is trager en minder nauwkeurig. Voor grote matrices met vooral nullen bestaat scipy.sparse.linalg.spsolve.

Uitleg · 5.15

Conditie: als kleine fouten grote gevolgen hebben

15/22

Niet elk stelsel is even betrouwbaar. Neem en : twee bijna evenwijdige rechten, met snijpunt . Verander het rechterlid met 0,05 %:

import numpy as np

A = np.array([[1.0, 1.0], [1.0, 1.001]])
for b in ([2.0, 2.001], [2.0, 2.002]):
    print("b =", b, "  x =", np.linalg.solve(A, b).round(3))
print(f"conditiegetal: {np.linalg.cond(A):.0f}")
b = [2.0, 2.001]   x = [1. 1.]
b = [2.0, 2.002]   x = [0. 2.]
conditiegetal: 4002

Een verandering van 0,001 in de gegevens verplaatst de oplossing van naar . Het conditiegetal meet die gevoeligheid: de relatieve fout in kan tot keer de relatieve fout in zijn. Vuistregel: je verliest ongeveer juiste cijfers. Hier is : van de drie cijfers in de gegevens blijft niets over. Het net van de module verderop heeft : geen probleem.

Een ijking. Een TMP36 op de 10-bits ADC van de meetkas geeft . Je ijkt met twee referentiepunten: door en , een stelsel van twee vergelijkingen. Met ijswater (0 °C) en 40 °C is . Met 20,0 en 20,5 °C liggen de punten maar één ADC-stap uit elkaar en is : een halve stap afrondingsfout laat de helling alle kanten op gaan (figuur), en bij 40 °C zit je er tot twintig graden naast.

numpy geeft een antwoord, dus het klopt

np.linalg.solve geeft ook voor een slecht geconditioneerd stelsel een antwoord, met zestien cijfers. Controleer np.linalg.cond(A), en bekijk de oorzaak: meestal zijn twee vergelijkingen (twee ijkpunten, twee sensoren) bijna hetzelfde. De remedie is betere gegevens, geen betere rekenmachine: ijkpunten ver uit elkaar, over het hele meetbereik (hoofdstuk 3 van I).

100110120130140150160170180190−1001020304050ADC-waarde NT (°C)echt verband (TMP36)ijking met 0 en 40 °Cijking met 20,0 en 20,5 °C: drie mogelijke rechten
Ver uit elkaar liggende ijkpunten leggen de rechte vast; twee punten die bijna samenvallen laten elke helling toe.
Uitleg · 5.16

De knooppuntenmethode: Kirchhoff als matrix

16/22

In hoofdstuk 21 van I schreef je voor elk netwerk knooppunt- en maasvergelijkingen met takstromen. Voor een computer is er een systematischere weg, met minder onbekenden: de knooppuntenmethode.

  1. Kies een referentieknoop (de massa, 0 V). De onbekenden zijn de potentialen van de andere knopen.
  2. De stroom door een weerstand tussen knoop en is : de wet van Ohm.
  3. Knooppuntwet in elke knoop: wat er via de weerstanden uitstroomt, is gelijk aan wat er door bronnen wordt ingespoten en door verbruikers wordt weggenomen.
knooppuntenmethode
is de conductantiematrix (in siemens, ). Een bron met weerstand aan knoop telt als op de diagonaal en in het rechterlid. Een verbruiker die stroom trekt, zet in het rechterlid.

Zo bouw je op door elke weerstand één keer te stempelen (figuur). Het resultaat is altijd symmetrisch (), met een grote diagonaal en veel nullen: goed geconditioneerd en snel op te lossen. Zo werkt ook het simulatieprogramma SPICE, sinds 1973 van de universiteit van Berkeley, dat elke chipontwerper gebruikt.

De brug van hoofdstuk 21 van I heeft maar twee onbekende knopen, M en N (T ligt vast op 10 V, B op 0): een -stelsel in plaats van drie maasvergelijkingen. Met de waarden van daar: en (opdracht 5.10).

knoop iknoop jRstroom van i naar j: (vᵢ − vⱼ) / Rkolom ikolom jrij irij j+1/R−1/R−1/R+1/Roptellen bijwat er al staatbron U met weerstand R bij knoop i:+1/R op (i, i) en +U/R in het rechterlid
Elke weerstand voegt +1/R toe op de diagonaal bij zijn twee knopen en −1/R op de twee kruisplaatsen.
Code · 5.17

Habitat: het 12,8 V-net van de klimaatmodule

17/22

De klimaatmodule draait op 12,8 V (hoofdstuk 20 en 21 van I). Twee batterijen hangen aan een verdeelrail V in de technische kast; zoals in hoofdstuk 21 van I staat A op 13,30 V met 20 mΩ (inwendige weerstand en kabel) en B op 13,10 V met 25 mΩ. Van de rail vertrekken kabels met een plus- en een minader naar de verbruikers. De groeilampen (2 × 95 W) hangen aan een lamprail van 1,2 m die van twee kanten gevoed wordt: een ring. Nieuwe waarden voor het dossier:

kabellengtedoorsnede (2 aders) heen en terug
V–L14,0 m6,0 mm²22,9 mΩ43,6 S
L1–L21,2 m6,0 mm²6,9 mΩ145,3 S
L2–V5,0 m6,0 mm²28,7 mΩ34,9 S
V–P3,0 m1,5 mm²68,8 mΩ14,5 S
V–D6,0 m2,5 mm²82,6 mΩ12,1 S

Verbruikers (als vaste stromen): lampen 2 × 7,42 A, pomp 1,00 A, dakmotor 1,84 A (tijdens een beweging, hoofdstuk 26 van I), en in de kast de 5 V-omvormer en de ventilatoren samen 0,62 A. Ontwerpregel: hoogstens 3 % spanningsval (0,38 V) in de kabel naar een verbruiker.

Pythonnetwerk.py46 regelsDownload
# netwerk.py - het 12,8 V-net van de klimaatmodule met de knooppuntenmethodeimport numpy as np RHO = 0.0172                                    # koper, Ω·mm²/m  def kabel(lengte, doorsnede):    """Weerstand van een kabel met plus- en minader (heen en terug), in Ω."""    return 2 * RHO * lengte / doorsnede  knopen = ["V", "L1", "L2", "P", "D"]            # verdeelrail, lampen 1 en 2, pomp, dakmotortakken = [("V", "L1", kabel(4.0, 6)), ("L1", "L2", kabel(1.2, 6)), ("L2", "V", kabel(5.0, 6)),          ("V", "P", kabel(3.0, 1.5)), ("V", "D", kabel(6.0, 2.5))]bronnen = [("V", 13.30, 0.020), ("V", 13.10, 0.025)]              # batterij A en B: U (V), R met kabel (Ω)lasten = {"L1": 7.42, "L2": 7.42, "P": 1.00, "D": 1.84, "V": 0.62}  # stroom per verbruiker (A)  def los_op(takken):    k = {naam: i for i, naam in enumerate(knopen)}    G = np.zeros((len(knopen), len(knopen)))    i = np.zeros(len(knopen))    for a, b, R in takken:                         # elke weerstand stempelt vier plaatsen        G[k[a], k[a]] += 1 / R        G[k[b], k[b]] += 1 / R        G[k[a], k[b]] -= 1 / R        G[k[b], k[a]] -= 1 / R    for a, U, R in bronnen:                        # bron met weerstand: 1/R op de diagonaal, U/R rechts        G[k[a], k[a]] += 1 / R        i[k[a]] += U / R    for a, I in lasten.items():                    # een verbruiker trekt stroom uit zijn knoop        i[k[a]] -= I    return np.linalg.solve(G, i)  v = los_op(takken)for naam, V in zip(knopen, v):    print(f"knoop {naam:2s}: {V:7.3f} V")for a, b, R in takken:    I = (v[knopen.index(a)] - v[knopen.index(b)]) / R    print(f"kabel {a:2s}-{b:2s}: {I:6.2f} A, val {abs(I) * R:.3f} V = {abs(I) * R / 12.8 * 100:.1f} % van 12,8 V")IA, IB = [(U - v[knopen.index(a)]) / R for a, U, R in bronnen]print(f"batterijen: {IA:.2f} A + {IB:.2f} A = {IA + IB:.2f} A; verbruikers samen {sum(lasten.values()):.2f} A") v2 = los_op([t for t in takken if t[:2] != ("L2", "V")])    # de ringkabel L2-V breektprint(f"zonder ring: L1 {v2[1]:.3f} V, L2 {v2[2]:.3f} V (val tot L2: {(v2[0] - v2[2]) / 12.8 * 100:.1f} %)")

Uitvoer:

knoop V :  13.008 V
knoop L1:  12.821 V
knoop L2:  12.816 V
knoop P :  12.939 V
knoop D :  12.856 V
kabel V -L1:   8.15 A, val 0.187 V = 1.5 % van 12,8 V
kabel L1-L2:   0.73 A, val 0.005 V = 0.0 % van 12,8 V
kabel L2-V :  -6.69 A, val 0.192 V = 1.5 % van 12,8 V
kabel V -P :   1.00 A, val 0.069 V = 0.5 % van 12,8 V
kabel V -D :   1.84 A, val 0.152 V = 1.2 % van 12,8 V
batterijen: 14.61 A + 3.69 A = 18.30 A; verbruikers samen 18.30 A
zonder ring: L1 12.667 V, L2 12.616 V (val tot L2: 3.1 %)

De batterijen leveren samen evenveel als de verbruikers vragen (knooppuntwet); de vollere batterij A levert het meest. De lampen krijgen stroom langs twee wegen: 8,15 A via de korte kabel en 6,69 A via de lange; door de lamprail zelf loopt maar 0,73 A. De grootste spanningsval, naar L2, is 0,192 V (1,5 %). Breekt de ringkabel, dan loopt alles over één kabel en valt er 0,391 V (3,1 %) tot L2: net boven de grens. De kabels verliezen samen 3,2 W (zonder ring 5,8 W).

Een kabel die niet zwaar genoeg is

Blokkeert de dakmotor (10 A, hoofdstuk 26 van I), dan valt er over zijn kabel van 2,5 mm² 0,83 V: de motor krijgt nog 12,09 V, en ook de rail zakt naar 12,92 V. Met 4 mm² wordt de val 0,52 V. De zekering (5 A traag) moet de motor dan wel snel genoeg afschakelen.

technische kastverdeelrailbatterij A13,30 V · 20 mΩbatterij B13,10 V · 25 mΩelektronica0,62 AV4,0 m · 6 mm²L11,2 mL25,0 m · 6 mm² (ring)7,42 A7,42 A3,0 m · 1,5 mm²PMpomp 1,00 A6,0 m · 2,5 mm²DMdakmotor 1,84 A
Twee batterijen aan de verdeelrail V; de lampen L1 en L2 in een ring; pomp P en dakmotor D elk aan een eigen kabel.
De verdeelrail is één knoop van het net: alles wat erin komt en eruit gaat, staat in één rij van de matrix.
De verdeelrail is één knoop van het net: alles wat erin komt en eruit gaat, staat in één rij van de matrix.
Ontleed · 5.18

Habitat: de matrix van het voedingsnet ontleed

18/22

Dit is het stelsel dat netwerk.py oplost: de conductantiematrix (siemens) maal de potentialen, gelijk aan de ingespoten stromen (ampère). De oplossing: , , , , .

VVL1L1L2L2PPDD195,1−43,6−34,9−14,5−12,1−43,6189,0−145,300−34,9−145,3180,200−14,50014,50−12,100012,1·vV vL1 vL2 vP vD =1188,38−7,42−7,42−1,00−1,84G (siemens)i (ampère)
Vijf knopen, vijf vergelijkingen; elke rij is de knooppuntwet van één knoop.
Wijs een nummer aan: de figuur zoomt in. Klik om vast te zetten.
  1. 1
    De diagonaal van de rail

    195,1 S: alles wat aan V hangt. De batterijen (1/0,020 + 1/0,025 = 90 S) wegen het zwaarst, daarna de vier kabels (105,1 S).

  2. 2
    Een kabel tussen twee knopen

    −43,6 S = −1/R van de kabel V–L1 (22,9 mΩ). Dezelfde waarde staat gespiegeld op plaats (L1, V): G is symmetrisch.

  3. 3
    De lamprail

    −145,3 S: de korte, dikke lamprail tussen L1 en L2 (1,2 m, 6 mm²) is de sterkste verbinding van het net.

  4. 4
    Geen verbinding: nul

    Pomp en dakmotor hangen niet rechtstreeks aan elkaar. Grote netten bestaan bijna volledig uit zulke nullen: de matrix is ijl.

  5. 5
    Een uiteinde

    De dakmotor hangt alleen aan zijn eigen kabel: diagonaal en buitendiagonaal zijn even groot (12,1 S). Zijn rij zegt: (v_D − v_V)/R = −1,84 A.

  6. 6
    De bronnen

    13,30/0,020 + 13,10/0,025 − 0,62 = 1188,38 A: de batterijen als stroombronnen, min de elektronica in de kast. De andere knopen hebben alleen hun verbruik (negatief).

Uitleg · 5.19

Vakwerken: evenwicht per knoop als stelsel

19/22

Een vakwerk bestaat uit rechte staven die in knopen scharnierend verbonden zijn, met de lasten alleen in de knopen. Dan draagt elke staaf alleen een kracht langs zichzelf: trek (positief) of druk (negatief). In elke knoop moet de som van de krachten nul zijn: in het vlak twee vergelijkingen per knoop.

evenwicht van een vakwerk
: eenheidsvector van de knoop langs staaf ; : staafkracht (trek positief); : reacties van de steunpunten; : lasten. De kolommen van bevatten de eenheidsvectoren van de staven: in de ene knoop, in de andere.

Met knopen, staven en reacties heb je vergelijkingen en onbekenden. Is en , dan is het vakwerk statisch bepaald: evenwicht alleen legt alle krachten vast. Is singulier, dan kan het vakwerk vervormen zonder dat een staaf rekt (een mechanisme, zoals een vierkant zonder diagonaal). Heeft het meer staven dan nodig, dan zijn er meer onbekenden dan vergelijkingen, en beslist de stijfheid van de staven (hoofdstuk 12). De technieken om een vakwerk knoop per knoop of met een snede met de hand op te lossen, zijn voor hoofdstuk 13.

De steun van het zonnepaneel (hoofdstuk 10 van I) als vakwerk: vier knopen (voeten A en B, onderrand C, bovenrand D), vijf staven (voorpaal, paneelregel, achterpaal, grondregel en een diagonaal van B naar C), een scharnier in A en een rol in B. Acht vergelijkingen, onbekenden, en : statisch bepaald.

ABCDwind 248 Ngewicht 123 Nstaaf 1staaf 2staaf 3staaf 4staaf 54 knopen: 8 vergelijkingen5 staven + 3 reacties= 8 onbekendenzuiden →
Vier knopen, vijf staven, drie reacties: acht vergelijkingen voor acht onbekenden.
Een steun uit rechte profielen met bouten in de knopen: bijna een ideaal vakwerk.
Een steun uit rechte profielen met bouten in de knopen: bijna een ideaal vakwerk.
Uitgewerkt voorbeeld · 5.20

De steun van het zonnepaneel als vakwerk

20/22

Bereken de staafkrachten en de reacties van de steun bij (a) alleen het gewicht (25 kg, verdeeld over C en D), (b) alleen de wind (495 N loodrecht op het paneel, de helft in C en de helft in D) en (c) beide samen. Welke staven moeten druk kunnen dragen? Vergelijk de reactie in B met de ballast van hoofdstuk 10 van I.

ABCDwind 248 Ngewicht 123 N−542 N−429 N372 N−429 N462 Ntrek (+)druk (−)By = −544 N:de achterste voet moetomlaag gehouden wordenzuiden →
Bij storm: trek in achterpaal en diagonaal, druk in de rest (kleuren zoals linksboven); de achterste voet wil loskomen.
Gegeven
  • knopen A (0; 0), B (−0,50; 0), C (0; 0,20), D (−0,50; 1,066) m, naar het zuiden
  • per knoop: gewicht N, wind N
Gevraagd
  • staafkrachten en reacties in drie lastgevallen
Oplossing
  1. 1
    Eenheidsvectoren (van de eerste naar de tweede knoop): AC , CD , BD , AB , BC . Ze vormen de kolommen van de -matrix .
  2. 2
    In numpy (dezelfde opbouw als de knooppuntenmethode):
    import numpy as np
    
    knopen = {"A": (0.0, 0.0), "B": (-0.50, 0.0), "C": (0.0, 0.20), "D": (-0.50, 1.066)}   # x naar het zuiden, y omhoog (m)
    staven = [("A", "C"), ("C", "D"), ("B", "D"), ("A", "B"), ("B", "C")]
    reacties = [("A", (1, 0)), ("A", (0, 1)), ("B", (0, 1))]      # scharnier in A, rol in B
    rij = {k: 2 * i for i, k in enumerate(["A", "B", "C", "D"])}  # rij 2i: evenwicht in x, rij 2i+1: in y
    
    A = np.zeros((8, 8))
    for j, (p, q) in enumerate(staven):                           # kolom j: de eenheidsvector van staaf j
        e = np.subtract(knopen[q], knopen[p])
        e = e / np.linalg.norm(e)
        A[rij[p]:rij[p] + 2, j] += e                              # een trekkracht trekt p naar q ...
        A[rij[q]:rij[q] + 2, j] -= e                              # ... en q naar p
    for j, (k, r) in enumerate(reacties):
        A[rij[k]:rij[k] + 2, 5 + j] += r
    
    wind = 495 / 2 * np.array([np.cos(np.radians(30)), np.sin(np.radians(30))])     # per knoop (N)
    gewicht = np.array([0.0, -25 * 9.81 / 2])
    F = np.zeros(8)
    for k in ("C", "D"):
        F[rij[k]:rij[k] + 2] = wind + gewicht
    s = np.linalg.solve(A, -F)
    for (p, q), kracht in zip(staven, s[:5]):
        print(f"staaf {p}{q}: {kracht:7.1f} N  {'trek' if kracht > 0 else 'druk'}")
    print(f"reacties: Ax = {s[5]:.1f} N, Ay = {s[6]:.1f} N, By = {s[7]:.1f} N")
    staaf AC:  -541.6 N  druk
    staaf CD:  -428.7 N  druk
    staaf BD:   372.4 N  trek
    staaf AB:  -428.7 N  druk
    staaf BC:   461.7 N  trek
    reacties: Ax = -428.7 N, Ay = 541.6 N, By = -543.8 N
  3. 3
    Alle drie de lastgevallen:
    staaflengte (m)gewicht (N)wind (N)samen (N)
    AC0,200−122,6−419,0−541,6
    CD1,0000,0−428,7−428,7
    BD1,066−122,6495,0372,4
    AB0,5000,0−428,7−428,7
    BC0,5390,0461,7461,7
    reactie A (x)0,0−428,7−428,7
    reactie A (y)122,6419,0541,6
    reactie B (y)122,6−666,5−543,8
  4. 4
    Onder het gewicht alleen dragen de palen alles (elk 122,6 N druk); de schuine staven doen niets. Onder de wind werkt het hele vakwerk: paneelregel, grondregel en voorpaal op druk, achterpaal en diagonaal op trek.
  5. 5
    Reactie in B bij storm: , negatief: de achterste voet moet met 544 N omlaag gehouden worden, dus ongeveer 55 kg ballast zonder veiligheidsmarge. Hoofdstuk 10 van I vond met een kantelveiligheid van 1,5: 877 N (89 kg). En : de voorste voet moet 429 N wrijving leveren, ook zoals daar.
Antwoord
Bij storm: paneelregel CD 429 N druk, grondregel AB 429 N druk, voorpaal 542 N druk, achterpaal 372 N trek, diagonaal 462 N trek. De achterste voet moet 544 N omlaag gehouden worden.
Klopt dit? Globaal evenwicht: : precies het tegengestelde van wat wind en gewicht samen verticaal doen, omhoog. De staven op druk moeten stijf genoeg zijn tegen knik (hoofdstuk 12).
Naslag · 5.21

Vectoren en matrices: formules en werkwijze

21/22

Controleer elke berekening: een vectorproduct staat loodrecht op beide factoren, een rotatie bewaart lengtes, een oplossing van vul je in (), een netwerk voldoet aan de vermogensbalans, een vakwerk aan het globale evenwicht.

lengte en eenheidsvector
scalair product
symboolbetekeniseenheid
hoek tussen de vectoren°
vectorproduct
arbeid, vermogen, moment
symboolbetekeniseenheid
arbeidJ
momentN·m
rotatiematrix
matrixproduct
determinant en inverse (2 × 2)
knooppuntenmethode
vakwerk (statisch bepaald)
symboolbetekeniseenheid
knopen, staven, reacties–
stapGauss-eliminatie
1schrijf de aangevulde matrix
2kolom : kies de grootste spil (rijverwisseling), maak nullen onder de spil met
3herhaal tot een driehoeksmatrix; een rij : geen oplossing; : oneindig veel
4vul van onder naar boven in; controleer door in te vullen
5kijk naar het conditiegetal: cijfers gaan verloren
Het geheel · 5.22

Waar vectoren en matrices vandaan komen en waar ze heen gaan

22/22

Vectoren zijn de taal van krachten en bewegingen (K), velden en stromen (L, E) en richtingen in de ruimte (de zon, een robot). Matrices zijn de taal van alles wat uit veel gekoppelde lineaire vergelijkingen bestaat: netwerken, constructies, modellen met veel parameters, data (A). Een computer rekent bijna uitsluitend met matrices.

Vectoren optellen en ontbinden, de hoek van de zon op het paneel.

Arbeid als kracht maal weg; hier als scalair product bij elke hoek.

Moment en evenwicht, de steun van het zonnepaneel: hier als r × F en als vakwerk.

Knooppunt- en maaswet, de brug, het eerste stelsel met numpy.

Stelsels van differentiaalvergelijkingen: de toestand als vector, impliciete Euler vraagt een matrixstelsel.

Plaats, snelheid en versnelling als vectoren.

Impulsmoment en moment als vectorproducten.

De knooppunten- en snedemethode, en het idee van de eindige-elementenmethode.

De Lorentzkracht q v × B en het veld van een stroomdraad.

LU-ontbinding, stabiliteit en ijle matrices.

De kleinste kwadraten van Gauss: normaalvergelijkingen en conditie.

Een laag van een neuraal netwerk is een matrix maal een vector.

HabitatHet brein van het station rekent het voedingsnet door als : het 12,8 V-net van de module met de lampen in een ring (grootste val 1,5 %, zonder ring 3,1 %). Het berekent met scalaire producten hoeveel zon er op elk paneel valt en met matrices waar het robotje is. De steun van het zonnepaneel is als vakwerk nagerekend. Opdracht 5.13 toetst het voedingsnet onder zwaardere omstandigheden; hoofdstuk 13 en 24 bouwen verder op dezelfde matrices.
Samenvatting

In het kort

Begrippen

Wat je nu kent

vector
Een grootheid met grootte en richting, genoteerd als rijtje componenten, bv. .
eenheidsvector
Een vector met lengte 1: . Hij geeft alleen een richting.
scalair product
: een getal; nul als de vectoren loodrecht staan.
vectorproduct
: een vector loodrecht op en (rechterhandregel), met grootte , de oppervlakte van hun parallellogram.
moment (vector)
: de draaiwerking van een kracht om een punt; de richting is de draai-as, het teken de draaizin.
matrix
Een rechthoekige tabel getallen; als transformatie stuurt ze elke vector naar een nieuwe vector, lineair.
determinant
Voor een 2 × 2-matrix : de factor waarmee oppervlakten veranderen (negatief: gespiegeld). Nul betekent: niet omkeerbaar.
inverse matrix
met ; bestaat alleen als .
methode van Gauss
Een stelsel oplossen door rijen te combineren tot een driehoeksvorm (eliminatie) en dan van onder naar boven in te vullen.
conditiegetal
Maat voor hoe gevoelig de oplossing van een stelsel is voor kleine fouten in de gegevens; groot betekent slecht geconditioneerd.
knooppuntenmethode
Kirchhoffs knooppuntwet voor elke knoop, met de potentialen als onbekenden: .
vakwerk
Een constructie van rechte staven, in knopen scharnierend verbonden, die alleen trek of druk dragen.
Aan de slag in het werkboek18 opdrachten, van oefenen tot uitdagen