Π‘Π°ΠΊΠ°Π»Π°Π²Ρ€
Π”ΠΈΠΏΠ»ΠΎΠΌΠ½Ρ‹Π΅ ΠΈ курсовыС Π½Π° Π·Π°ΠΊΠ°Π·

Бпособ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ систСмы Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ Π½Π° Π­Π’Πœ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Гаусса

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π’Ρ‹Π²ΠΎΠ΄ ΠœΠ΅Ρ‚ΠΎΠ΄ Гаусса относится ΠΊ ΠΏΡ€ΡΠΌΡ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ нахоТдСния Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для систСм БЛАУ. ΠœΠ΅Ρ‚ΠΎΠ΄ Гаусса ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ для систСм малСнькой ΠΈ ΡΡ€Π΅Π΄Π½Π΅ΠΉ размСрности. Для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΆΠ΅ размСрностСй ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π΅ΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π±ΠΎΠ»Π΅Π΅ эффСктивными ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. ΠœΠ΅Ρ‚ΠΎΠ΄ Гаусса с Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ элСмСнта ΠΏΠΎ ΡΡ‚ΠΎΠ»Π±Ρ†Ρƒ Π±ΠΎΠ»Π΅Π΅ устойчивый ΠΊ ΠΎΡˆΠΈΠ±ΠΊΠ°ΠΌ ΠΈ ΠΏΡ€ΠΈ этом Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΉ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Ρ‚Ρ€Π°Ρ‚… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Бпособ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ систСмы Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ Π½Π° Π­Π’Πœ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Гаусса (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

1. РСшСниС БЛАУ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Гаусса Π’Ρ‹Π²ΠΎΠ΄ Бписок использованной Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ систСму Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ. Если систСма ΠΈΠΌΠ΅Π΅Ρ‚ высокий порядок ΠΈΠ»ΠΈ просто ΠΈΡ… ΠΌΠ½ΠΎΠ³ΠΎ, Ρ‚ΠΎ ΠΏΡ€ΠΈΡ…одится ΠΏΡ€ΠΈΠ±Π΅Π³Π°Ρ‚ΡŒ ΠΊ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ нСсколько способов Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ систСму Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ Π½Π° Π­Π’Πœ. Π’ ΡΡ‚ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΌΡ‹ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ Гаусса.

гаусс Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΉ

1. РСшСниС БЛАУ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Гаусса ΠŸΡ€ΡΠΌΠΎΠΉ Ρ…ΠΎΠ΄ состоит ΠΈΠ· n (1 шагов ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

1-ΠΉ шаг. ЦСлью этого шага являСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ нСизвСстного x1 ΠΈΠ· ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ i = 2, 3, …, n. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ коэффициСнт a11 (0. Π‘ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π³Π»Π°Π²Π½Ρ‹ΠΌ элСмСнтом 1-Π³ΠΎ шага.

НайдСм Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹

qi1 = ai1/a11 (i = 2, 3, …, n),

Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ мноТитСлями 1-Π³ΠΎ шага. Π’Ρ‹Ρ‡Ρ‚Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ· Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ, Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ, …, n-Π³ΠΎ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ систСмы ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ соотвСтствСнно Π½Π° q21, q31, …, qn1. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π² Π½ΡƒΠ»ΡŒ коэффициСнты ΠΏΡ€ΠΈ x1 Π²ΠΎ Π²ΡΠ΅Ρ… уравнСниях, ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΡƒΡŽ систСму

a11×1 + a12×2 + a13×3 + … + a1nxn = b1,

a22(1)x2 + a23(1)x3 + … + a2n (1)xn = b2(1),

a32(1)x2 + a33(1)x3 + … + a3n (1)xn = b3(1),

an2(1)x2 + an3(1)x3 + … + ann (1)xn = bn (1).

Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ aij (1) ΠΈ bij (1) Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°ΠΌ

aij (1) = aij — qi1a1j, bi (1) = bi — qi1b1.

2-ΠΉ шаг. ЦСлью этого шага являСтся ΠΈΡΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ нСизвСстного x2 ΠΈΠ· ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ i = 3, 4, …, n. ΠŸΡƒΡΡ‚ΡŒ a22(1)? 0, Π³Π΄Π΅ a22(1) — коэффициСнт, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Π³Π»Π°Π²Π½Ρ‹ΠΌ (ΠΈΠ»ΠΈ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌ) элСмСнтом 2-Π³ΠΎ шага. Вычислим ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΠΈ 2-Π³ΠΎ шага

qi2 = ai2(1) / a22(1) (i = 3, 4, …, n)

ΠΈ Π²Ρ‹Ρ‡Ρ‚Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ· Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ, Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠ³ΠΎ, …, n-Π³ΠΎ уравнСния систСмы Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ соотвСтствСнно Π½Π° q32, q42, …, qm2. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ систСму

a11×1 + a12×2 + a13×3 + … + a1nxn = b1,

a22(1)x2 + a23(1)x3 + … + a2n (1) = b2(1),

a33(2)x3 + … + a3n (2)xn = b3(2),

an3(2)x3 + … + ann (2)xn = bn (2).

Аналогично проводятся ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ шаги. ОпишСм ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ k-ΠΉ шаг.

k-ΠΉ шаг. Π’ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎ Π³Π»Π°Π²Π½Ρ‹ΠΉ (Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ) элСмСнт k-Π³ΠΎ шага

akk (k-1) ΠΎΡ‚Π»ΠΈΡ‡Π΅Π½ ΠΎΡ‚ Π½ΡƒΠ»Ρ, вычислим ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΠΈ k-Π³ΠΎ шага

qik = aik (k-1) / akk (k-1) (i = k + 1, …, n)

ΠΈ Π²Ρ‹Ρ‡Ρ‚Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ· (k + 1)-Π³ΠΎ, …, n-Π³ΠΎ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ шагС систСмы k-e ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ соотвСтствСнно Π½Π° qk+1,k, qk+2,k, …, qnk. ПослС (n — 1)-Π³ΠΎ шага ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ систСму ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° A (n-1) ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ являСтся Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠΉ. На ΡΡ‚ΠΎΠΌ вычислСния прямого Ρ…ΠΎΠ΄Π° Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ.

a11×1 + a12×2 + a13×3 + … + a1nxn = b1,

a22(1)x2 + a23(1)x3 + … + a2n (1)xn = b2(1),

a33(2)x3 + … + a3n (2)xn = b3(2),

ann (n-1)xn = bn (n-1).

ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Ρ…ΠΎΠ΄. Из ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ уравнСния систСмы Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ xn. ΠŸΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ xn Π² ΠΏΡ€Π΅Π΄ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ xn-1. ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ подстановку, Π΄Π°Π»Π΅Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ xn-1, xn-2, …, x1. ВычислСния нСизвСстных здСсь проводятся ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°ΠΌ

xn = bn (n-1) / ann (n-1),

xk = (bn (k-1) — ak, k+1(k-1)xk+1 — … — akn (k-1)xn) / akk (k-1), (k = n ;

1, …, 1).

ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° Π³Π»Π°Π²Π½Ρ‹Ρ… элСмСнтов. Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ вычислСниС ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»Π΅ΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ обратная подстановка Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ дСлСния Π½Π° Π³Π»Π°Π²Π½Ρ‹Π΅ элСмСнты akk (k-1). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ссли ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… элСмСнтов оказываСтся Ρ€Π°Π²Π½Ρ‹ΠΌ Π½ΡƒΠ»ΡŽ, Ρ‚ΠΎ ΡΡ…Π΅ΠΌΠ° СдинствСнного дСлСния Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π°.

Π—Π΄Ρ€Π°Π²Ρ‹ΠΉ смысл подсказываСт, Ρ‡Ρ‚ΠΎ ΠΈ Π² ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° всС Π³Π»Π°Π²Π½Ρ‹Π΅ элСмСнты ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ ΠΎΡ‚ Π½ΡƒΠ»Ρ, Π½ΠΎ ΡΡ€Π΅Π΄ΠΈ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ Π±Π»ΠΈΠ·ΠΊΠΈΠ΅ ΠΊ Π½ΡƒΠ»ΡŽ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π½Π΅ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ рост ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΠΈ.

Рис. 1 — Алгоритм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Гаусса

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ прилоТСния ЗапускаСм Delphi, выполняСм ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ File/New/Form

Рис. 2 — Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°

На ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ:

Image1 — ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ — заставка

Timer1 — Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Рис. 3 — Π‘Ρ‚Π°Ρ€Ρ‚ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π”Π°Π»Π΅Π΅ добавляСм Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ Ρ„ΠΎΡ€ΠΌΡƒ (form3) ΠΈ ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌ Π² Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ 2 врСмя, ΠΏΠΎ ΠΈΡΡ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ основноС ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Рис. 4. ОсновноС ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

На ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠ΅ΠΉΡΡ Ρ„ΠΎΡ€ΠΌΠ΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ:

Button1 — Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ систСмы

Button2 — графичСскоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ систСмы ΠΏΡ€ΠΈ N=2

Edit1 — Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ систСмы

Image1 — Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°

Label1, Label2 — подписи

MainMenu1 — созданиС мСню

SavePictureDialog1 — Π΄ΠΈΠ°Π»ΠΎΠ³ для сохранСния изобраТСния Π² Ρ„Π°ΠΉΠ»

StringGrid1, StringGrid2 — Π²Π²ΠΎΠ΄ исходных Π΄Π°Π½Π½Ρ‹Ρ… Π”Π²ΠΎΠΉΠ½Ρ‹ΠΌ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠΈΡˆΠ΅ΠΌ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Код unit3

unit Unit3;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, StdCtrls, Menus, ExtCtrls, unit1, ExtDlgs, unit4, unit5;

const MaxDimension = 10;

type

Vector = array[1.MaxDimension] of Double;

Matrix = array[1.MaxDimension] of Vector;

TForm3 = class (TForm)

Label1: TLabel;

Edit1: TEdit;

StringGrid1: TStringGrid;

StringGrid2: TStringGrid;

Button1: TButton;

Label2: TLabel;

Label3: TLabel;

MainMenu1: TMainMenu;

N1: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

Image1: TImage;

SavePictureDialog1: TSavePictureDialog;

N2: TMenuItem;

Button2: TButton;

procedure Edit1Change (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure N6Click (Sender: TObject);

procedure N4Click (Sender: TObject);

procedure N3Click (Sender: TObject);

procedure N2Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3. Button1Click (Sender: TObject);

var a: Matrix;

b, x: Vector;

h: Double;

i, j, k, n: integer;

begin

//Π’Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ…

//Π Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ систСмы

n:= StrToIntDef (Text, StringGrid1. ColCount);

//ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚Ρ‹

for i:=0 to 249 do begin

for j:=0 to 161 do begin

image1.Canvas.Pixels [i, j]: =image1.Canvas.Pixels[1,1];

end;

for j:= 0 to n — 1 do

for i:= 0 to n — 1 do

a[i + 1, j + 1]: = StrToFloatDef (StringGrid1.Cells[j, i], 0);

//ΠŸΡ€Π°Π²Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ уравнСния

for I:= 0 to n — 1 do b[i + 1]: = StrToFloatDef (StringGrid2.Cells[0, i], 0);

//ΠŸΡ€ΡΠΌΠΎΠΉ Ρ…ΠΎΠ΄ — ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

for i:=1 to n-1 do

for j:=i+1 to n do

begin

a[j, i]: =-a[j, i]/a[i, i];

for k:=i+1 to n do

a[j, k]: =a[j, k]+a[j, i]*a[i, k];

b[j]: =b[j]+a[j, i]*b[i]

end;

x[n]: =b[n]/a[n, n];

//ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Ρ…ΠΎΠ΄ — Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ€Π½Π΅ΠΉ

for i:=n-1 downto 1 do

begin

h:=b[i];

for j:=i+1 to n do h:=h-x[j]*a[i, j];

x[i]: =h/a[i, i]

end;

//Π’Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°

for i:=1 to n do image1.Canvas.TextOut (1, 1+15*i, ('x'+ floattostr (i)+'= '+floattostr (x[i])));

for i:=0 to 249 do begin

for j:=0 to 161 do begin

if image1.Canvas.Pixels [i, j]<>clblack then image1.Canvas.Pixels [i, j]: =image1.Canvas.Pixels[1,1];

end;

procedure TForm3. Edit1Change (Sender: TObject);

begin

with StringGrid1, Edit1 do

begin

ColCount:= StrToIntDef (Text, 3);

RowCount:= StrToIntDef (Text, 3);

end;

with StringGrid2, Edit1 do

RowCount:= StrToIntDef (Text, 3);

if edit1. Text='2' then button2. Enabled:=true else button2. Enabled:=false;

end; //Button2 Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ N=2

procedure TForm3. FormCreate (Sender: TObject);

var i, j: integer;

begin

//Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ коэф уравнСния

Randomize;

for I:= 0 to StrToIntDef (Text, StringGrid1. ColCount) — 1 do

for J:= 0 to StrToIntDef (Text, StringGrid1. RowCount) — 1 do

StringGrid1.Cells[I, J]: = IntToStr (Random (100));

for I:= 0 to StrToIntDef (Text, StringGrid2. RowCount) — 1 do

StringGrid2.Cells[0, I]: = IntToStr (Random (100))

procedure TForm3. N6Click (Sender: TObject);

begin

form1.Visible:=true;

end;

procedure TForm3. N4Click (Sender: TObject);

begin

close;

end;

procedure TForm3. N3Click (Sender: TObject);

var

filename: string;

begin

if savepicturedialog1. Execute then

begin

FileName:= savepicturedialog1. FileName;

image1.Picture.SaveToFile (filename);// сохранСниС Image1 Π² Ρ„Π°ΠΉΠ»

end;

procedure TForm3. N2Click (Sender: TObject);

begin

form4.Visible:=true;

end;

procedure TForm3. Button2Click (Sender: TObject);

var

i, j: integer;

begin

form5.Image1.Canvas.Rectangle (0,0,400,400);

for i:=1 to 398 do begin

for j:=1 to 398 do begin

form5.Image1.Canvas.Pixels[i, j]: =form3.Image1.Canvas.Pixels[1,1];

end;

end; //рисуСм Ρ€Π°ΠΌΠΊΡƒ ΠΈ ΠΊΡ€Π°ΡΠΈΠΌ Π΅Π΅ Π² Ρ†Π²Π΅Ρ‚ ΠΎΠΊΠ½Π°

form5.Visible:=true;

form5.Image1.Canvas.pen.Color:=clred;

form5.Image1.Canvas.MoveTo (0,200−50*round ((strtofloat (stringGrid2.Cells[0,0])+4*strtofloat (stringGrid1.Cells[0,0]))/strtofloat (stringGrid1.Cells[1,0])));

form5.Image1.Canvas.LineTo (400,200−50*round ((strtofloat (stringGrid2.Cells[0,0])-4*strtofloat (stringGrid1.Cells[0,0]))/strtofloat (stringGrid1.Cells[1,0])));

form5.Image1.Canvas.Pen.Color:=clblue;

form5.Image1.Canvas.MoveTo (0,200−50*round ((strtofloat (stringGrid2.Cells[0,1])+4*strtofloat (stringGrid1.Cells[0,1]))/strtofloat (stringGrid1.Cells[1,1])));

form5.Image1.Canvas.LineTo (400,200−50*round ((strtofloat (stringGrid2.Cells[0,1])-4*strtofloat (stringGrid1.Cells[0,1]))/strtofloat (stringGrid1.Cells[1,1])));

form5.Image1.Canvas.Pen.Color:=clblack;

i:=0;

form5.Image1.Canvas.MoveTo (200,0);

form5.Image1.Canvas.LineTo (200,400);

form5.Image1.Canvas.MoveTo (0,200);

form5.Image1.Canvas.LineTo (400,200);

repeat

i:=i+50;

form5.Image1.Canvas.MoveTo (i, 195);

form5.Image1.Canvas.LineTo (i, 205);

form5.Image1.Canvas.MoveTo (195,i);

form5.Image1.Canvas.LineTo (205,i);

until i>300;

form5.Image1.Canvas.TextOut (185,145,'1');// ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π°Ρ построСниС Π³Ρ€Π°Ρ„ΠΈΠΊΠ°

end;

unit Unit4;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, jpeg, ExtCtrls;

type

TForm4 = class (TForm)

Image1: TImage;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

implementation

{$R *.dfm}

end.

На ΡΡ‚ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ размСстим Image1, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊ. Π•Π³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ прописан Π² Unit3

Код unit5

unit Unit5;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls;

type

TForm5 = class (TForm)

Image1: TImage;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

implementation

{$R *.dfm}

end.

Код unit1

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class (TForm)

Label1: TLabel;

procedure FormCreate (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1. FormCreate (Sender: TObject);

begin

label1.Caption:='Данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅'+#10#13+'систСм Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… алгСбраичСских ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ'+#10#13+ 'ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Гаусса';

end;

Π’Ρ‹Π²ΠΎΠ΄ ΠœΠ΅Ρ‚ΠΎΠ΄ Гаусса относится ΠΊ ΠΏΡ€ΡΠΌΡ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ нахоТдСния Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для систСм БЛАУ. ΠœΠ΅Ρ‚ΠΎΠ΄ Гаусса ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ для систСм малСнькой ΠΈ ΡΡ€Π΅Π΄Π½Π΅ΠΉ размСрности. Для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΆΠ΅ размСрностСй ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π΅ΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π±ΠΎΠ»Π΅Π΅ эффСктивными ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. ΠœΠ΅Ρ‚ΠΎΠ΄ Гаусса с Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ элСмСнта ΠΏΠΎ ΡΡ‚ΠΎΠ»Π±Ρ†Ρƒ Π±ΠΎΠ»Π΅Π΅ устойчивый ΠΊ ΠΎΡˆΠΈΠ±ΠΊΠ°ΠΌ ΠΈ ΠΏΡ€ΠΈ этом Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΉ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Ρ‚Ρ€Π°Ρ‚ рСсурсов Π­Π’Πœ.

1. http:/www.wikipedia.org/wiki/ΠœΠ΅Ρ‚ΠΎΠ΄ Гаусса

2. ΠšΠ°Ρ€Ρ‡Π΅Π²ΡΠΊΠ°Ρ М. П., Π Π°ΠΌΠ±ΡƒΡ€Π³Π΅Ρ€ О. Π›., Π’Π°Ρ€Ρ…ΠΎΠ² Π‘. Π’., Π₯Π°ΠΌΠ·ΠΈΠ½Π° Π•. А. «Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΡΡ€Π΅Π΄Π΅ Borland Delphi», УГАВУ-2005

3. ΠœΠ°ΡΡ‚Π΅Ρ€ — Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ Delphi 7 AlexSoft 1997;2001 Π³.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ