Модификация биологически активными системами синтетического полиизопрена
3.2 Выбор метода решения и программы
Математическое описание, данного ХТП представляет собой систему нелинейных алгебраических уравнений, аналитическое решение которой является достаточно сложной задачей. Для Решения такого математического описания применяется метод Ньютона-Рафсона. При этом выбранный метод последовательно применяют к каждому, из уравнений системы с контролем сходимости каждой переменной к корню с заданной погрешностью. Он реализуется следующим алгоритмом:
1. Для всех факторов xi математического описания Fi(x1, x2,…, xn)=0 задают начальные приближения xi0 (x10, x20,…,xn0).
2. На основе исходной системы уравнений формируют матрицу Якоби (Якобиан):
… )
…
………………… (
… )
При этом частные производные находят численно по формуле:
где Hi – малое приращение xi (Hi=ε(xi)),
ε – точность поиска решения (погрешность).
3. Решают следующую систему линейных алгебраических уравнений относительно приращений Δxi:
.=
Решение этой системы дает значения приращений Δxi (Δx1, Δx2, …, Δxn).
4. Вычисляют новые (уточненные) значения Δxi по формуле:
, (3.4)
где m – номер итерации.
5. Для всех Δxi должно выполняться условие ׀Δxi׀≤ε:
Для решения созданного математического описания используется программный пакет Matlab 2011.
IV. Решение задачи
Решение системы нелинейных алгебраических уравнений в среде программирования Matlab осуществляется с помощью процедуры fsolve, входящей в пакет Optimization Toolbox. Процедура fsolve решает уравнения вида
или системы n нелинейных алгебраических уравнений c n неизвестными
.
Для решения системы нелинейных алгебраических уравнений в Matlab создают 2 функции:
· Первая (SystNonlinear) содержит систему уравнений, в ней задают массив значений констант скоростей и начальных концентраций реагентов
· Вторая (SystNonlinear 1) – решает эту систему уравнений для заданного диапазона значений X (где X – время или др. переменная) и выводит решение в командном окне.
В окне WorkSpace создают m-файл, содержащий систему нелинейных алгебраических уравнений . М-файл можно создать из пункта меню File (File ® New ® Function). Концентрации веществ А, В, С и D – CA, CB, CC, CD обозначим как Y1, Y2, Y3, Y4).
1) Функция - SystNonlinear имеет вид:
function F=SystNonlinear(Y,X)
%Система нелинейных алгебраических уравнений
%Содержит пять уравнений с пятью неизвестными Y(1), Y(2), Y(3)
K=[4 0.5 5 0.7] %Массив констант скорости реакций
Y0=[7 0 0 0 0]%Массив исходных значений конц. реагентов
F(1)=Y0(1)-Y(1)+X*((-K(1)*Y(1)+K(2)*Y(2)^2+K(4)*Y(4)*Y(5));
F(2)=Y0(2)-Y(2)+X*(2*K(1)*Y(1)-2*K(2)*Y(2)^2-K(3)*Y(2)+K(4)*Y(4)*Y(5));
F(3)=Y0(3)-Y(3)+X*(2*K(3)*Y(2)-2*K(4)*Y(4)*Y(5));
F(4)=Y0(4)-Y(4)+X*(K(3)*Y(3)- K(4)*Y(4)*Y(5));
F(5)=Y0(5)-Y(5)+X*(2*K(1)*Y(1)-2*K(2)*Y(2)^2).
End
2) Функциия SystNonlinear1имеет вид:
function F=SystNonlinear1(Y,X)
%Решение системы нелинейных алгебр. Уравнений
%для диапазона значений X от 0 до 2 с шагом 0.1
X=0:0.1:2
M=length(X);
for i=1:M
c=X(i)
options=optimset('Display','on'); %Опция выходного отображения
[Y]=fsolve(@SystNonlinear,[1 0 0],options,c)%вызов оптимизатора
Z1(i)=Y(1)%Массив значений Y1 для диапазона значений X
Z2(i)=Y(2)%Массив значений Y2 для диапазона значений X
Z3(i)=Y(3)%Массив значений Y3 для диапазона значений X
Z4(i)=Y(4)%Массив значений Y4 для диапазона значений X
Z5(i)=Y(5)%Массив значений Y5 для диапазона значений X
end
В тексте функцииSystNonlinear1 для решения системы нелинейных алгебраических уравнений использованы следующие параметры вызова процедуры fsolve:
options=optimset('Display','on'); %Опция выходного отображения
[Y] = fsolve(@SystNonlinear,Y0,options,variable) % вызов оптимизатора.
[Y] – означает вывод значений Y при заданном значении X;
fsolve – вызов программы для численного решения системы нелинейных алгебраических уравнений; @SystNonlinear – ссылка на функцию, содержащую систему уравнений, options – используемые опции.
Для получения решения системы уравнений в командном окне набирают команду
>> SystNonlinear1,
Она запускает решение системы алгебраических уравнений, описанных в
тексте функцииSystNonlinear.
Решение системы выводится в конце командного окна в массивах Z1, Z2 Z3 Z4 иZ5, которые содержат массивы значений концентраций реагентов Y1, Y2 Y3 Y4и Y5 (при значениях X=0; 0,1; 0,2; 0,3;…; 2,0).
V. Результаты расчета.
5.1 Таблица результатов расчета
Время, t мин. |
A |
B |
C |
D |
E |
0 |
7 |
0 |
0 |
0 |
0 |
0,1 |
4,44892 |
1,0121 |
1,8222 |
1,6896 |
1,9548 |
0,2 |
3,31674 |
1,2347 |
2,6309 |
2,1199 |
3,1419 |
0,3 |
2,6803 |
1,3442 |
3,0855 |
2,404 |
3,767 |
0,4 |
2,27416 |
1,4101 |
3,3756 |
2,6148 |
4,1364 |
0,5 |
1,99304 |
1,4542 |
3,5764 |
2,7774 |
4,3754 |
0,6 |
1,7871 |
1,4856 |
3,7235 |
2,9062 |
4,5408 |
0,7 |
1,62988 |
1,5092 |
3,8358 |
3,0104 |
4,6612 |
0,8 |
1,50584 |
1,5275 |
3,9244 |
3,0963 |
4,7525 |
0,9 |
1,4056 |
1,5422 |
3,996 |
3,1681 |
4,8239 |
1 |
1,32286 |
1,5542 |
4,0551 |
3,229 |
4,8812 |
1,1 |
1,25356 |
1,5642 |
4,1046 |
3,2812 |
4,9281 |
1,2 |
1,19448 |
1,5726 |
4,1468 |
3,3265 |
4,9671 |
1,3 |
1,14352 |
1,5799 |
4,17 |
3,3662 |
5,0002 |
1,4 |
1,09928 |
1,5861 |
4,2 |
3,4012 |
5,0285 |
1,5 |
1,06036 |
1,5916 |
4,22 |
3,4322 |
5,0529 |
1,6 |
1,02592 |
1,5965 |
4,23 |
3,46 |
5,0743 |
1,7 |
0,99526 |
1,6008 |
4,25 |
3,485 |
5,0932 |
1,8 |
0,96782 |
1,6046 |
4,26 |
3,5076 |
5,1099 |
1,9 |
0,9429 |
1,6081 |
4,28 |
3,5281 |
5,1248 |
2 |
0,9205 |
1,6112 |
4,3 |
3,5469 |
5,1382 |