Система нелинейных уравнений - PascalABC.NET
Формулировка задачи:
помогите пожалуйста сделать цикл не параметрический, а с предусловием или постусловием...
чтобы было "повторять до тех пор, пока не станет <=eps", а eps:=0.00001
Решение задачи: «Система нелинейных уравнений»
textual
Листинг программы
program newton; uses crt; const eps=0.00001; var x,y,f1,f2,a11,a12,a21,a22,w:real; i:integer; function tan(x,y:real):real; begin f1:=((tan(x*y+0.1))-(x*x)); end; begin x:=-0.2; y:=0.8; while (x<=eps) or (y<=eps) do//for i:=1 to 15 do begin f1:=((tan(x*y+0.1))-(x*x)); f2:=((0.6*x*x)+(2*y*y)-1); a11:=y*(tan((x*y+0.1)*(x*y+0.1))+1-2*x); a12:=x*(tan((x*y+0.1)*(x*y+0.1))+1); a21:=1.2*x; a22:=4*y; w:=((4*y*(y*(tan((x*y+0.1)*(x*y+0.1))+1-2*x)))-(1.2*x*(x*(tan((x*y+0.1)*(x*y+0.1))+1)))); x:=x-(a11*f1+a12*f2)/w; y:=y-(a21*f1+a22*f2)/w; i:=i+1; writeln('N итерации',i,' x= ',x,'y= ',y); end; repeat until keypressed end.
Объяснение кода листинга программы
Список элементов кода с их номерами и описанием:
- program newton; - Объявление программы
- uses crt; - Подключение модуля для работы с консолью
- const eps=0.00001; - Определение константы eps
- var x,y,f1,f2,a11,a12,a21,a22,w:real; - Объявление переменных
- i:integer; - Объявление переменной i типа integer
- function tan(x,y:real):real; - Объявление функции tan
- begin
- f1:=((tan(xy+0.1))-(xx));
- end; - Определение функции tan
- begin
- x:=-0.2; y:=0.8;
- while (x<=eps) or (y<=eps) do//for i:=1 to 15 do
- begin
- f1:=((tan(xy+0.1))-(xx));
- f2:=((0.6xx)+(2yy)-1);
- a11:=y(tan((xy+0.1)(xy+0.1))+1-2*x);
- a12:=x(tan((xy+0.1)(xy+0.1))+1);
- a21:=1.2*x;
- a22:=4*y;
- w:=((4y(y(tan((xy+0.1)(xy+0.1))+1-2x)))-(1.2x(x(tan((xy+0.1)(x*y+0.1))+1))));
- x:=x-(a11f1+a12f2)/w;
- y:=y-(a21f1+a22f2)/w;
- i:=i+1;
- writeln('N итерации',i,' x= ',x,'y= ',y);
- end;
- repeat until keypressed
- end. Код решает систему нелинейных уравнений методом Ньютона. Переменные x и y представляют собой решения системы, а функции tan, a11, a12, a21, a22 и w используются для вычисления значений функций и их производных. Пользователь может вводить данные для начального приближения x и y, а затем программа будет выводить результаты каждой итерации, пока x и y не будут достаточно малы (то есть, пока значение eps не будет достигнуто).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д