added Gauss-Jordan

This commit is contained in:
HEL
2024-06-25 17:07:24 +02:00
parent d880ebd2aa
commit cfda844ebc
4 changed files with 84 additions and 4 deletions
+4 -4
View File
@@ -796,8 +796,8 @@ endobj
ŸŽÆ?ÿr&½ÍÉùs:$ìç¿!aìƒÙ‰Ÿ¿€à~ÔB:­œ¤rÙ(w¡†Tuf5ºq&wÆqÂnøX/€–¨`®SÒ°–{+)ÔàjX>I• ŠQé’öÙ7´g7Chhx ŸŽÆ?ÿr&½ÍÉùs:$ìç¿!aìƒÙ‰Ÿ¿€à~ÔB:­œ¤rÙ(w¡†Tuf5ºq&wÆqÂnøX/€–¨`®SÒ°–{+)ÔàjX>I• ŠQé’öÙ7´g7Chhx
Öuš[7jò?2ê»,§hýJ”hÇùtCôЭ‘L5»qòÆC Öuš[7jò?2ê»,§hýJ”hÇùtCôЭ‘L5»qòÆC
Ùí æ%i_8fã”2rNW0—Ä1<ø‰í“Ù.¾â¤8è £µaûr% •t_2U.0OuÆ…|ßêÊ3õ=EZÖ´Ô‡í6è¾J:wk#E¹§Ç xÑÐp=›ÛŠž³­Ú‘4ÝÎÙÅÌϸ Eµ$Cf° E<Ʋ<†7iÉO^±ôÕ—\[Ó®&€¦Åém×@ç‹ašŒ°bîG·UÕ¹J?."Ǹó]" kše·ßQ¾cƒü—,û9’îh»!–‘b4½ªËï–åÃt| dbób¼ÆŸ %VèÅ¢(YPVžˆ: Ùí æ%i_8fã”2rNW0—Ä1<ø‰í“Ù.¾â¤8è £µaûr% •t_2U.0OuÆ…|ßêÊ3õ=EZÖ´Ô‡í6è¾J:wk#E¹§Ç xÑÐp=›ÛŠž³­Ú‘4ÝÎÙÅÌϸ Eµ$Cf° E<Ʋ<†7iÉO^±ôÕ—\[Ó®&€¦Åém×@ç‹ašŒ°bîG·UÕ¹J?."Ǹó]" kše·ßQ¾cƒü—,û9’îh»!–‘b4½ªËï–åÃt| dbób¼ÆŸ %VèÅ¢(YPVžˆ:
eÂÚ©X}ÈÝHçS¿…òÁ gÃv»˜™Å\WÄ eÂÚ©X}ÈÝHçS¿…òÁ gÃv»˜™Å\WÄ
ïîì8>è´Ö^$AØLù…]@‰ªÂF­kšj€±x]¸ÚŠû50ƒ§×Ñ…ºs¦`K5€òÊw\-à«ÆÓhAëðÒ˜?Òã1yÛfCÄþ<ܨ ïîì8>è´Ö^$AØLù…]@‰ªÂF­kšj€±x]¸ÚŠû50ƒ§×Ñ…ºs¦`K5€òÊw\-à«ÆÓhAëðÒ˜?Òã1yÛfCÄþ<ܨ
ûù”Ë„#Ù°”­nÚÉ ¶^‚îå¿„f`|_[L½»çUÕdÑu ûù”Ë„#Ù°”­nÚÉ ¶^‚îå¿„f`|_[L½»çUÕdÑu
Åñ©Vèã {ÁŠ0c¾¼õš¤Q‘­n6ÊýhXNŒ#ŒªPlÔÆÓm0÷«þAš»Æüƒßx{Ÿ#š¿Q­,«NË•þÑ¥¯ŽbÑ*\§µš«óð5Âøô‘k8{WÆÕ Åñ©Vèã {ÁŠ0c¾¼õš¤Q‘­n6ÊýhXNŒ#ŒªPlÔÆÓm0÷«þAš»Æüƒßx{Ÿ#š¿Q­,«NË•þÑ¥¯ŽbÑ*\§µš«óð5Âøô‘k8{WÆÕ
XëM¸™h XëM¸™h
@@ -808,7 +808,7 @@ endobj
¹ÚøßÒ¹o ¹ÚøßÒ¹o
èÄ{aô5Æ]k)´ë. –Ç·ùÆ]É¥XÁ¬xX;¬þÚ1*¼j¬'õY¯Ú^М%Xµtø]4M²ÆR2Lcg˜<ž»îiŽ—vÍ&!)=åžú óZjhþYPjBu/'ÿ ¾Pzêàd]~kA&º¤÷Œü3If_h¸¬ð±ÏâSó“‹vÝHÂ*r}…ÿ'×7ðYî©Ïò[=œ)\3ßHÊ e°2H¬ÒÃÞEiå4îÄÙSç6 z<N”÷ Éð ßôCõà]¸V–œò\i(74å† èÄ{aô5Æ]k)´ë. –Ç·ùÆ]É¥XÁ¬xX;¬þÚ1*¼j¬'õY¯Ú^М%Xµtø]4M²ÆR2Lcg˜<ž»îiŽ—vÍ&!)=åžú óZjhþYPjBu/'ÿ ¾Pzêàd]~kA&º¤÷Œü3If_h¸¬ð±ÏâSó“‹vÝHÂ*r}…ÿ'×7ðYî©Ïò[=œ)\3ßHÊ e°2H¬ÒÃÞEiå4îÄÙSç6 z<N”÷ Éð ßôCõà]¸V–œò\i(74å†
ûÏà2ê˜÷&Ö"Ì%e°Vž0d`\¸fâþ÷úýoÌe}|Ë|uáEŒ&îȃµ¯ ¡ìw¸n-SòuLWjK—ŒOþ×®ü`Ž‹úJ—ÕSi¥±É´W÷¿éþg%³ó—eÇßIf_Τ«ÕHGEóR€M'cÓØ4ql (ØöïúW.ÀØö/Èéq‹§Ì ûÏà2ê˜÷&Ö"Ì%e°Vž0d`\¸fâþ÷úýoÌe}|Ë|uáEŒ&îȃµ¯ ¡ìw¸n-SòuLWjK—ŒOþ×®ü`Ž‹úJ—ÕSi¥±É´W÷¿éþg%³ó—eÇßIf_Τ«ÕHGEóR€M'cÓØ4ql (ØöïúW.ÀØö/Èéq‹§Ì
L7qÊ„Àà1Ó'$ø-žš¦•ùsçΟ?!qüø ~ãÇÏ0ß“?™;~¼ß„ñãñIbàâi ‰Óç0qúèà@¿)âF'N¯¡¬0Áõu¢ö5{âOf͘1kV@ÂdÏÎnræ.Ïêüvå·íÏ"åÌÒ·Y3à݌ɞÎH·É“'Ïœå¹Ã-Rɼ½ô[[—ÒJf©3¼ „w³´ÚfâÊ(üÂ_{*?§ÚÊdkô9¦Þ%eúhõÊì7#û'õ©»ñcVm›u N¸áJJã”þrã”~†4ñWÑ4†¦åhšø«Ð@IùÎ9<mÜU33âJ\2Ô.Éß9GhVZ×i?ü$£O#½>Ó¿ïRFBXÛ®Žžê†mm L7qÊ„Àà1Ó'$ø-žš¦•ùsçΟ?!qüø ~ãÇÏ0ß“?™;~¼ß„ñãñIbàâi ‰Óç0qúèà@¿)âF'N¯¡¬0Áõu¢ö5{âOf͘1kV@ÂdÏÎnræ.Ïêüvå·íÏ"åÌÒ·Y3à݌ɞÎH·É“'Ïœå¹Ã-Rɼ½ô[[—ÒJf©3¼ „w³´ÚfâÊ(üÂ_{*?§ÚÊdkô9¦Þ%eúhõÊì7#û'õ©»ñcVm›u N¸áJJã”þrã”~†4ñWÑ4†¦åhšø«Ð@IùÎ9<mÜU33âJ\2Ô.Éß9GhVZ×i?ü$£O#½>Ó¿ïRFBXÛ®Žžê†mm
§Ûrcg¥±³ßÇýLË'Ò4ñaÌbœ’[ISZ9ágne$u¶2©³€rKñQnÉ>4¥€ ÿØy¾ÙåŽëáìÊ&ÖóÝ.wœ*ã»HgÕ7‘îÆ=›{tø¡G:ôؼgïæÍ{a?Ãïêü°§ñú™3ׯ{Æbùö[‹åÌ·×,\L³F.þ §Ûrcg¥±³ßÇýLË'Ò4ñaÌbœ’[ISZ9ágne$u¶2©³€rKñQnÉ>4¥€ ÿØy¾ÙåŽëáìÊ&ÖóÝ.wœ*ã»HgÕ7‘îÆ=›{tø¡G:ôؼgïæÍ{a?Ãïêü°§ñú™3ׯ{Æbùö[‹åÌ·×,\L³F.þ
ý`Ô:¥ñ³]5~:¥mü.u–Hƒk¿?þË•ÇëÖiÑ¢NÝã-®@ÉÈD&5þPˆBjÔÀë5d"Ø©¦6[Süÿ©ß~;uê7OãOó—/Y6féÐㇱCxS[™@;PCjC>ãHí´ö£ Çé!º}ÑòµR܈ùÃðä,y·¼Ç0}:=%AR¶È[åÙÔºj¢iC¬‡/yU¶([ ý`Ô:¥ñ³]5~:¥mü.u–Hƒk¿?þË•ÇëÖiÑ¢NÝã-®@ÉÈD&5þPˆBjÔÀë5d"Ø©¦6[Süÿ©ß~;uê7OãOó—/Y6féÐㇱCxS[™@;PCjC>ãHí´ö£ Çé!º}ÑòµR܈ùÃðä,y·¼Ç0}:=%AR¶È[åÙÔºj¢iC¬‡/yU¶([
Sé¤éS$y·²Ç0e6M˜õÌUøò\X&PÖ:gÊtIÁ§O¢>™2…NÄÏ¡*eQšn^ )ÑØ8„QëÜ)¥8Ðq)7 Sé¤éS$y·²Ç0e6M˜õÌUøò\X&PÖ:gÊtIÁ§O¢>™2…NÄÏ¡*eQšn^ )ÑØ8„QëÜ)¥8Ðq)7
@@ -851,7 +851,7 @@ trailer
ü£\PZR§Á`”ŸËÏScö22fFV·Æ¥gtŇ)X2PÏ$âÒSjG[=Wž§F¾)®SÂt ü£\PZR§Á`”ŸËÏScö22fFV·Æ¥gtŇ)X2PÏ$âÒSjG[=Wž§F¾)®SÂt
«âа“±dÚt$™ ±×`sÀ–®dOS†’b“B¹+Ä[ýûÔˆª=Å=8T˪ؔ…oÀÑåm¦Ë6’̾t «âа“±dÚt$™ ±×`sÀ–®dOS†’b“B¹+Ä[ýûÔˆª=Å=8T˪ؔ…oÀÑåm¦Ë6’̾t
œ˜þR§ÐÞ¯í(àòNИä“êJa- VššÀ½s1,I>eàG LèGÙ)°ïã[NðÒf§ÀG©qè,;]Æ6`£Å<Ø·Æ9´ðgv:“ºbéϰÖ&Á~Øq¬º†Sœ œ˜þR§ÐÞ¯í(àòNИä“êJa- VššÀ½s1,I>eàG LèGÙ)°ïã[NðÒf§ÀG©qè,;]Æ6`£Å<Ø·Æ9´ðgv:“ºbéϰÖ&Á~Øq¬º†Sœ
’ïQÎW‡Ýg"óÊ ’ïQÎW‡Ýg"óÊ
åÔÝÓÁª~(›ªú5! q­ åÔÝÓÁª~(›ªú5! q­
¤wiËÅ,%ùvvÞàî¼€FAUdy » z²»:¹tf0³;s˜»À*•`U¤JÍç*ÁêIï6¯ @Âè‚,´¤3Ú˜°øV\kè­kŸh= ¬£Yºh³±±Æql4͸æ°q­Òò°ÆU½qmlØ*­¥ €Ñ €qÚ¦lšc?ÚŠÙxlÄ x8bÊF›Æ´÷ÎÝíÂ^fW×OÇŒŠ¦QïÝûè÷Ÿ ¯yÀ½õ ³åUu]u0Éÿvò*†Z¤{âfÔWx §ž´©y ëD­(Í[øÃ(µÿÜi›¨|ˆŽˆJï”Íý0²Ö/À0ÏZaŒ…^ÀÐóŽse±šŽBßÿ}áiêt$m¸÷3Q/ì¿ÔwÜ{eçð³ßeOðŠ¯›p×I‰vš&POªÃÑ"œgo‡¯¶ãçûžçh2D|$pW]RäE}µ~Óg´r"é &]i=˜Õ#%Ó§¹î™>øÑ ¤wiËÅ,%ùvvÞàî¼€FAUdy » z²»:¹tf0³;s˜»À*•`U¤JÍç*ÁêIï6¯ @Âè‚,´¤3Ú˜°øV\kè­kŸh= ¬£Yºh³±±Æql4͸æ°q­Òò°ÆU½qmlØ*­¥ €Ñ €qÚ¦lšc?ÚŠÙxlÄ x8bÊF›Æ´÷ÎÝíÂ^fW×OÇŒŠ¦QïÝûè÷Ÿ ¯yÀ½õ ³åUu]u0Éÿvò*†Z¤{âfÔWx §ž´©y ëD­(Í[øÃ(µÿÜi›¨|ˆŽˆJï”Íý0²Ö/À0ÏZaŒ…^ÀÐóŽse±šŽBßÿ}áiêt$m¸÷3Q/ì¿ÔwÜ{eçð³ßeOðŠ¯›p×I‰vš&POªÃÑ"œgo‡¯¶ãçûžçh2D|$pW]RäE}µ~Óg´r"é &]i=˜Õ#%Ó§¹î™>øÑ
eÔ[¼#º¦@/¿¯ð4¾[§áO£¬y ãåßõ@ÿW'·¦ïyþ auŽKguòö¯pé3Îåëþ6…¸´ !Þè“< |vO ¯obZ²:ÃFʵ eÔ[¼#º¦@/¿¯ð4¾[§áO£¬y ãåßõ@ÿW'·¦ïyþ auŽKguòö¯pé3Îåëþ6…¸´ !Þè“< |vO ¯obZ²:ÃFʵ
Binary file not shown.
+27
View File
@@ -0,0 +1,27 @@
#import "/src/lib.typ": *
#let A = mat.mat(
(3, -3, -1, 2, -9),
(1, -1, 2, -1, -6),
(1, -1, 1, 1, -6),
(-1, 1, -1, -2, 7)
)
#let b = vec.vec(13, -6, 1, -3)
#let A2 = mat.mul-row(A, 2, 3)
#let A3 = mat.div-row(A, 1, 2)
#let A4 = mat.add-row(A, 2, 3, f: 2)
$
A = #mat.display(A) quad b = #vec.display(b)\
A_2 = #mat.display(A2)\
A_3 = #mat.display(A3)\
A_4 = #mat.display(A4)\
$
#let E = gauss.echelon(A)
$
E = #mat.display(E)
$
+53
View File
@@ -0,0 +1,53 @@
#import "mat.typ" as _mat
#let find-next-non-null(mat, x: 0, start-y: 0) = {
for y in range(start-y, mat.h) {
if mat.rows.at(y).at(x) != 0 {
return y
}
}
return none
}
#let echelon(mat) = {
_mat._check(mat)
let dim = calc.min(mat.w, mat.h)
let mat = mat
// Gauss
for i in range(dim) {
let pivot = mat.rows.at(i).at(i)
// Pivot != 0 -> divide to get 1
if pivot != 0 {
mat = _mat.div-row(mat, i, pivot)
} else {
let y = find-next-non-null(mat, x: i, start-y: i)
if y != none {
mat = _mat.add-row(mat, i, y, f: 1 / mat.rows.at(y).at(i))
}
}
// Make all rows below 0
for y in range(i + 1, mat.h) {
mat = _mat.add-row(mat, y, i, f: -mat.rows.at(y).at(i))
}
}
// Jordan
for y in range(dim) {
for x in range(y + 1, dim) {
mat = _mat.add-row(mat, y, x, f: -mat.rows.at(y).at(x))
}
}
return _mat.round(mat)
}
// solver = Solver(matrix, constants)
// solver.solve()
// gauss = Gaussificator(matrix, constants)
// gauss.echelon()