robok
i Fortra
n 90/9
5, Apendix 12 Www Fallenslut Sl Applet Morsomtide 20100713 Archive Fallen Slut" href="http://www.barrino.fallenslut.com/feed//sl/applet/morsomtide/20100713/archive" />
robok
i Fortra
n 90/9
5, A
robok
i Fortra
n 90/9
5, ALaborationerna sex till åtta är nytillkomna hösten 2001, delvis beroende på datorbytet vid Matematiska Institutionen vid Linköpings Tekniska Högskola. Däremot användes inte längre laboration ett. Laboration nio kom hösten 2002, laborationerna tio och elva hösten 2004 och laborationerna tolv till femton kom hösten 2005.
När jag nedan skriver kursbiblioteket så är det en hänvisning till att respektive filer bör göras tillgängliga på lämpligt sätt för eleverna, men vid exempelvis självstudier kan man själv skriva in dem på ett lämpligt filbibliotek. Alternativt kan man hämta filerna från vårt kursbibliotek. Aktuella filer finns även bland övriga exempel i katalogen kod. Under UNIX är det lätt att införa symboliska namn på bibliotek, så jag kan kalla kursbiblioteket för $KURSBIB i stället för det fullständiga namnet på biblioteket på vårt lokala system, nämligen /mailocal/lab/numt/TANA70/
Lokalt gäller att både Fortran 77, Fortran 90 och Fortran 95 är tillgängliga på MAI:s Sun arbetsstationer.
Ytterligare information om kursen (även tidigare elevers synpunkter) finns på URL = ~boein/kurser/TANA70
Lämplig miljö erhålles med kommandona
setenv KURSBIB /mailocal/lab/numt/TANA70/ set path=(/mailoca/lab/numt/TANA70 ./ $path) module add workshopeller något enklare
source /mailocal/lab/numt/TANA70/.cshrceller ännu enklare
TANA70setupYtterligare information om Sun Fortran 90, dess system parametrar samt tips om kompilering finns tillgängliga.
Ytterligare 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:
robok
i Fortra
n 90/9
5, A
robok
i Fortra
n 90/9
5, A