Застосування Excel для розв’язання систем лінійних алгебраїчних рівнянь при моделюванні в хімії
Authors: Шенаєва Тетяна Олексіївна , Медведєв Микола Георгійович 
Published: March 2022

Однією з особливостей хімії ХХІ століття є її інформатизація та математизація, при цьому хімія виходить на новий рівень розвитку з новими для неї можливостями. Багато авторів приділяють увагу місцю математики та інформатики в сучасній хімії: Н. Д. Вишнивецька, В. С. Вишнивецька, Т. М. Деркач, С. А. Неділько, М. Є. Соловйов, М. М. Соловйов, А. А. Черняк, Ж. А. Черняк, А. А. Якимович та інші.Загальновідомо, що в умовах вищих навчальних закладів та середніх шкіл дуже гостро стоїть питання про роботу на комп’ютерах тільки з ліцензійними програмами, що на даному етапі не завжди можливо. В той же час комп’ютери в навчальних закладах та в домашніх умовах налагоджені, в основному, на операційну систему Windows з пакетом програм Microsoft Office. Табличний процесор Excel входить до цього пакету програм, має великі обчислювальні можливості, зручний та простий в користуванні, має російський інтерфейс, тому раціонально математичні методи в хімії здійснювати в Excel. Ряд авторів присвятили свої роботи математичному моделюванні в Excel [1; 3; 6]. Про популярність цієї програми говорить і той факт, що табличний процесор Excel активно розглядається та використовується в соціальних мережах.Метою даної роботи є подання прикладів хімічних систем та процесів, які описуються за допомогою системи лінійних алгебраїчних рівнянь (СЛАР), і алгоритмів розв’язування СЛАР в Excel.Більшість фізичних, фізико-хімічних, хімічних та технологічних процесів описуються СЛАР. Наведено приклади хімічних систем та хімічних процесів, математичними моделями яких є СЛАР.Неорганічна хімія. Розчини та їх приготування з вихідного розчину та кристалічної речовини. Розрахунок маси вихідних компонентів для приготування розчину певної маси та певної концентрації речовини. При цьому складають систему рівнянь, перше з яких є рівнянням балансу за масою розчину, який треба приготувати, друге є рівнянням матеріального балансу за речовиною в кінцевому розчині.Фізична хімія. Тиск багатокомпонентної хімічної системи. Розрахунок тиску пари чистих компонентів, якщо відомо сумарний тиск суміші цих компонентів в однофазній системі за певної сталої температури та склад суміші. В даному випадку складають систему рівнянь, в кожному з яких підводиться баланс за тиском суміші. Кількість рівнянь повинна бути неменше кількості компонентів у суміші.Аналітична хімія. Спектрофотометричний аналіз багатокомпонентної суміші. Розрахунок кількісного складу багатокомпонентної суміші за результатами вимірювання оптичної густини суміші при різних довжинах хвиль. При цьому складають систему рівнянь, в кожному з яких підводиться баланс за оптичною густиною суміші при певній довжині хвилі. Система рівнянь має розв’язок, якщо кількість довжин хвиль, при яких проводили вимірювання оптичної густини суміші, неменше кількості компонентів цієї суміші.Регресійний аналіз результатів хімічного експерименту. За методом найменших квадратів знаходять рівняння регресії (математична модель експерименту), яке оптимально відповідає залежності функції, яку вивчають, від аргументів в експерименті (наприклад, розчинності речовин від температури).Хімічна технологія. Суміші та їх приготування для проведення певного технологічного процесу з компонентів, в тому числі, відходів виробництва. Розрахунок маси вихідних компонентів для приготування суміші певної маси та певного складу. Для цього складають систему рівнянь, перше з яких є рівнянням балансу за масою суміші, яку треба приготувати, інші є рівняннями матеріального балансу за окремими речовинами в кінцевій суміші.Наступний етап в роботі хіміка – це розв’язання СЛАР, яке іноді є складним та довготривалим процесом. Застосування Excel значно спрощує та прискорює цей процес і дозволяє хіміку більше уваги приділити хімічній суті даного процесу. Тому розглянемо методи розв’язування СЛАР із застосуванням Excel.Існує багато способів розв’язання СЛАР, які поділяють на дві групи:1) точні методи, за допомогою яких знаходимо за певним алгоритмом точні значення коренів системи. До них відносяться метод Крамера, метод Жордана-Гауcса, метод Гаусcа, метод оберненої матриці та інші;2) ітераційні методи, за допомогою яких знаходимо корені системи з заданою заздалегідь точністю шляхом збіжних нескінченних процесів. Це такі методи, як метод простої ітерації, метод Гауcса-Зейделя, метод верхньої та нижньої релаксації та інші.Легко реалізуються в Excel такі методи розв’язування СЛАР, як метод Крамера та матричний метод (або метод оберненої матриці).Розв’язання СЛАР точними методамиМетод КрамераНехай задана система n лінійних рівнянь з n невідомими, (1)тоді їй відповідає матриця:(2)Якщо детермінант det A = Δ ≠ 0, ця система має єдиний розв’язок.Замінимо у визначнику основної матриці Δ i-ий стовпець стовпцем вільних членів, тоді одержимо n інших визначників для знаходження n невідомих Δ1, Δ2, …, Δ n. За формулами Крамера знаходимо невідомі:;; …; . (3)Таким чином, з формули (3) видно, що якщо визначник системи не дорівнює нулю (Δ ≠ 0), то система має лише один розв’язок.Цей метод можна реалізувати в Excel за допомогою математичної функції майстра функцій МОПРЕД (масив матриці), яка знаходить визначник матриці.Метод оберненої матриці1. Записуємо систему в матричній формі:Ах = b,де А – матриця коефіцієнтів; х – вектор невідомих; b – вектор вільних членів.2. Обидві частини матричного рівняння множаться на матрицю, обернену до А:А-1Ах = А-1b. (4)За визначенням, добуток матриці на обернену до неї дає одиничну матрицю, а добуток одиничної матриці на будь-який вектор дорівнює цьому ж вектору, тому рівняння (4) перетворюється до наступного вигляду:х = А-1b.Це і є розв’язок системи рівнянь.Для здійснення цього методу в Excel застосовують математичну функцію МОПРЕД (масив вихідної матриці А), МОБР (масив вихідної матриці А), за допомогою якої знаходять обернену матрицю А-1, та функцію МУМНОЖ (масив матриці А-1; масив вектора b), яка знаходить добуток матриць. Функції подані з указанням їх синтаксису в Excel. Функції «МУМНОЖ» та «МОБР» – функції масивів, які в якості результату повертають масив значень.Розв’язання СЛАР ітераційними методамиМетод простої ітерації1. Нехай маємо систему n лінійних алгебраїчних рівнянь з n невідомими (1), основна матриця А (2) якої має детермінант det A = Δ ≠ 0. Таким чином, система має єдиний розв’язок.2. Перевіримо задану систему на виконання для всіх рівнянь наступної умови, достатньої на цьому етапі для збіжності наступного процесу ітерацій:, і = 1, 2, …, n. (5)Якщо система n лінійних алгебраїчних рівнянь не задовольняє цій умові, то перетворюємо її на еквівалентну систему елементарними перетвореннями так, щоб виконувалась умова (5) для всіх діагональних коефіцієнтів. Вважаємо, що представлена система рівнянь (1) відповідає умові (5).3.Розв’яжемо перше рівняння відносно х1, друге – відносно х2 і так далі. В результаті одержимо таку систему в ітераційній формі:, (6)де ; при i ≠ j та ai,j = 0 при i = j.Тоді одержимо систему в матричному вигляді:х = β + αх, (7)де; ; .4. Розв’яжемо систему методом послідовних наближень (ітерацій). За нульовий розв’язок приймемо або розв’язок якимось прямим методом, або стовпець вільних членів, тобто, х(0) = β, або будь-які довільні числа.5. Підставимо одержані значення х(0) у праві частини рівнянь системи в ітераційній формі (6) і одержимо перше наближення х(1) = β + αх(0). потім друге наближення х(2) = β + αх(1) і так далі. В загальному вигляді маємо, що (k)-е наближення розраховуємо за формулою х(k) = β + αх(k-1).Якщо послідовність наближень х(1), х(2), …, х(k), … має границю, тобто, i = 1,2 … , n ,то ця границя буде розв’язком системи (7) xj*= (x1*, xj*,… , xn* ).Умова закінчення ітераційного процесу для отримання розв’язку наступна:, i = 1,2,…, n, (8)де ε > 0, не більше граничної похибки наближеного розв’язку.Метод Гауcса-ЗейделяЯкщо в методі простої ітерації при обчисленні k-го наближення х(k)=(х1(k), х2(k), х3(k)) використовуємо тільки результати (k-1)-го наближення, то в ітераційному методі Гауcса-Зейделя для обчислення хі(k) використовують вже знайдені значення х1 (k), … , хі-1(k). Умови збіжності методу Гауcса-Зейделя ті ж самі, що і для методу простої ітерації, але ітераційний процес в цьому випадку відбувається швидше, хоч обчислення більш громіздкі.Для здійснення цього методу в Excel треба привести СЛАР до ітераційної форми, налагодити обчислювальний ітераційний процес за допомогою меню «сервіс», ініціалізувати ітераційний процес уведенням початкових наближень та застосуванням логічної функції ЕСЛИ(лог_выражение; знач_если_истина; знач_если_ложь), при введенні рівнянь використати посилання. Ітераційний процес продовжують до тих пір, поки не досягають задовільної збіжності до розв’язку.Цей метод більш складний для реалізації в Excel, тому покажемо алгоритм на прикладі.Приклад. Нехай треба розв’язати таку систему рівнянь: Перетворимо систему лінійних рівнянь до ітераційної форми Відкриваємо робочий аркуш Excel і налагоджуємо обчислювальний ітераційний процес:- обираємо команду Сервис → Параметры;- відкриваємо вкладку Вычисления;- вмикаємо режим Вручную;- ставимо відмітку на перемикач Итерации;- уводимо в поле Предельное число итераций значення 1;- відмикаємо режим Пересчёт перед сохранением;- тиснемо на кнопку ОК.До комірки А1 вводимо «Розвязок систем рівнянь. Метод Гаусса-Зейделя».До комірки А3 вводимо «Поч. флаг».До комірки В3 вводимо початковий флаг ініціалізації (спочатку ИСТИНА, потім ЛОЖЬ), який би переводив обчислювальний процес в певний початковий стан.При введенні значення ИСТИНА функція ЕСЛИ (лог_выражение; знач_если_истина; знач_если_ложь) повертає початкові наближення в стовпець розв’язку (0;0;0), тобто, в якості аргументу функції (ЕСЛИ) знач_если_истина використовуємо початкові наближення 0;0;0.При введенні значення ЛОЖЬ функція ЕСЛИ (лог_выражение; знач_если_истина; знач_если_ложь) повертає наступні наближення в стовпець розв’язку, тобто, в якості аргументу функції (ЕСЛИ) знач_если_ложь використовуємо стовпець приведених рівнянь.До комірки А6 вводимо «Початкові значення».До комірок А7:А9 вводимо стовпець початкових наближень, нехай це будуть нулі (0;0;0).Вводимо стовпець рівнянь в ітераційній формі:До комірки В6 вводимо «Рівняння».До комірки В7 вводимо =(С8+2*С9)/8.До комірки В8 вводимо =(10-5*С7+С9)/7.До комірки В9 вводимо =(2+2*С7+С8)/4.В комірку С6 вводимо «Розв’язки».В комірку С7 вводимо формулу: =ЕСЛИ($B$3; A7; B7) і копіюємо її в комірки С8 та С9.Для проведення розрахунків встановлюємо флаг ініціалізації рівним ИСТИНА і натискаємо клавішу F9. Після ініціалізації листа змінюємо значення флага ініціалізації на ЛОЖЬ і натискаємо клавішу F9. Перехід до наступної ітерації здійснюємо за допомогою клавіші F9. Ітераційний процес продовжуємо доти, поки не буде виконуватись умова (8).ВисновкиБільшість фізичних, фізико-хімічних, хімічних та технологічних процесів описується системами лінійних рівнянь.Наведені приклади хімічних систем та процесів, які описуються за допомогою системи лінійних алгебраїчних рівнянь.Застосування Excel значно спрощує та прискорює розв’язок систем лінійних рівнянь.Описані алгоритми розв’язання систем лінійних рівнянь в Excel точними методами (метод Крамера та метод оберненої матриці) та ітераційним методом Гауcса-Зейделя.Представлені приклади систем з різних областей хімії та алгоритми розв’язання систем лінійних рівнянь в Excel можуть бути корисними для викладачів вищих навчальних закладів та вчителів шкіл з поглибленим вивченням хімії.ℼ佄呃偙⁅呈䱍倠䉕䥌⁃ⴢ⼯㍗⽃䐯䑔䠠䵔⁌⸴‰牔湡楳楴湯污⼯久㸢㰊呈䱍ਾ䠼䅅㹄ऊ䴼呅⁁呈偔䔭啑噉∽佃呎久ⵔ奔䕐•佃呎久㵔琢硥⽴瑨汭※档牡敳㵴瑵ⵦ∸ਾ㰉䥔䱔㹅⼼䥔䱔㹅ऊ䴼呅⁁䅎䕍∽䕇䕎䅒佔≒䌠乏䕔呎∽楌牢佥晦捩⁥⸴⸱⸳′䰨湩硵∩ਾ㰉䕍䅔丠䵁㵅䌢䕒呁䑅•佃呎久㵔〢〻㸢ऊ䴼呅⁁䅎䕍∽䡃乁䕇≄䌠乏䕔呎∽㬰∰ਾ㰉呓䱙⁅奔䕐∽整瑸振獳㸢ऊℼⴭऊ䀉慰敧笠洠牡楧㩮㈠浣素ऊ倉笠洠牡楧⵮潢瑴浯›⸰ㄲ浣※楤敲瑣潩㩮氠牴※潣潬㩲⌠〰〰〰※整瑸愭楬湧›番瑳晩㭹眠摩睯㩳〠※牯桰湡㩳〠素ऊ倉眮獥整湲笠猠ⵯ慬杮慵敧›歵唭⁁੽उ⹐瑣⁬⁻潳氭湡畧条㩥愠⵲䅓素ऊ䄉氺湩⁫⁻潣潬㩲⌠〰〰晦素ऊⴭਾ㰉匯奔䕌ਾ⼼䕈䑁ਾ䈼䑏⁙䅌䝎∽畲刭≕吠塅㵔⌢〰〰〰•䥌䭎∽〣〰昰≦䐠剉∽呌≒ਾ值䰠乁㵇產⵫䅕•䱃十㵓眢獥整湲•呓䱙㵅琢硥⵴湩敤瑮›⸰挷㭭洠牡楧⵮潢瑴浯›挰≭ਾ黐듐뷐雑铑軑퀠₷뻐臑뻐뇐믐룐닐뻐臑苑뗐말턠톅킖톼톖ₗꗐꗐ蛐턠톁킂킾톻톖톂톂એ铑턠톗ₗ雑뷐蓑뻐胑볐냐苑룐럐냐蛑雑近턠킂₰볐냐苑뗐볐냐苑룐럐냐蛑雑近ਬ뿐胑룐턠톆킌킾톼₃藑雑볐雑近퀠킲톸킅킾킴톸톂₌뷐냐퀠킽킾킲킸₹胑雑닐뗐뷐賑턊킀킾킷킲톸킂톺₃럐퀠킽킾킲킸킼₸듐믐近퀠킽통ₗ볐뻐뛐믐룐닐뻐臑苑近볐룐ਮ釐냐돐냐苑뻐퀠킰톲킂톾톀킖₲뿐胑룐듐雑믐近軑苑賑턠킃킲킰톳₃볐雑臑蛑軑퀊킼톰킂킵킼톰킂킸킺₸苑냐턠킖톽킄톾킀킼톰킂킸킺₸닐턠톁톃킇톰킁톽킖હ藑雑볐雑韑›鷐☮扮灳퀻⺔渦獢㭰鋐룐裑뷐룐닐뗐蛑賑뫐냐ਬ鋐☮扮灳퀻⺡渦獢㭰鋐룐裑뷐룐닐뗐蛑賑뫐냐‬ꋐ☮扮灳퀻⺜渦獢㭰铐뗐胑뫐냐蟑ਬꇐ☮扮灳퀻⺐渦獢㭰鷐뗐듐雑믐賑뫐뻐‬鳐☮扮灳퀻⺄渦獢㭰ꇐ뻐믐뻐닐말뻐닐ਬ鳐☮扮灳퀻⺜渦獢㭰ꇐ뻐믐뻐닐말뻐닐‬郐☮扮灳퀻⺐渦獢㭰Ꟑ뗐胑뷐近뫐ਬ雐☮扮灳퀻⺐渦獢㭰Ꟑ뗐胑뷐近뫐‬郐☮扮灳퀻⺐渦獢㭰꿐뫐룐볐뻐닐룐蟑턠킂ર雑뷐裑雑㰮倯ਾ值䰠乁㵇產⵫䅕•䱃十㵓眢獥整湲•呓䱙㵅琢硥⵴湩敤瑮›⸰挷㭭洠牡楧⵮潢瑴浯›挰≭ਾ韐냐돐냐믐賑뷐뻐닐雑듐뻐볐뻐‬觑뻐퀠₲菑볐뻐닐냐藑퀠킲톸킉톸અ뷐냐닐蟑냐믐賑뷐룐藑퀠킷킰킺킻킰톴킖₲苑냐턠킁통킀킵킴톽톖₅裑뫐雑믐퀊톴킃킶₵돐뻐臑苑胑뻐턠톁킂톾톗톂₌뿐룐苑냐뷐뷐近퀠톿킀₾胑뻐뇐뻐苑菑퀊킽₰뫐뻐볐뿐胢톙톎킂통킀톰₅苑雑믐賑뫐룐퀠₷믐雑蛑뗐뷐럐雑말뷐룐볐룐퀊톿킀킾톳킀킰킼킰킼Ⲹ턠킉₾뷐냐퀠킴킰킽킾톼₃뗐苑냐뿐雑퀠킽₵럐냐닐뛐듐룐퀊킼킾킶킻킸킲⺾퀠ₒ苑뻐말퀠킶₵蟑냐臑퀠킺킾킼馀軑苑뗐胑룐퀠લ뷐냐닐蟑냐믐賑뷐룐藑퀠킷킰킺킻킰킴톰₅苑냐퀠₲듐뻐볐냐裑뷐雑藑턠킃킼킾킲톰અ뷐냐믐냐돐뻐듐뛐뗐뷐雑‬닐퀠톾킁킽킾킲킽킾톼ⲃ퀠킽₰뻐뿐뗐胑냐蛑雑말뷐菑턊킁톸톁킂킵톼₃楗摮睯⁳럐퀠킿킰킺통킂킾₼뿐胑뻐돐胑냐볐䴠捩潲潳瑦伊晦捩⹥퀠킢킰킱킻톸킇킽킸₹뿐胑뻐蛑뗐臑뻐胑䔠捸汥퀠톲킅킾킴톸톂₌듐뻐턊톆킌킾킳₾뿐냐뫐뗐苑菑퀠톿킀킾톳킀킰Ⲽ퀠킼톰ₔ닐뗐믐룐뫐雑퀊킾톱킇톸킁톻킎킲킰톻킌톽ₖ볐뻐뛐믐룐닐뻐臑苑雑‬럐胑菑蟑뷐룐말턠킂ર뿐胑뻐臑苑룐말퀠₲뫐뻐胑룐臑苑菑닐냐뷐뷐雑‬볐냐铑턠킀톾톁킖톹톁킌킺킸હ雑뷐苑뗐胑蓑뗐말臑‬苑뻐볐菑턠킀톰톆킖킾킽킰톻킌킽₾볐냐苑뗐볐냐苑룐蟑뷐雑퀊킼통킂킾킴₸닐턠톅킖톼톖ₗ럐듐雑말臑뷐軑닐냐苑룐퀠₲硅散⹬퀠토킏઴냐닐苑뻐胑雑닐퀠톿킀톸킁톲톏킂킸킻₸臑닐뻐韑턠킀킾킱톾킂સ볐냐苑뗐볐냐苑룐蟑뷐뻐볐菑퀠킼킾킴킵톻킎킲킰킽톽ₖ닐䔠捸汥嬠㬱㌠※崶ਮ鿐胑뻐퀠킿킾톿킃톻톏킀톽톖톁톂₌蛑雑铑韑퀠톿킀킾톳킀킰킼₸돐뻐닐뻐胑룐苑賑턊ₖ苑뻐말턠킄킰톺Ⲃ턠킉₾苑냐뇐믐룐蟑뷐룐말퀠톿킀톾킆통킁톾₀硅散੬냐뫐苑룐닐뷐뻐턠킀킾킷킳톻킏킴톰톔톂톌톁₏苑냐퀠킲킸킺톾킀톸톁킂킾톲톃톔톂톌톁એ닐턠킁톾톆킖킰톻킌킽톸₅볐뗐胑뗐뛐냐藑㰮倯ਾ值䰠乁㵇產⵫䅕•䱃十㵓眢獥整湲•呓䱙㵅琢硥⵴湩敤瑮›⸰挷㭭洠牡楧⵮潢瑴浯›挰≭ਾ䈼퀾킜통킂톾㲎䈯‾듐냐뷐뻐韑턠킀킾킱톾킂₸铑퀠킿킾킴킰킽톽₏뿐胑룐뫐믐냐듐雑닐턊톅킖톼톖킇킽톸₅臑룐臑苑뗐볐턠킂₰뿐胑뻐蛑뗐臑雑닐‬近뫐雑퀊킾킿톸톁톃톎톂톌톁₏럐냐퀠킴킾킿킾킼킾킳톾₎臑룐臑苑뗐볐룐퀠톻킖톽킖킹킽톸અ냐믐돐뗐뇐胑냐韑蟑뷐룐藑턠톀킖킲톽킏톽₌퀨킡킛킐⦠‬雑퀠킰킻킳톾킀톸킂톼킖લ胑뻐럐닐胢톙킏톷킃킲킰킽톽₏ꇐ鯐郐ꃐ퀠₲硅散⹬⼼㹐㰊⁐䅌䝎∽歵唭≁䌠䅌卓∽敷瑳牥≮匠奔䕌∽整瑸椭摮湥㩴〠㜮浣※慭杲湩戭瑯潴㩭〠浣㸢퀊톑킖톻톌톈톖톁톂₌蓑雑럐룐蟑뷐룐藑‬蓑雑럐룐뫐뻐턭톅킖톼톖킇킽톸ⲅ턊톅킖톼톖킇킽톸₅苑냐턠킂통킅킽킾킻킾톳톖킇킽톸₅뿐胑뻐蛑뗐臑雑닐퀊킾킿톸톁톃톎톂톌톁₏ꇐ鯐郐ꃐ‮鷐냐닐뗐듐뗐뷐뻐퀠톿킀킸킺킻킰킴સ藑雑볐雑蟑뷐룐藑턠킁톸톁킂킵₼苑냐턠톅킖톼톖킇킽톸₅뿐胑뻐蛑뗐臑雑닐ਬ볐냐苑뗐볐냐苑룐蟑뷐룐볐룐퀠킼킾킴킵톻킏킼₸近뫐룐藑턠ₔꇐ鯐郐ꃐ㰮倯ਾ值䰠乁㵇產⵫䅕•䱃十㵓眢獥整湲•呓䱙㵅琢硥⵴湩敤瑮›⸰挷㭭洠牡楧⵮潢瑴浯›挰≭ਾ唼퀾킝킵톾킀킳킰톽톖킇킽₰藑雑볐雑近㰮唯㰾㹉퀠킠킾톷킇킸킽₸苑냐턠톗અ뿐胑룐돐뻐苑菑닐냐뷐뷐近퀠₷닐룐藑雑듐뷐뻐돐뻐턠킀킾톷킇킸톽₃苑냐퀊톺킀톸톁킂킰톻톖