Jacob Christiansen, Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense

Relaterede dokumenter
University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

Eksempel: Skat i år 2000

DM01 DM Obl. Afl. Jacob Christiansen, , D12, Elias 18/ Side 1 af 11

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4

DM01 DM Obl. Afl. Jacob Christiansen, , D12, Elias 13/ Side 1 af 7

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11

DM502. Peter Schneider-Kamp

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 6

Tilfældige tal. Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge.

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java

BRP Kursusintroduktion og Java-oversigt

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer

Martin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox

Prioritetskøer ved»heap«, simulering

DM507 Algoritmer og datastrukturer

Løsning af møntproblemet

Tabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations

DM507 Algoritmer og datastrukturer

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.

Virkefeltsregler i Java

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

Civilingeniøreksamen januar Skriftelig prøve den 12. januar 2001 Kursusnummer 49104

Hashing og hashtabeller

dintprog Manual Revision: 1241 August 24, 2010 I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4

Skriftlig eksamen i Datalogi

DM13-1. Obligatoriske Opgave - Kredsløbs design

Grundlæggende Programmering ITU, Efterår Skriftlig eksamen i Grundlæggende Programmering

Programmering. Udvidet Programmering. Kurserne. Kurset: programmering i sproget Java. Lærerne: Morten Larsen og Peter Sestoft

Hashing og hashtabeller

Datalogi OB, Efterår 2002 OH er, forelæsning 3/ forstå datastrukturer og algoritmer (teoretisk forståelse og intuition)

Studiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen

Offset til terminalskærm i Java

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Ugeseddel 4 1. marts - 8. marts

Klasser og objekter. (Afsnit i manualen)

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

Forelæsning Uge 3 Mandag

Videregående programmering i Java

Forelæsning Uge 2 Torsdag

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.

DM507 Algoritmer og datastrukturer

Integer.parseInt(args[0]) konverterer tegnstreng (f.eks. "10") til heltal (10). if (udtryk) else

Tabeller (I) Tabeller

DATALOGI 0GB. Skriftlig eksamen mandag den 7. juni 2004

Forelæsning Uge 2 Torsdag

Kursus navn: Indledende programmering Kursus nr

Abstrakte datatyper C#-version

Forelæsning Uge 2 Torsdag

14.1 Internationale programmer

DM507 Algoritmer og datastrukturer

Tree klassen fra sidste forelæsning

Forelæsning Uge 2 Torsdag

Forelæsning Uge 4 Torsdag

Sekvensafstand DM34 - Eksamensopgave. Jacob Aae Mikkelsen

Rekursion og dynamisk programmering

dintprog Manual Revision: 731 September 30, Introduktion Notation... 3 I Begreber 4 2 Grundbegreber om programmering 4

Det er muligt at chekce følgende opg. i CodeJudge: og

Forelæsning Uge 3 Mandag

DM507 Eksamen Obligatorisk Opgave Rejseplanlægning

DANMARKS TEKNISKE UNIVERSITET

Forelæsning Uge 1 Torsdag

Dag 10 Flertrådet programmering

Fundamentale sprogbegreber

Forelæsning Uge 2 Mandag

DM507 Algoritmer og datastrukturer

Forelæsning 17, tirsdag 2. november 1999 Søgning efter en given værdi i en tabel. Programmering 1999

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.

Datalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning

Forelæsning Uge 3 Mandag

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Forelæsning Uge 3 Mandag

DM507 Algoritmer og datastrukturer

Anvendelse af metoder - Programmering

Skriftlig eksamen i Datalogi

MySQL i Java. Tutorial lavet af Jákup W. Hansen TSU semester 05.januar 2007

Introduktion til ActionScript

Mere om tilfældige tal

Find største element, sæt det på sidste plads. Grundidé i hobsortering. er er

Forelæsning Uge 3 Torsdag

Forelæsning Uge 3 Torsdag

DM507 Algoritmer og datastrukturer

Singleton pattern i Java

Test af It-komponent

Videregående programmering i Java

Forelæsning Uge 4 Torsdag

Forelæsning Uge 2 Mandag

Systemkald DM Obligatoriske opgave. Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/ Afleveret af: Jacob Christiansen,

Opgaver. Oktober 2009

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).

Forelæsning Uge 1 Torsdag

9.8 Kildekode. side 88. Pakke Klasse Sidenummer. fortsætter..

Java Programmering. En bog for begyndere. Skrevet af Henrik Kressner

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004

Videregående Programmering Obligatorisk opgave - 3. semester, efterår 2004

Dag 10 Flertrådet programmering

DATALOGI 0GB. Skriftlig eksamen tirsdag den 6. januar 2004

Syntaks og syntaksgenkendelse, særligt regulære udtryk og tilstandsmaskiner og lidt om anvendelser i bioinformatik

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 10

Transkript:

7 DM -. Obligatoriske Opgave Løsning af ligningssystem vha. fipunktmetoden Jacob Christiansen, 8 moffe@imada.sdu.dk Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense. Opgaven Der skal implementeres et program der udføre 5 iterationer af fipunktmetoden, med startgættet = = =. Ligningssystemet som der skal udføres beregninger på ses nedenfor. X = cos( / /) / X = ( / /) / X = cos( / /) / Desuden skal fejlen efter 5 iterationer beregnes, samt der skal argumenters for konvergensen.. Teori Fipunktmetoden er implementeret, som beskrevet i notehæftet Numerisk Analyse, Edmund Christensen,. Beregning af fejl, er lavet på baggrund af samme notehæfte, sætning., s.. For at argumentere for konvergensen, bruges sætning. fra note hæftet.. Implementation Jeg har valgt at implementere programmet i Java, da jeg mener at Java s medfølgende pakker, har de funktionaliteter som jeg har brug for. Jeg har valgt at lave hele programmet som en klasse, hvor jeg først initialisere alle variabler og de arrays, som jeg skal bruge, alle arrays er af typen double. Herefter beregner jeg alle erne, samtidig med at jeg beregner alle d k og d k / d k-. Herefter udskriver jeg alle beregnede værdier og beregner fejlen efter 5 iterationer. Den værdi af c, som er sat ind ved beregning af fejlen, er manuelt sat ind efter at have kørt programmet. Kildekoden til programmet er vedlagt som bilag.. Fejl Når fejlen beregnes, bruges.. Denne gælder såfremt d k / d k- har en grænseværdi. Vi kan af gode grunde ikke vide hvad denne grænseværdi er, men vi kan komme med et godt gæt, på baggrund af vores beregnede resultater. Ser vi på de beregnede værdier af d k / d k-, ser vi at d k / d k- går mod noget der ikke er ret meget over.78. Så ifølge., skal vi vælge et c, der er større eller lig med d k / d k-. Dette gælder for et. ordensmetode. Her har jeg valgt at sætte c =.79. Når fejlen er beregnet ser vi at fejlen ca. ligger på. decimal på alle -værdier. Udskrift fra programet, med alle beregnede værdier, er vedlagt som bilag.

5. Konvergens For at vise at fipunktmetoden konvergere, er vi nød til at vise Dφ(,, ) a < Så jeg har beregnet Dφ(,, ), den ser ud som følgende. ( ) = cos cos,, Dϕ Herefter indsætter vi vores startgæt, X = X = X = ( ) =,, ϕ D Til sidst tager vi uendeligheds-normen = Her ser vi tydeligt at det opfylder den betingelse, som vi satte op til at starte med. Heraf ser vi at fipunktmetoden konvergere. 6. Konklusion Vi har lavet et program der vha. fipunktmetoden udføre 5 iterationer på et ligningssystem. Herefter har vi beregnet fejlen, og set at den ligger på. decimal. Desuden har vi vist at metoden konvergere.

// Import import java.util.*; import java.io.*; public class fip { // Main public static void main ( String Args []) { //initialisering af arrays og variabler double =, =, =, l, l, l; String space5 = " "; String space = " "; String k, tmp; double[] a = new double[5]; double[] a = new double[5]; double[] a = new double[5]; double[] d = new double[5]; double[] d = new double[5]; double[] d = new double[5]; double[] d = new double[5]; double[] d = new double[5]; double[] d = new double[5]; //beregning af 'er, d'er og d/d'er for ( int i = ; i < 5; i) { l = Math.cos((/)(/))(Math.pow(,)/); a[i] = l; l = Math.((/)-(/))(Math.pow(,)/); a[i] = l; l = Math.cos((/)(/))(Math.pow(,)/); a[i] = l; if ( i > ) { d[i] = a[i] - a[i-]; d[i] = a[i] - a[i-]; d[i] = a[i] - a[i-]; if ( i > ) { d[i] = Math.abs(d[i]) / Math.abs(d[i-]); d[i] = Math.abs(d[i]) / Math.abs(d[i-]); d[i] = Math.abs(d[i]) / Math.abs(d[i-]); = l; = l; = l; //udskrift af beregininger System.out.println( " k k k k " ); System.out.println( " ---- ------------------------- ------------ ------------- ------------------------- " ); for ( int j = ; j < 5; j ) { tmp = Integer.toString(j); k = space.substring(,-tmp.length())tmp;

System.out.print( " " k " "); tmp = Double.toString(a[j]); k = tmpspace5.substring(,5-tmp.length()); System.out.print( " " k); tmp = Double.toString(a[j]); k = tmpspace5.substring(,5-tmp.length()); System.out.print( " " k ); tmp = Double.toString(a[j]); k = tmpspace5.substring(,5-tmp.length()); System.out.print( " " k " "); System.out.println( " k dk dk dk " ); System.out.println( " ---- ------------------------- ---------- --------------- ------------------------- " ); for ( int g = ; g < 5; g ) { tmp = Integer.toString(g); k = space.substring(,-tmp.length())tmp; System.out.print( " " k " "); tmp = Double.toString(d[g]); k = tmpspace5.substring(,5-tmp.length()); System.out.print( " " k ); tmp = Double.toString(d[g]); k = tmpspace5.substring(,5-tmp.length()); System.out.print( " " k ); tmp = Double.toString(d[g]); k = tmpspace5.substring(,5-tmp.length()); System.out.print( " " k " "); System.out.println( "------------------------------------------ -- System.out.println( " k dk / dk- dk / dk- dk / dk- " ); System.out.println( " ---- ------------------------- ------------ ------------- ------------------------- " ); for ( int l = ; l < 5; l ) { tmp = Integer.toString(l); k = space.substring(,-tmp.length())tmp; System.out.print( " " k " "); tmp = Double.toString(d[l]); k = tmpspace5.substring(,5-tmp.length()); System.out.print( " " k); tmp = Double.toString(d[l]); k = tmpspace5.substring(,5-tmp.length()); System.out.print( " " k);

tmp = Double.toString(d[l]); k = tmpspace5.substring(,5-tmp.length()); System.out.print( " " k " "); //beregning af fejlen efter 5 iterationer double e = Math.abs(.79/(-.79)*d[]); double e = Math.abs(.79/(-.79)*d[]); double e = Math.abs(.79/(-.79)*d[]); //udskrift af fejlen System.out.println( "e 5: " e ); System.out.println( "e 5: " e ); System.out.println( "e 5: " e );