Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Решить систему уравнений методом Ньютона, Pascal (http://www.tehnari.ru/f41/t79111/)

ayPinki 07.10.2012 17:18

Решить систему уравнений методом Ньютона, Pascal
 
Вложений: 1
Решить систему методом Ньютона с точностью e= 0,00001.
или дайте хотя бы пример такой же задачи с комментариями, я сам переделаю.

Vladimir_S 07.10.2012 19:28

Вложений: 3
Цитата:

Сообщение от ayPinki (Сообщение 801805)
Решить систему методом Ньютона с точностью e= 0,00001.
или дайте хотя бы пример такой же задачи с комментариями, я сам переделаю.

Вложение 99410 Вложение 99411
Теперь сама программа:
Код:

Const
 e=0.00001;

Var
 x_old, x_new, y, z:real;

Function Fun_1(x:real):real;
begin
 Fun_1:=Sin(x-Sqrt(1-Sqr(x)))-1.5*x;
end;

Function Fun_2(x:real):real;
begin
 Fun_2:=Sin(x+Sqrt(1-Sqr(x)))-1.5*x;
end;

Function Der_1(x:real):real;
begin
 Der_1:=Cos(x-Sqrt(1-Sqr(x)))*(1+x/Sqrt(1-Sqr(x)))-1.5;
end;

Function Der_2(x:real):real;
begin
 Der_2:=Cos(x+Sqrt(1-Sqr(x)))*(1-x/Sqrt(1-Sqr(x)))-1.5;
end;

Begin   
 x_old:=-0.6;
 Repeat
  z:=x_old;
  x_new:=x_old-Fun_1(x_old)/Der_1(x_old);
  x_old:=x_new;
 Until Abs(x_old-z)<e;
 y:=-Sqrt(1-Sqr(x_old));
 Writeln('x1= ',x_old:0:5);
 Writeln('y1= ',y:0:5);
 Writeln('Sin(x1+y1)= ',Sin(x_old+y):0:5);
 Writeln('1.5*x1= ',1.5*x_old:0:5);
 Writeln;
 x_old:=0.6;
 Repeat
  z:=x_old;
  x_new:=x_old-Fun_2(x_old)/Der_2(x_old);
  x_old:=x_new;
 Until Abs(x_old-z)<e;
 y:=Sqrt(1-Sqr(x_old));
 Writeln('x2= ',x_old:0:5);
 Writeln('y2= ',y:0:5);
 Writeln('Sin(x2+y2)= ',Sin(x_old+y):0:5);
 Writeln('1.5*x2= ',1.5*x_old:0:5);
 Readln;
End.

И результат:
Вложение 99412

ayPinki 07.10.2012 20:03

сразу моя программа? спс. будет разбираться.

Vladimir_S 07.10.2012 20:05

Цитата:

Сообщение от ayPinki (Сообщение 801936)
спс. будет разбираться.

Успехов!_____

ayPinki 08.10.2012 20:32

я не понимаю как в маткаде график этот построить...
подскажите

ayPinki 08.10.2012 21:06

вот что получилось, я не могу проверить правильность, т.к. не могу построить маткад
помогите пожалуйста, завтра сдавать
Код:

Const
 e=0.00001;

Var
 x_old, x_new, y, z:real;

Function Fun_1(x:real):real;
begin
 Fun_1:=sin(x+y)-1.5*x;
end;

Function Fun_2(x:real):real;
begin
 Fun_2:=x*x+y*y-1;
end;

Function Der_1(x:real):real;
begin
 Der_1:=cos(x+y)-1.5;
end;

Function Der_2(x:real):real;
begin
 Der_2:=2*x+2*y;
end;

Begin
 x_old:=-0.6;
 Repeat
  z:=x_old;
  x_new:=x_old-Fun_1(x_old)/Der_1(x_old);
  x_old:=x_new;
 Until Abs(x_old-z)<e;
 y:=-Sqrt(1-Sqr(x_old));
 Writeln('x1= ',x_old:0:5);
 Writeln('y1= ',y:0:5);
 Writeln('Sin(x1+y1)= ',Sin(x_old+y):0:5);
 Writeln('1.5*x1= ',1.5*x_old:0:5);
 Writeln;
 x_old:=0.6;
 Repeat
  z:=x_old;
  x_new:=x_old-Fun_2(x_old)/Der_2(x_old);
  x_old:=x_new;
 Until Abs(x_old-z)<e;
 y:=Sqrt(1-Sqr(x_old));
 Writeln('x2= ',x_old:0:5);
 Writeln('y2= ',y:0:5);
 Writeln('Sin(x2+y2)= ',Sin(x_old+y):0:5);
 Writeln('1.5*x2= ',1.5*x_old:0:5);
 Readln;
End.


ayPinki 08.10.2012 21:22

Вложений: 1
не получается "внести" вторую функцию в график , help ((
p/s/ и да, там ... -1...

Vladimir_S 09.10.2012 11:57

Да... посмотрел (извините, вчера не было возможности ответить). И зачем понадобилось функции переделывать? Получилась чушь несусветная и работать это не будет.
Прямо руки опускаются помогать таким умникам. Тогда уж пишите программы сами!

ayPinki 09.10.2012 12:11

ну я мог ничего совсем ненаписать, я буквально вчера познакомился с Маткадом.
в общем сделал я эту задачу, используя частные производные. ждите следующих))


Часовой пояс GMT +4, время: 08:00.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.