Система нелинейных уравнений - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

помогите пожалуйста сделать цикл не параметрический, а с предусловием или постусловием...
Листинг программы
  1. program newton;
  2. uses crt;
  3. var x,y,f1,f2,a11,a12,a21,a22,w:real;
  4. i:integer;
  5. function tan(x,y:real):real;
  6. begin
  7. f1:=((tan(x*y+0.1))-(x*x));
  8. end;
  9. begin
  10. x:=-0.2; y:=0.8;
  11. for i:=1 to 15 do
  12. begin
  13. f1:=((tan(x*y+0.1))-(x*x));
  14. f2:=((0.6*x*x)+(2*y*y)-1);
  15. 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);
  16. a21:=1.2*x; a22:=4*y;
  17. 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))));
  18. x:=x-(a11*f1+a12*f2)/w;
  19. y:=y-(a21*f1+a22*f2)/w;
  20. writeln('N итерации',i,' x= ',x,'y= ',y);
  21. end;
  22. repeat until keypressed
  23. end.
чтобы было "повторять до тех пор, пока не станет <=eps", а eps:=0.00001

Решение задачи: «Система нелинейных уравнений»

textual
Листинг программы
  1. program newton;
  2. uses crt;
  3. const eps=0.00001;
  4. var x,y,f1,f2,a11,a12,a21,a22,w:real;
  5. i:integer;
  6. function tan(x,y:real):real;
  7. begin
  8. f1:=((tan(x*y+0.1))-(x*x));
  9. end;
  10. begin
  11. x:=-0.2; y:=0.8;
  12. while (x<=eps) or (y<=eps) do//for i:=1 to 15 do
  13. begin
  14. f1:=((tan(x*y+0.1))-(x*x));
  15. f2:=((0.6*x*x)+(2*y*y)-1);
  16. 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);
  17. a21:=1.2*x; a22:=4*y;
  18. 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))));
  19. x:=x-(a11*f1+a12*f2)/w;
  20. y:=y-(a21*f1+a22*f2)/w;
  21. i:=i+1;
  22. writeln('N итерации',i,' x= ',x,'y= ',y);
  23. end;
  24.  
  25. repeat until keypressed
  26. end.

Объяснение кода листинга программы

Список элементов кода с их номерами и описанием:

  1. program newton; - Объявление программы
  2. uses crt; - Подключение модуля для работы с консолью
  3. const eps=0.00001; - Определение константы eps
  4. var x,y,f1,f2,a11,a12,a21,a22,w:real; - Объявление переменных
  5. i:integer; - Объявление переменной i типа integer
  6. function tan(x,y:real):real; - Объявление функции tan
  7. begin
  8. f1:=((tan(xy+0.1))-(xx));
  9. end; - Определение функции tan
  10. begin
  11. x:=-0.2; y:=0.8;
  12. while (x<=eps) or (y<=eps) do//for i:=1 to 15 do
  13. begin
  14. f1:=((tan(xy+0.1))-(xx));
  15. f2:=((0.6xx)+(2yy)-1);
  16. a11:=y(tan((xy+0.1)(xy+0.1))+1-2*x);
  17. a12:=x(tan((xy+0.1)(xy+0.1))+1);
  18. a21:=1.2*x;
  19. a22:=4*y;
  20. w:=((4y(y(tan((xy+0.1)(xy+0.1))+1-2x)))-(1.2x(x(tan((xy+0.1)(x*y+0.1))+1))));
  21. x:=x-(a11f1+a12f2)/w;
  22. y:=y-(a21f1+a22f2)/w;
  23. i:=i+1;
  24. writeln('N итерации',i,' x= ',x,'y= ',y);
  25. end;
  26. repeat until keypressed
  27. end. Код решает систему нелинейных уравнений методом Ньютона. Переменные x и y представляют собой решения системы, а функции tan, a11, a12, a21, a22 и w используются для вычисления значений функций и их производных. Пользователь может вводить данные для начального приближения x и y, а затем программа будет выводить результаты каждой итерации, пока x и y не будут достаточно малы (то есть, пока значение eps не будет достигнуто).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы