|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.06.2009, 23:32 | #1 |
Пользователь
Регистрация: 20.11.2008
Сообщений: 30
|
Помогите в исправление кривого кода
Помогите в исправление кривого кода для функции f(x,y)=-0,4*(y^2)+0,1/1,2(x^2)
На примере этой программы изменить значения на вышеперечисленые. Методом Эйлера и методом Рунге-Кутта с точностью 0,01 решить дифференциальное уравнение: на интервале [a,b] с заданным начальным условием k(a). Построить график полученной функции на заданном интервале. Решить поставленную задачу с использованием функций и процедур языка Pascal. Решить заданное дифференциальное уравнение с использованием пакета MathCAD. Дана программа для этих значений: f(x,y)=y-2/x a = 0; b = 1; K(a)=1. program kkk; uses graph; type mas1=array [1..101] of real; mas2=array [1..101] of integer; mas3=array [1..20] of real; mas4=array [1..20] of string; var kx,ky:mas1; xx,yy:mas2; KorX,KorY:mas3; tx,ty:mas4; n,p:integer; x0,y0,h,xk,x,y:real; function f(x,y:real):real; begin f:=y-2*x/y; end; {metod Runge-Kutta} procedure RungeKutta (x0,y0:real; n,p:integer; var kx,ky:mas1); var k1,k2,k3,k4,dy:real; i,j,t,ii,q:integer; begin kx[1]:=x0; ky[1]:=y0; x:=x0; y:=y0; for i:=0 to n do begin k1:=h*f(x,y); k2:=h*f(x+h/2,y+k1/2); k3:=h*f(x+h/2,y+k2/2); k4:=h*f(x+h,y+k3); dy:=(k1+2*k2+2*k3+k4)/6; x:=x+h; y:=y+dy; kx[i+1]:=x; ky[i+1]:=y; end; i:=0; t:=n div p; for i:=0 to n do begin if i mod 10=0 then writeln(i:4,'.',' x=',kx[i]:15:14,' y=',ky[i]:15:14); end; writeln('najmite enter'); readln; end; {metod Eylera} procedure Melera (x0,y0,xk,h:real; n,p:integer; var kx,ky:mas1); var i,g,j,t,ii:integer; x,y:real; begin x:=x0; y:=y0; kx[1]:=x0; ky[1]:=y0; for i:=0 to n do begin x:=x+h; {h-tochnost vichisleniya} y:=y+h*f(x,y); ky[i+1]:=y; kx[i+1]:=x; end; i:=0; t:=n div p; {t-chislo vichisleniy} for i:=0 to n do begin if i mod 10=0 then writeln(i:4,'.',' x=',kx[i]:15:14,' y=',ky[i]:15:14); end; writeln('najmi enter'); readln; end; {postroenie grafika} procedure PostroenieGrafika (kx,ky:mas1; n:integer; mx:real); var my,miy,hx,hy:real; j,i,ex,ey,nx,ny:integer; x0,y0,pr,le,g:integer; GraphDriver,GraphMode:integer; begin my:=ky[1]; {my-max znachenie y} miy:=ky[1]; {miy-min znachenie y} {opredelenie max i min znacheniya X i Y} for i:=2 to n do begin if ky[i]<miy then miy:=ky[i]; if ky[i]>my then my:=ky[i]; end; GraphDriver:=Detect; InitGraph(GraphDriver,GraphMode,'') ; ex:=100; {e-dlina edinichnogo otrezka po osi x} ey:=100; {e-dlina edinichnogo otrezka po osi y} le:=40; {le-otstup osi y} pr:=GetMaxY-40; {pr-otstup po osi x} {GetMaxY-max znachenie X} {GetMaxY-max znachenie Y} nx:=(GetmaxX-le) div ex+1; ny:=(GetmaxY-le) div ey; hx:=(ex*nx)/mx; hy:=(ey*ny)/(my-miy); for i:=0 to n do begin xx[i]:=round(hx*kx[i])+le; yy[i]:=GetMaxY-round(hy*(ky[i]-miy))-le; end; setcolor(6); setBkcolor(15); setlinestyle(0,0,3); outtextxy(100,20,'reshenie differencialnogo uravnenia'); for i:=1 to (n-1) do Line(xx[i],yy[i],xx[i+1],yy[i+1]); {sistema koordinat} setcolor(1); setlinestyle(0,0,0); line(le,5,le,GetMaxY-5); line(5,pr,GetMaxX-5,pr); for i:=1 to 20 do begin KorX[i]:=0; KorY[i]:=0; end; KorX[1]:=0; tx[1]:='0'; for i:=2 to nx do begin KorX[i]:=KorX[i-1]+0.17; str(KorX[i]:3:2,tx[i]); end; KorY[1]:=0.75; ty[1]:='0.75'; for i:=2 to ny do begin KorY[i]:=KorY[i-1]+0.05; str(KorY[i]:3:2,ty[i]); end; j:=le; for i:=1 to nx do begin outtextxy(j-10,pr+4,tx[i]); j:=j+ex; end; g:=pr; for i:=1 to ny do begin outtextxy(le-35,g-10,ty[i]); g:=g-ey; end; j:=le; g:=pr; for i:=1 to ny do begin line(le-2,g,le+2,g); g:=g-ey; end; j:=le; for i:=1 to nx do begin line(j,pr-2,j,pr+2); j:=j+ex; end; readln; closeGraph; end; {Osnovnaja programma} begin x0:=0; y0:=1; xk:=1; h:=0.01; n:=round((xk-x0)/h); if n>100 then begin writeln('slishkom malenkij shag'); halt; end; p:=22; Melera(x0,y0,xk,h,n,p,kx,ky); PostroenieGrafika(kx,ky,n,xk); RungeKutta(x0,y0,n,p,kx,ky); PostroenieGrafika(kx,ky,n,xk); end. |
01.06.2009, 23:48 | #2 |
Пользователь
Регистрация: 31.05.2009
Сообщений: 30
|
а модуль graph свой тоже скинь
1)почти блондинка
2)почти программист 3)мало знаю, но, к счастью, обозреваю то, чего не знаю. |
02.06.2009, 11:05 | #3 |
Пользователь
Регистрация: 20.11.2008
Сообщений: 30
|
...
Зачем????????
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Исправление ошибки в MS VS 2005 | NatCa | Помощь студентам | 6 | 03.12.2008 18:23 |
Бинарное исправление звука | DaRKSPiRT | Общие вопросы C/C++ | 2 | 01.09.2008 11:53 |
исправление формы. | sila | Microsoft Office Excel | 15 | 10.07.2008 12:01 |
Исправление ошибок в проге | Juhn | Паскаль, Turbo Pascal, PascalABC.NET | 11 | 16.01.2008 18:17 |
Выдернуть куски кода из html-кода | trafbite | Помощь студентам | 7 | 18.08.2007 13:51 |