Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 26.10.2015, 20:58   #1 (permalink)
marijane
Новичок
 
Регистрация: 26.10.2015
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Решить систему методом Ньютона с точностью e= 0,00001

Решить систему методом Ньютона с точностью e= 0,00001.

tg(xy)=x^2
0.5*x^2+2*y^2=1


Написать программу на паскале
Ответы в маткаде были такие.
x=0.663
y=0.625
marijane вне форума   Ответить с цитированием

Старый 26.10.2015, 20:58
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Найдены схожие обсуждения, рекомендую ознакомиться

Решить уравнение методом половинного деления
Решить систему методом Ньютона
Решить систему дифференциальных уравнений
Решить систему линейных уравнений методом Зейделя

Старый 27.10.2015, 11:36   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Ну как не откликнуться на столь изысканно выраженную просьбу о помощи! Любезный(ая) marijane, и Вам желаю здравствовать. Я не слишком Вас обеспокою, назойливо представив решение Вашей задачки? Нет? Тогда, может быть, снизойдёте? Только, умоляю, не гневайтесь!
Код:
Const
 x0=0.6;
 y0=0.6;
 Eps=0.00001;

Type
 Matr=Array[1..2,1..2] of Real;

Var
 x,y,dx,dy,Det_0,Det_X,Det_Y:Real;
 M:Matr;

Function Tan(z:real):Real;
begin
 Tan:=Sin(z)/Cos(z);
end;

Function Determ(D:Matr):Real;
begin
 Determ:=D[1,1]*D[2,2]-D[1,2]*D[2,1];
end;

Function f1(z1,z2:real):Real;
begin
 f1:=Tan(z1*z2)-Sqr(z1);
end;

Function f2(z1,z2:real):Real;
begin
 f2:=0.5*Sqr(z1)+2.0*Sqr(z2)-1;
end;

Function Der_x_f1(z1,z2:real):Real;
begin
  Der_x_f1:=z2/Sqr(Cos(z1*z2))-2.0*z1;
end;

Function Der_y_f1(z1,z2:real):Real;
begin
  Der_y_f1:=z1/Sqr(Cos(z1*z2));
end;

Function Der_x_f2(z1,z2:real):Real;
begin
 Der_x_f2:=z1;
end;

Function Der_y_f2(z1,z2:real):Real;
begin
 Der_y_f2:=4.0*z2;
end;

Begin
 x:=x0;
 y:=y0;
 Repeat
  M[1,1]:=Der_x_f1(x,y);
  M[1,2]:=Der_y_f1(x,y);
  M[2,1]:=Der_x_f2(x,y);
  M[2,2]:=Der_y_f2(x,y);
  Det_0:=Determ(M);
  M[1,1]:=-f1(x,y);
  M[2,1]:=-f2(x,y);
  Det_X:=Determ(M);
  M[1,1]:=Der_x_f1(x,y);
  M[1,2]:=-f1(x,y);
  M[2,1]:=Der_x_f2(x,y);
  M[2,2]:=-f2(x,y);
  Det_Y:=Determ(M);
  dx:=Det_X/Det_0;
  dy:=Det_Y/Det_0;
  x:=x+dx;
  y:=y+dy;
 Until (Abs(dx)<Eps) and (Abs(dy)<Eps);
 Writeln('x = ',x:0:6);
 Writeln('y = ',y:0:6);
 Readln
End.
Результат расчета:
x = 0.662932
y = 0.624604
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




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

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.