книги / Математическое моделирование кинетики сложных химических реакций. Ч. 1
.pdf3. Программа решения систем нелинейных алгебраических уравнений методом Ньютона-Рафсона
Program Nyuton-Rafson;
Var s,m,i,j,k,r,n: integer; h,e,l:real;
b,f,x:array [1..100] of real; a:array [0..100,0..100] of real;
Label q,q1;
Procedure FX;
Begin
{ f[1]:=sqr(x[1])+sqr(x[2])-1; f[2]:=x[1]-x[2]+1;}
f[1]:=3*x[2]*x[2]+6*x[1]*x[2]-6*x[1]*x[2]*x[4]- 3*x[3]+
6*x[2]*x[2]*exp(-x[4]); f[2]:=6*x[1]+2*x[1]*x[5]+6*x[2]*x[4]*exp(-x[4])-1; f[3]:=-6*x[2]*exp(-x[4])+6*x[1]*x[4]*exp(-x[4])-
6*x[2]*exp(-2*x[4])-2*x[2]*x[5]; f[4]:=-2*x[3]*x[5]+3*exp(-x[4]); f[5]:=x[1]*x[1]-x[2]*x[2]-x[3]*x[3]-1;
{ f[1]:=3*x[1]+1.008*x[2]+x[1]*x[3]-0.5; f[2]:=2.016*x[1]-0.3*x[2]-2*x[2]*x[3]-0.672; f[3]:=x[1]*x[1]-x[2]*x[2]-1;}
{f[1]:=x[1]+3*ln(x[1])/ln(10)-x[2]*x[2]; f[2]:=2*x[1]*x[1]-x[1]*x[2]-5*x[1]+1;} End;{FX}
BEGIN
Write('Введите число уравнений N= '); Readln(n); Write('Задайте точность решения e= ');Readln(e); Write('Задайте число итераций m='); Readln(m); s:=0;
For i:=1 to n do Begin
Write('x[',i,']='); Readln(x[i]); end;
q: FX;
For i:=1 to n do Write('x',i,'=',x[i]:8:4,' '); Writeln;
For i:=1 to n do
221
Write('f',i,'=',f[i]:7:5,' '); Writeln;
For i:=1 to n do b[i]:=-f[i]; For j:=1 to n do
Begin
l:=x[j]; h:=e*abs(l); x[j]:=l+h;
FX;
For i:=1 to n do a[i,j]:=(f[i]+b[i])/h; x[j]:=l;
end;
s:=s+1;
If s=m+1 THEN begin
Writeln('Число итераций s=m'); goto q1;
end;
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;
f[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-f[j]*a[i,j]; f[i]:=h/a[i,i];
end;
r:=0;
For i:=1 to n do begin
x[i]:=x[i]+f[i];
If abs(f[i]/x[i])>e THEN r:=1; end;
If r=1 THEN goto q;
Writeln('Решение системы уравнений');
For i:=1 to n do Writeln('x[',i,']=',x[i]); Writeln('Число итераций s=',s);
q1: readln;
END.
222
Учебное издание
ФЕДОСЕЕВ Анатолий Михайлович, КЕТИКОВ Валентин Николаевич
МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ КИНЕТИКИ СЛОЖНЫХ ХИМИЧЕСКИХ РЕАКЦИЙ
Часть I
Учебное пособие
Редактор и корректор И.А. Мангасарова
Подписано в печать 28.02.11. Формат 60×90/16. Усл. печ. л. 14,0. Тираж 100 экз. Заказ № 33/2011.
Издательство Пермского государственного технического университета.
Адрес: 614990, г. Пермь, Комсомольский пр., 29, к. 113.
Тел. (342) 219-80-33.
223