t
ran 90
/
95
,
Appendix 12" href="http://www.barrino.fallenslut.com/feed//sl/wordpress/index.php?tag=%E8%A8%AD%E8%A8%88" />
t
ran 90
/
95
,
Appendix 12
t
ran 90
/
95
,
Appendix 12Ytterligare information om DEC Fortran 90, dess system parametrar, tips om kompilering, samt några exempel finns fortfarande tillgängliga.
Pascal-programmet nedan för lösning av en ordinär differentialekvation med Runge-Kuttas metod finns på kursbiblioteket, nämligen på filen lab1.p. Din uppgift är att översätta det från Pascal till Fortran. Utskriften från programmet skall förutom siffervärden innehålla lämplig text. Det erfordras ej men betraktas som en fördel om programmet även ändras till att kunna använda andra startvärden på x och y än de i Pascal-programmet inbyggda, nämligen 1 och 2.
Följande skall lämnas in:
Antal steg Steglängd 1 1 2 0.5 4 0.25 8 0.125Den som inte behärskar Pascal bör i stället leta rätt på en lärobok i numeriska metoder och direkt koda upp ett program för Runge-Kutta i Fortran.
Uppgiften är således att med Runge-Kuttas metod lösa differentialekvationen y'(x) = x2 + sin(xy) med begynnelsevärdet y(1) = 2 fram till x = 2 med ovan angivna steglängder. Formlerna för Runge-Kuttas metod finns bland annat i beskrivningen av laboration 8.
program RK1;
(* Enkelt program i Pascal för Runge-Kuttas metod för
första ordningens differentialekvation.
dy/dx = x^2 + sin(xy)
y(1) = 2 *)
var antal, i : integer;
h, k1, k2, k3, k4, x, y : real;
function f(x,y : real) : real;
begin
f := x*x + sin(x*y)
end;
begin
antal := 1;
while antal > 0 do
begin
x := 1.0;
y := 2.0;
writeln(' Ge antal steg ');
read(antal);
if antal >= 1 then
begin
writeln(' Ge steglängd ');
read(h);
writeln(' x y');
writeln(x, y);
for i := 1 to antal do
begin
k1 := h*f(x,y);
k2 := h*f(x+0.5*h,y+0.5*k1);
k3 := h*f(x+0.5*h,y+0.5*k2);
k4 := h*f(x+h,y+k3);
x := x + h;
y := y + (k1+2*k2+2*k3+k4)/6;
writeln(x, y);
end;
end;
end;
end.
Om Du önskar köra detta Pascal program måste Du först
komplettera den första raden
program RK1;till följande
program RK1(INPUT, OUTPUT);när Du kör på ett DEC UNIX system, men inte på ett Sun Solaris system. Eftersom denna justering redan är gjord i filen på kursbiblioteket måste du ändra tillbaks.
Programmet finns numera även i Fortran 90 fri form som lab2.f90.
Följande skall lämnas in:
t
ran 90
/
95
,
Appendix 12u v v Slut Fallen o Slut Fallen
iWww Fallenslut Sl Wordpress Index Php Tag %E8%A8%AD%E8%A8%88 Fallen Slut Lärobok i For
t
ran 90
/
95
,
Appendix 12r g Slut Slut Slut