diff --git a/ws2012/CE/uebungen/5/EiCE_Uebung05.pdf b/ws2012/CE/uebungen/5/EiCE_Uebung05.pdf new file mode 100644 index 00000000..b0ca2423 Binary files /dev/null and b/ws2012/CE/uebungen/5/EiCE_Uebung05.pdf differ diff --git a/ws2012/CE/uebungen/6/A1_Lukas.jpg b/ws2012/CE/uebungen/6/A1_Lukas.jpg new file mode 100644 index 00000000..854fb47b Binary files /dev/null and b/ws2012/CE/uebungen/6/A1_Lukas.jpg differ diff --git a/ws2012/CE/uebungen/6/EiCE_Uebung06.pdf b/ws2012/CE/uebungen/6/EiCE_Uebung06.pdf new file mode 100644 index 00000000..03d377ef Binary files /dev/null and b/ws2012/CE/uebungen/6/EiCE_Uebung06.pdf differ diff --git a/ws2012/CE/uebungen/P1/DEVS/.classpath b/ws2012/CE/uebungen/P1/DEVS/.classpath deleted file mode 100644 index 87279173..00000000 --- a/ws2012/CE/uebungen/P1/DEVS/.classpath +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/ws2012/CE/uebungen/P1/DEVS/.project b/ws2012/CE/uebungen/P1/DEVS/.project deleted file mode 100644 index ee0093a7..00000000 --- a/ws2012/CE/uebungen/P1/DEVS/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - DEVS2 - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/ws2012/CE/uebungen/P1/DEVS/.settings/org.eclipse.jdt.core.prefs b/ws2012/CE/uebungen/P1/DEVS/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index ab76192d..00000000 --- a/ws2012/CE/uebungen/P1/DEVS/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,12 +0,0 @@ -#Thu Oct 11 22:30:59 CEST 2012 -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.5 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.5 diff --git a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DEVS$StopEvent.class b/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DEVS$StopEvent.class deleted file mode 100644 index 4f623403..00000000 Binary files a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DEVS$StopEvent.class and /dev/null differ diff --git a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DEVS.class b/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DEVS.class deleted file mode 100644 index 8d874abe..00000000 Binary files a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DEVS.class and /dev/null differ diff --git a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DEVSMain.class b/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DEVSMain.class deleted file mode 100644 index e43038f2..00000000 Binary files a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DEVSMain.class and /dev/null differ diff --git a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DiscreteEvent.class b/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DiscreteEvent.class deleted file mode 100644 index 59e58b30..00000000 Binary files a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/DiscreteEvent.class and /dev/null differ diff --git a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/ExponentialDistributionWrapper.class b/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/ExponentialDistributionWrapper.class deleted file mode 100644 index 2587ce74..00000000 Binary files a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/ExponentialDistributionWrapper.class and /dev/null differ diff --git a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/MyExponential.class b/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/MyExponential.class deleted file mode 100644 index df2a32c5..00000000 Binary files a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/MyExponential.class and /dev/null differ diff --git a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/MyNormalDist.class b/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/MyNormalDist.class deleted file mode 100644 index 702bc6ed..00000000 Binary files a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/MyNormalDist.class and /dev/null differ diff --git a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/NormalDistributionWrapper.class b/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/NormalDistributionWrapper.class deleted file mode 100644 index b14fdd2e..00000000 Binary files a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/NormalDistributionWrapper.class and /dev/null differ diff --git a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/QueueDEVS.class b/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/QueueDEVS.class deleted file mode 100644 index 9ffcfac6..00000000 Binary files a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/QueueDEVS.class and /dev/null differ diff --git a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/RandomNumberGenerator.class b/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/RandomNumberGenerator.class deleted file mode 100644 index 0ed2314c..00000000 Binary files a/ws2012/CE/uebungen/P1/DEVS/bin/edu/eice2012/RandomNumberGenerator.class and /dev/null differ diff --git a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/DEVS.java b/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/DEVS.java deleted file mode 100644 index 1ca90303..00000000 --- a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/DEVS.java +++ /dev/null @@ -1,117 +0,0 @@ -/** - Vorlesung: Einfuehrung in Computational Engineering - @author Arne Naegel - @date Oktober 2012 - */ - -package edu.eice2012; - - - -import java.util.Iterator; -import java.util.PriorityQueue; - -/* This class implements a time dependent discrete event simulation */ -abstract public class DEVS { - - // GENERAL - protected PriorityQueue queue; - private double time; - private double maxTime; - - // CONSTRUCTOR - public DEVS(){ - queue = new PriorityQueue(2); - time = 0.0; - - - } - - protected class StopEvent extends DiscreteEvent{ - StopEvent(double t) { - super(t,'X'); - } - } - - // USER-DEFINED FUNCTIONS - /** This routine may be implemented */ - public void initialize() { - queue.add(new StopEvent(maxTime)); - } - - /** This routine must be implemented */ - abstract public void eventRoutine(DiscreteEvent ev); - - /** This routine may be implemented */ - public void statistics() {} - - - - // GENERAL FUNCTIONS - /** getter time */ - public double getTime() { - return time; - } - - /** setter time */ - public void setTime(double time) { - this.time = time; - } - - /** getter max time */ - public double getMaxTime() { - return maxTime; - } - - /** setter max time */ - public void setMaxTime(double time) { - this.maxTime = time; - } - - - /** Simulation stops if time limit has been reached*/ - public boolean stopCondition() { - return getTime() > getMaxTime(); - } - - /** Perform simulation run (event loop) */ - public void simulate(){ - - while (true){ - - // get event - DiscreteEvent ev = queue.poll(); - - // abort, if queue is empty - if (ev==null) { - System.out.println("Queue is empty!"); - break; - } - - // update time and treat event - time = ev.getTime(); - eventRoutine(ev); - - // print queue status - System.out.print("{"); - - for (Iterator it = queue.iterator(); it.hasNext();) - { - System.out.print(it.next()+", "); - } - System.out.println("}"); - - // check for stop condition - if (ev instanceof StopEvent) - { - System.out.println("Terminating"); - break; - } - } - } - - - - -} - diff --git a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/DEVSMain.java b/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/DEVSMain.java deleted file mode 100644 index bd33cae0..00000000 --- a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/DEVSMain.java +++ /dev/null @@ -1,50 +0,0 @@ -/** - Vorlesung: Einfuehrung in Computational Engineering - @author Arne Naegel - @date Oktober 2012 - */ - -package edu.eice2012; - -import java.util.Random; - -public class DEVSMain { - - /** execute program */ - public static void main(String args[]){ - - // create random number generator - RandomNumberGenerator randA; - RandomNumberGenerator randD; - double maxtime; - - // ALTERNATIVE 1: results from exercise 1 - // TODO: VAlidierung in Aufgabenteil b) - randA = new MyExponential(); - randD = new MyNormalDist(); - maxtime = 100.0; - - - // ALTERNATIVE 2: 'real' random numbers - // TODO: Experimente in Aufgabenteil d) - /* Random r = new Random(47); - - - randA = new ExponentialDistributionWrapper(r, 5.0); - randD = new ExponentialDistributionWrapper(r, 6.0); - //randD= new NormalDistributionWrapper(r, 6.0, 2.0); - maxtime = 20000; - */ - - DEVS sim = new QueueDEVS(randA, randD); - - sim.setMaxTime(maxtime); - sim.initialize(); - sim.simulate(); - - sim.statistics(); - } - - - -} diff --git a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/DiscreteEvent.java b/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/DiscreteEvent.java deleted file mode 100644 index e1cf2afb..00000000 --- a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/DiscreteEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - Vorlesung: Einfuehrung in Computational Engineering - @author Arne Naegel - @date Oktober 2012 - */ -package edu.eice2012; - -import java.lang.Double; - -public class DiscreteEvent implements Comparable{ - - private double time; - private char type; - - - DiscreteEvent(double t, char c) {time=t; type=c;} - - public double getTime() { - return time; - } - public void setTime(double time) { - this.time = time; - } - - public char getType() { - return type; - } - public void setType(char type) { - this.type = type; - } - - - public String toString(){ - return "Event<"+type+", "+time+">"; - } - - - - public int compareTo(DiscreteEvent e) { - return new Double(time).compareTo(e.getTime()); - - } -} diff --git a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/ExponentialDistributionWrapper.java b/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/ExponentialDistributionWrapper.java deleted file mode 100644 index 58c97ba0..00000000 --- a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/ExponentialDistributionWrapper.java +++ /dev/null @@ -1,32 +0,0 @@ -package edu.eice2012; - -import java.util.Random; - - -/** Generiert Werte einer Exponentialverteilung */ -public class ExponentialDistributionWrapper implements RandomNumberGenerator { - -private static final long serialVersionUID = 1L; - - private double lambda; - private Random r; - private boolean doInteger; - - public ExponentialDistributionWrapper(Random r){ - this (r, 1.0); - } - - public ExponentialDistributionWrapper(Random r, double lambda){ - this.doInteger=false; - this.r = r; - this.lambda=lambda; - } - - - public double nextDoubleValue(){ - double x = r.nextDouble(); - if (doInteger) return (double) Math.round(-Math.log(1.0-x)/lambda); - return -Math.log(1.0-x)/lambda; - } - -} diff --git a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/MyExponential.java b/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/MyExponential.java deleted file mode 100644 index c20b54af..00000000 --- a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/MyExponential.java +++ /dev/null @@ -1,30 +0,0 @@ -/** - Vorlesung: Einfuehrung in Computational Engineering - @author Arne Naegel - @date Oktober 2012 - */ -package edu.eice2012; - -public class MyExponential implements RandomNumberGenerator - -{ - MyExponential() {i=0;} - - public double nextDoubleValue(){ - double val=data[i]; - i=(i+1)%data.length; - return val; - }; - - private int i; - private static final long serialVersionUID = 1L; - private static double data[] = - //{0.57, 2.73, 1.36, 0.72, 0.23, 0.08, 1.21, 0.35, 2.81, 0.19, 0.88}; - {8.76, 16.82, 15.40, 26.72,3.46,27.06,23.52,8.06,0.71,42.03,56.27}; - - - - - - -} diff --git a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/MyNormalDist.java b/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/MyNormalDist.java deleted file mode 100644 index 188374e4..00000000 --- a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/MyNormalDist.java +++ /dev/null @@ -1,25 +0,0 @@ -/** - Vorlesung: Einfuehrung in Computational Engineering - @author Arne Naegel - @date Oktober 2012 - */ -package edu.eice2012; - -public class MyNormalDist implements RandomNumberGenerator - -{ - MyNormalDist() {i=0;} - - public double nextDoubleValue(){ - double val=data[i]; - i=(i+1)%data.length; - return val; - }; - - private int i; - private static final long serialVersionUID = 1L; - private static double data[] = - //{1.89, 2.02, 2.56, 3.84, 2.00, 2.28, 3.32, 3.56, 2.97, 2.67, 2.70}; - {25.30, 20.11, 13.25, 10.68, 16.85, 19.22, 23.96, 28.30, 24.55, 22.70, 17.14}; - -} diff --git a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/NormalDistributionWrapper.java b/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/NormalDistributionWrapper.java deleted file mode 100644 index f4992e2f..00000000 --- a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/NormalDistributionWrapper.java +++ /dev/null @@ -1,35 +0,0 @@ -package edu.eice2012; - - -import java.util.Random; - - -/** Generiert Werte einer Normalverteilung */ -public class NormalDistributionWrapper implements RandomNumberGenerator{ - - private static final long serialVersionUID = 1L; - - private double mu; - private double sigma; - private Random r; - private boolean doInteger; // returning integers or doubles? - - - public NormalDistributionWrapper(Random r){ - this(r, 0.0, 1.0); - } - - public NormalDistributionWrapper(Random r, double mu, double sigma){ - this.r = r; - this.mu=mu; - this.sigma=sigma; - this.doInteger=false; - } - - public double nextDoubleValue(){ - double x = r.nextGaussian(); - if (doInteger) return (double) Math.round( mu +x*sigma); - return mu +x*sigma; - } - -} diff --git a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/QueueDEVS.java b/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/QueueDEVS.java deleted file mode 100644 index 3d73ad50..00000000 --- a/ws2012/CE/uebungen/P1/DEVS/src/edu/eice2012/QueueDEVS.java +++ /dev/null @@ -1,277 +0,0 @@ -/** - Vorlesung: Einfuehrung in Computational Engineering - @author Arne Naegel - @date Oktober 2012 - */ - -package edu.eice2012; - -import java.util.AbstractList; -import java.util.Vector; - - -public class QueueDEVS extends DEVS { - - // problem specific variables - private int server; // current machine state (0=idle) - private int buffer; // current buffer length - private int maxServers; - - // random number generators - private RandomNumberGenerator randA; - private RandomNumberGenerator randD; - - // statistics (per event) - private Vector eventTimes; // time stamp when event is triggered - private Vector eventTypes; // type of event - private Vector serverList; // #items processed by server(s) - private Vector bufferList; // #items in buffer - private Vector loadList; // #items in system - - - - /** Constructor */ - public QueueDEVS(RandomNumberGenerator randA, RandomNumberGenerator randD) - { - // attributes - buffer = 0; - server = 0; - maxServers = 1; - - // random numbers - this.randA = randA; - this.randD = randD; - - - // statistics (per event) - eventTimes = new Vector(); - eventTypes = new Vector(); - bufferList = new Vector(); - serverList = new Vector(); - loadList = new Vector(); - - // first entries - eventTimes.add(0.0); - eventTypes.add('I'); - bufferList.add(0.0); - serverList.add(0.0); - loadList.add(0.0); - } - - public void setRandomArrival(RandomNumberGenerator rand) - { - this.randA = rand; - } - - public void setRandomDeparture(RandomNumberGenerator rand) - { - this.randD = rand; - } - - - - /** status for server */ - public boolean allBusy() - { - return (server == maxServers); - } - - /** status for server */ - public boolean isIdle() - { - return (server==0); - } - - - public int getServerState() { - return this.server; - } - - - public void initialize() - { - super.initialize(); - server = 0; - buffer = 0; - queue.add(new DiscreteEvent(0.5, 'A')); - - /* - * ALTERNATIVE: first arrival is random - double offset = randA.nextDoubleValue(); - queue.add(new DiscreteEvent((offset), 'A')); - */ - } - - - /** called for every event */ - public void eventRoutine(DiscreteEvent e) - { - - char type = e.getType(); - switch (type) - { - case 'A': arrivalRoutine(e); break; - case 'D': departureRoutine(e); break; - - default: System.out.println("Unknown event type -> Aborting!!!"); - }; - - - // print stats - System.out.println("Event: "+e.getTime() + "|"+type+ "|"+ buffer+ "|"+ getServerState()); - - // record event statistics (example!) - eventTimes.add(e.getTime()); // time stamp - eventTypes.add(e.getType()); // type (A/D/X) - int serverState = getServerState(); - serverList.add((double) serverState); // server state - bufferList.add((double) buffer); // buffer state - - int nItems = buffer + serverState; - loadList.add((double) nItems); // system load - }; - - /** TODO: called upon arrival */ - protected void arrivalRoutine (DiscreteEvent e) - { - - //System.out.println("arrivalRoutine muss implementiert werden!"); - - double offset1 = randA.nextDoubleValue(); - queue.add(new DiscreteEvent((getTime()+offset1), 'A')); - - if(allBusy()){ - buffer++; - }else{ - server++; - double offset2 = randD.nextDoubleValue(); - queue.add(new DiscreteEvent(getTime()+offset2, 'D')); - } - - - - - } - - - /** TODO: called upon departure */ - protected void departureRoutine (DiscreteEvent e) - { - //System.out.println("departureRoutine muss implementiert werden!"); - - if(buffer == 0){ - server = 0; - }else{ - buffer--; - double offset=randD.nextDoubleValue(); - queue.add(new DiscreteEvent(getTime()+offset, 'D')); - } - - } - - - - /** aux: compute \sum v_i */ - static protected double firstMoments(AbstractList values){ - double val=0.0; - int numEvents = values.size()-1; - for (int i=0; i values, AbstractList weights){ - double val=0.0; - int numEvents = values.size()-1; // skip final STOP event! - for (int i=0; i values){ - double val=0.0; - int numEvents = values.size()-1; // skip final STOP event! - for (int i=0; i values, AbstractList weights){ - double val=0.0; - int numEvents = values.size()-1; // skip final STOP event! - for (int i=0; i, AbstractList) - * */ - static protected double[] aggregateTimesPerLoad(AbstractList times, AbstractList loads) - { - - int numEvents = loads.size()-1; // skip final STOP event! - - // a) find maximum load - int maxLoad = 0; - for (int i=0; i maxLoad) maxLoad = load; - } - - // b) compute sum of values and assign - double val[] = new double[maxLoad+1]; - for (int i=0; i 1.0 +n = n - 1; +eps = 2^(-n); + + +end + diff --git a/ws2012/CE/uebungen/P2/P2Matlab/loesung.txt b/ws2012/CE/uebungen/P2/P2Matlab/loesung.txt new file mode 100644 index 00000000..87fd9b12 --- /dev/null +++ b/ws2012/CE/uebungen/P2/P2Matlab/loesung.txt @@ -0,0 +1,121 @@ +Gruppe: + - Michael Scholz (Matr.# 1576630) + - David Kaufmann (Matr.# 1481864) + - Dennis Werner (Matr.# 1513509) + + +Ausgabe der main-Funktion in Matlab: + + +1. Aufruf von main(1) liefert: +============================== + +>> main(1) + +e = + + 2.2204e-16 + + +p = + + Columns 1 through 4 + + 3.0000e+00 3.1058e+00 3.1326e+00 3.1394e+00 + + Columns 5 through 8 + + 3.1410e+00 3.1415e+00 3.1416e+00 3.1416e+00 + + Columns 9 through 12 + + 3.1416e+00 3.1416e+00 3.1416e+00 3.1416e+00 + + Columns 13 through 16 + + 3.1416e+00 3.1416e+00 3.1416e+00 3.1416e+00 + + Columns 17 through 20 + + 3.1416e+00 3.1416e+00 3.1416e+00 3.1416e+00 + + Columns 21 through 24 + + 3.1417e+00 3.1417e+00 3.1431e+00 3.1598e+00 + + Columns 25 through 28 + + 3.1820e+00 3.3541e+00 4.2426e+00 6.0000e+00 + + Columns 29 through 32 + + 0 0 0 0 + + Columns 33 through 35 + + 0 0 0 + + +====================================================================================================== +====================================================================================================== + + +2. Aufruf von main(2) liefert: +============================== + +>> main(2) + +e = + + 2.2204e-16 + + +p = + + Columns 1 through 4 + + 3.0000e+00 3.1058e+00 3.1326e+00 3.1394e+00 + + Columns 5 through 8 + + 3.1410e+00 3.1415e+00 3.1416e+00 3.1416e+00 + + Columns 9 through 12 + + 3.1416e+00 3.1416e+00 3.1416e+00 3.1416e+00 + + Columns 13 through 16 + + 3.1416e+00 3.1416e+00 3.1416e+00 3.1416e+00 + + Columns 17 through 20 + + 3.1416e+00 3.1416e+00 3.1416e+00 3.1416e+00 + + Columns 21 through 24 + + 3.1416e+00 3.1416e+00 3.1416e+00 3.1416e+00 + + Columns 25 through 28 + + 3.1416e+00 3.1416e+00 3.1416e+00 3.1416e+00 + + Columns 29 through 32 + + 3.1416e+00 3.1416e+00 3.1416e+00 3.1416e+00 + + Columns 33 through 35 + + 3.1416e+00 3.1416e+00 3.1416e+00 + + + +=> Bei den beiden Aufrufen wird sichtbar, dass bei Verfahren 1 die Rundungsfehler in Maschinenarithmetik ab Iteration 21 die Annäherung an PI stark verfälschen. Ab Iteration 29 erhalten wir hier sogar 0. Verfahren 2 hingegen liefert in Maschinenarithmetik eine gute Annäherung an PI. Selbst bei Iteration 100 (hier nicht aufgeführt) erhalten wir den Wert 3.1416e+00 als Näherung für PI. Die Plots in Matlab veranschaulichen die Ergebnisse zudem graphisch. +Somit sollte also Verfahren 2 für eine Annäherung an PI in Maschinenarithmetik verwendet werden. + + + + + + + diff --git a/ws2012/CE/uebungen/P2/P2Matlab/main.m b/ws2012/CE/uebungen/P2/P2Matlab/main.m new file mode 100644 index 00000000..d21a11d1 --- /dev/null +++ b/ws2012/CE/uebungen/P2/P2Matlab/main.m @@ -0,0 +1,18 @@ +function [ output_args ] = main(type) +%MAIN Spezifiziert einen Unit-Test fuer die 2. Programmieraufgabe + +%Setzt das Format fuer Ausgabe (wissenschaftliche Darstellung) +format shortE + +%Aufruf der Benutzer-definierten Funktionen +%Teilaufgabe a): Finde die kleinste Zahl, so dass (1.0+eps>1.0) +e = findeps() + +%Teilaufgabe b): Berechne eine Approximation an PI +%fuer type =1 oder type=2 +p = approxpi(35, type) + +%Grafische Darstellung +plot(p, '--rs','MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',10) + +end diff --git a/ws2012/CE/uebungen/P2/P2Scilab/approxpi.m b/ws2012/CE/uebungen/P2/P2Scilab/approxpi.m new file mode 100644 index 00000000..00a73ecd --- /dev/null +++ b/ws2012/CE/uebungen/P2/P2Scilab/approxpi.m @@ -0,0 +1,27 @@ +function [ p ] = approxpi(n, type) +//APPROXPI Approximates PI based on edge lengths e + + +//vektor p: +p = zeros(1, n); + +//vektor edges: +edge = zeros(1, n); +edge(1) = 1; + +for i=1:1:n + select type + case 1 + //Behandlung für ersten Fall + edge(i+1) = sqrt(2 - sqrt(4-edge(i)^2)); + case 2 + //Behandlung für zweiten Fall + edge(i+1) = edge(i) / sqrt(2 + sqrt(4-edge(i)^2)); + else + disp('Wrong type!'); + end + p(i) = 3*2^(i-1)*edge(i); +end + +endfunction + diff --git a/ws2012/CE/uebungen/P2/P2Scilab/findeps.m b/ws2012/CE/uebungen/P2/P2Scilab/findeps.m new file mode 100644 index 00000000..6877492e --- /dev/null +++ b/ws2012/CE/uebungen/P2/P2Scilab/findeps.m @@ -0,0 +1,19 @@ +function [eps] = findeps() +//FINDEPS Findet die kleinste Zahl eps>0, so dass 1+eps!= 1 + + +eps = 1; +n = 1; +while (1.0 + eps) > 1.0 + n = n + 1; //n erhöhen + eps = 2^(-n); //eps neu zuweisen +end + +//einen Schritt der while-Schleife ""rückgängig"" machen, um das letzte eps zu +//berechnen, so dass gerade noch gilt (1.0 + eps) > 1.0 +n = n - 1; +eps = 2^(-n); + + +endfunction + diff --git a/ws2012/CE/uebungen/P2/P2Scilab/main.m b/ws2012/CE/uebungen/P2/P2Scilab/main.m new file mode 100644 index 00000000..6ad83079 --- /dev/null +++ b/ws2012/CE/uebungen/P2/P2Scilab/main.m @@ -0,0 +1,18 @@ +function [ output_args ] = main(type) +//MAIN Spezifiziert einen Unit-Test fuer die 2. Programmieraufgabe + +//Setzt das Format fuer Ausgabe (wissenschaftliche Darstellung) +format("e",8) + +//Aufruf der Benutzer-definierten Funktionen +//Teilaufgabe a): Finde die kleinste Zahl, so dass (1.0+eps>1.0) +e = findeps() + +//Teilaufgabe b): Berechne eine Approximation an PI +//fuer type =1 oder type=2 +p = approxpi(35, type) + +//Grafische Darstellung +//plot(p, '--rs','MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',10) + +endfunction diff --git a/ws2012/P2P/Folien/Lecture_1-1.pdf b/ws2012/P2P/Folien/Lecture_1-1.pdf deleted file mode 100644 index 311e1311..00000000 Binary files a/ws2012/P2P/Folien/Lecture_1-1.pdf and /dev/null differ diff --git a/ws2012/P2P/Folien/Lecture_1.pdf b/ws2012/P2P/Folien/Lecture_1.pdf new file mode 100644 index 00000000..a0bd37d7 Binary files /dev/null and b/ws2012/P2P/Folien/Lecture_1.pdf differ diff --git a/ws2012/P2P/Papers/ICC_08_-_Super-Seeding_in_BitTorrent.pdf b/ws2012/P2P/Papers/Bittorent/ICC_08_-_Super-Seeding_in_BitTorrent.pdf similarity index 100% rename from ws2012/P2P/Papers/ICC_08_-_Super-Seeding_in_BitTorrent.pdf rename to ws2012/P2P/Papers/Bittorent/ICC_08_-_Super-Seeding_in_BitTorrent.pdf diff --git a/ws2012/P2P/Papers/IncentivesBuildRobustness_inBitTorrent.pdf b/ws2012/P2P/Papers/Bittorent/IncentivesBuildRobustness_inBitTorrent.pdf similarity index 100% rename from ws2012/P2P/Papers/IncentivesBuildRobustness_inBitTorrent.pdf rename to ws2012/P2P/Papers/Bittorent/IncentivesBuildRobustness_inBitTorrent.pdf diff --git a/ws2012/P2P/Papers/bittorrent.pdf b/ws2012/P2P/Papers/Bittorent/bittorrent.pdf similarity index 99% rename from ws2012/P2P/Papers/bittorrent.pdf rename to ws2012/P2P/Papers/Bittorent/bittorrent.pdf index 8872b1a0..7fe18389 100644 Binary files a/ws2012/P2P/Papers/bittorrent.pdf and b/ws2012/P2P/Papers/Bittorent/bittorrent.pdf differ diff --git a/ws2012/P2P/Papers/Kademlia/109.pdf b/ws2012/P2P/Papers/Kademlia/109.pdf new file mode 100644 index 00000000..201458d2 Binary files /dev/null and b/ws2012/P2P/Papers/Kademlia/109.pdf differ diff --git a/ws2012/P2P/Papers/Kademlia/a23-wang.pdf b/ws2012/P2P/Papers/Kademlia/a23-wang.pdf new file mode 100644 index 00000000..b44a014f Binary files /dev/null and b/ws2012/P2P/Papers/Kademlia/a23-wang.pdf differ diff --git a/ws2012/P2P/Papers/Kademlia/kad_springer.pdf b/ws2012/P2P/Papers/Kademlia/kad_springer.pdf new file mode 100644 index 00000000..54b83ba4 Binary files /dev/null and b/ws2012/P2P/Papers/Kademlia/kad_springer.pdf differ diff --git a/ws2012/P2P/uebungen/6/u3.pdf b/ws2012/P2P/uebungen/6/u3.pdf new file mode 100644 index 00000000..ebfedf13 Binary files /dev/null and b/ws2012/P2P/uebungen/6/u3.pdf differ diff --git a/ws2012/P2P/uebungen/7/exercise7.pdf b/ws2012/P2P/uebungen/7/exercise7.pdf new file mode 100644 index 00000000..ea34cf57 Binary files /dev/null and b/ws2012/P2P/uebungen/7/exercise7.pdf differ diff --git a/ws2012/P2P/uebungen/7/exercise7_solution.odt b/ws2012/P2P/uebungen/7/exercise7_solution.odt new file mode 100644 index 00000000..1753cf99 Binary files /dev/null and b/ws2012/P2P/uebungen/7/exercise7_solution.odt differ diff --git a/ws2012/P2P/uebungen/7/exercise7_solution.pdf b/ws2012/P2P/uebungen/7/exercise7_solution.pdf new file mode 100644 index 00000000..c57c550f Binary files /dev/null and b/ws2012/P2P/uebungen/7/exercise7_solution.pdf differ