|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.05.2009, 20:02 | #1 |
Пользователь
Регистрация: 17.05.2008
Сообщений: 16
|
метод Зейделя на Паскале(график)
Необходимо написать программу: метод Зейделя и метод минимальных невязок на Паскале. НО, самое главное это вывести графики. В этом как раз и заключается проблема моя. Как сделать график для метода Зейделя? Один график есть, нужен еще один. Заранее благодарю всех, кто откликнется и попытается помочь.
uses GRAPH; const n = 2; type TInd=1..n; TF = array[TInd] of real; TMatrix = array[TInd,TInd] of real; Txy = array[0..100] of record x,y: real end; const A: TMatrix = ((2,1), (1,1)); const f: TF = (11,11); const eps = 1; const y0: TF = (0,0); const gx0 = 10; gy0 = 450; l1 = 400; l2 = 250; var Bk: TMatrix; y1,y2,r: TF; i,j: TInd; Nm: real; pt: Txy; m: integer; {formirovanie Bk} procedure pBk; begin for i:=1 to n do for j:=1 to n do if i>=j then Bk[i,j]:=A[i,j] else Bk[i,j]:=0; end; {raschet normi vectora neyazki} procedure norm; begin for i:=1 to n do begin r[i]:=f[i]; for j:=1 to n do r[i]:=r[i]-A[i,j]*y1[j] end; Nm:=0; for i:=1 to n do Nm:=Nm + r[i]*r[i]; Nm:=sqrt(Nm) end; {vichislenie ocherednogo pribligenia} procedure nextY; var Sk, Sk1: real; begin y1:=y0; m:=0; norm; pt[m].x:=m; pt[m].y:=Nm; while (Nm>eps) do begin for i:=1 to n do begin Sk:=0; for j:=1 to (i-1) do Sk:=Sk + A[i,j]*y2[j]; Sk1:=0; for j:=(i+1) to n do Sk1:=Sk1 + A[i,j]*y1[j]; y2[i]:=(f[i]-Sk-Sk1)/A[i,i]; end; norm; y1:=y2; m:=m+1; pt[m].x:=m; pt[m].y:=Nm; end; for i:=1 to n do write(y1[i]:5:5,' '); writeln; writeln('r'); for i:=1 to n do write(r[i],' '); writeln end; {inicializacia grafiki} procedure initgr; var dg,mg: integer; begin dg:= detect; initgraph(dg,mg,'R:\BP\BGI'); end; {postroenie grafika zavisimosti normi nevyazki ot nomera iteracii} procedure rm; var dl1, dl2: real; st: string; begin line(gx0,gy0,gx0,gy0-l2); line(gx0,gy0,gx0+l1,gy0); dl1:=l1/m; for i:=1 to m do line(gx0+round(dl1*i),gy0-2,gx0+round(dl1*i),gy0+2); dl2:=l2/m; for i:=1 to m do line(gx0+2,gy0-round(dl2*i),gx0-2,gy0-round(dl2*i)); {pervyi grafik} setcolor(4); for i:=1 to m do line(gx0+round(dl1*(i-1)),gy0-round(l2*pt[i-1].y/pt[0].y),gx0+round(dl1*i),gy0-round(l2*pt[i].y/pt[0].y)); str(m,st); st:='m = ' +st; outtextxy(gx0+l1+10, gy0+10,st); readln; {vtoroi grafik} setcolor(5); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? end; {osnovnaya programma} begin pBk; initgr; writeln('y'); nextY; readln; rm; readln; cleardevice; closegraph end. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Графика в паскале (построить график функции) | matic | Помощь студентам | 4 | 26.11.2012 17:02 |
Как нарисовать на Tchart график функции, заданной таблично(используя метод наименьших квадратов) | Legion2008 | Мультимедиа в Delphi | 0 | 11.05.2009 16:00 |
как построить график в паскале? | Vitas1234 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 11.06.2008 16:53 |
Построить график в Паскале. | LEX.darnica | Помощь студентам | 3 | 28.11.2007 18:11 |