Wątek przeniesiony 2018-04-23 18:32 z Delphi i Pascal przez furious programming.

Jak rozwiązać układ równań nieliniowych metodą Newton'a?

0

Dzień dobry. Potrzebuję pomocy w napisaniu programu w Pascalu:

F(x,y)= cos( 0.4y+x^2 ) +x^2 + y^2 - 1.6 = 0

G(x,y)= 1,5x^2 - (y^2)/0,36 -1 = 0

dla x0= 1,04 i y0=0,47

0

ty potrzebujesz kogoś, kto to zrobi za ciebie a za takie coś to się płaci więc daj ogłoszenie w odpowiednim dziale wraz z budżetem jaki jesteś w stanie przeznaczyć na to.

0
program Newton;
uses crt;
var
tab:array[1..16] of byte;
eps,x0,y0,x,y,x2,y2,F,G,Fx,Gx,Fy,Gy,A,B,C,D,J,Delx,Dely:Real;
begin
tab[1]:=black;
tab[2]:=blue;
tab[3]:=green;
tab[4]:=cyan;
tab[5]:=red;
tab[6]:=magenta;
tab[7]:=brown;
tab[8]:=lightgray;
tab[9]:=darkgray;
tab[10]:=lightblue;
tab[11]:=lightgreen;
tab[12]:=lightcyan;
tab[13]:=lightred;
tab[14]:=lightmagenta;
tab[15]:=yellow;
tab[16]:=white;
Textbackground(6);
begin
x0:=1.04;
y0:=0.47;
Writeln('Podaj eps');
Readln(eps);
repeat
x:=x0+1;
y:=y0+1;
begin
F:=(cos(0.4*y+x*x))+x*x+(y*y-1.6);
G:=1.5*x*x-y*y/0.36-1;
Fx:=-2*x*sin(0.4*y+x*x)+2*x;
Fy:=-0.4*sin(0.4*y+x*x)+2*y;
Gx:=3*x;
Gy:=2*y/0.36;
J:=Fx*Gy-Gx*Fy;
end;
Delx:=((-F*Gy)+(G*Fy))/J;
Dely:=(-G*Fx+F*Gx)/J;
x2:=x+Delx;
y2:=y+Dely;
until abs((x2-x)/x)<=eps and abs((y2-y)/y)<=eps;
end
end
end
0

Powoli.

  1. Po co Ci zmienna tab?
  2. Dlaczego losowo w kodzie wstawiasz begin .. end?
  3. Formatuj kod odpowiednio - kodu w obecnej postaci nie da się przeanalizować.
0

Dobrze.

  1. Gdy już będę mieć gotowy program, zmienię kolory wyrzucanych przez program słów.
  2. Tam miałam jeszcze funkcję, któą w ostatnim momencie usunęłam. Wiem, że potrzebuję jeszczew co najmniej jednej pętli.
  3. Postaram się aczkolwiek to jest trudne
    :(
0
  1. Wstukujesz ten kod na maszynie do pisania, czy w IDE? Trudne to jest analizowanie Twojego kodu…
0
  1. Dev-Pascal 1.9.2

1 użytkowników online, w tym zalogowanych: 0, gości: 1