26.10.2015, 20:58 | #1 (permalink) |
Новичок
Регистрация: 26.10.2015
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Решить систему методом Ньютона с точностью e= 0,00001
tg(xy)=x^2 0.5*x^2+2*y^2=1 Написать программу на паскале Ответы в маткаде были такие. x=0.663 y=0.625 |
26.10.2015, 20:58 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Найдены схожие обсуждения, рекомендую ознакомиться Решить уравнение методом половинного деления Решить систему методом Ньютона Решить систему дифференциальных уравнений Решить систему линейных уравнений методом Зейделя |
27.10.2015, 11:36 | #2 (permalink) |
Специалист
Регистрация: 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 |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|