Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Prüfungen im Bachelor-Studium (1. - 5. Semester) » algoks » A1
Dies ist eine alte Version des Dokuments!
A1
a) siehe Komplexitaetenliste/Skript
b)
alter loesungsvorschlag: 4.5, 5.5, 6.5, 7.5
neuer loesungsvorschlag: gesucht sind FP mit B = 2 und t = 3 innerhalb [1,8].
FP = M * B^E mit M = [B^(t-1), B^(t)[ hier ist also M = [2^2, 2^3[ = [4,8[ = {4,5,6,7}
E 1 0 -1 -2 M 4 8 4 2 1 5 >8 5 2.5 1.25 6 >8 6 3 1.5 7 >8 7 3.5 1.75
Fuer die restlichen Exponenten (E < -2 && E >1) sind die zugehoerigen FP auszerhalb von [1,8].
A3
a) L = 1_0_0_0_2_1_0_0_0_-2_1_0_0_0_-1_1 U = 3_1_0_0_0_-3_2_0_0_0_3_-2_0_0_0_2
b) x = (4, 1, -3)^T
A4
b)
p0(x) = 2 + (x - 0) * ( 1-2 / 1-0 ) = 2 - x
p1(x) = 1 + (x - 1) * ( -1-1 / 2-1 ) = 1 + (x-1)*(-2) = 1 + (-2x) - (-2) = 3 - 2x
p2(x) = -1 + (x - 2) * (1-(-1) / 4-2 ) = x - 3
p(x) = (2-x) * (3-2x) * (x-3)
[ l(x) = 2-x fuer x in [0,1], 1-2x fuer x in [1,2], x-3 fuer x in [2,4] ](Alt)
c)
Forenloesung erklaert es imo. ganz gut (aber wsh schwer auffindbar)
a0 = 0
a1 = -1
a2 = -0.5
a3 = 5/8
a(x) = -x - 0.5*x*(x-1) + 5/8 *x*(x-1)*(x-2) = (5/8)x^3 - (7/4)x^2 - (13/8)x + 3/4
d) m_1 = -1.5, m_2 = 0
A5
a) P0 = (0;3), P1 = (3:2), P2 = (2.5; 3.5)
b) f_0 = f_1 = 4, f2 = 14/3
c) (2, 2) = (1/2, 1/6, 1/3)
d)
- Gerade tau = 1 geht durch T und liegt parallel zur Gerade RS
- die Menge liegt über Gerade RT und links und rechts von der Gerade ST (links eingeschränkt durch Gerade tau = 1!)
e) M: w00 = w01 = w10 = w11 = 1/4 Q: w00 = 2/5, w10 = 4/15, w01 = 1/5, w11 = 2/15
A7
d)
if(kp.size()==1) return kp; std::vector<vec3> n; for(int i = 0; i < kp.size() - 1; i++){ vec3 tmp = (1.0-u)*kp[i] + u*kp[i+1]; n.pushBack(tmp); } return deCasteljau(n,u)[0];
A7
a) Jacobi: x^1 = (1,1,0,2)
b) GS: x^1 = (1,1,1,2.5)
c) Ja, starke Spaltendiagonaldominanz
d) Ja, schwache Spaltendiagonaldominanz, mind. in 1 Spalte starke Diagonaldominanz
A8
a) I = 42
b) I = 24+2/3
c) ca. 72% bei Trapez und ca. 1% bei Simpson
d) 24+5/12 (was ungefaehr 24 + 4.8 / 12 ist, was gerade die exakte Loesung ist)
A9
b)
float xold = 0; do{ xold=x0; x0 = (float)f(xold)/df(xold): maxIterations--; }while(maxIterations>=0 && epsilon > std::abs(x0-xold)) return x0;
c)
int count = 0; int[] erg = new int[maxIterations + 2]; erg[0] = x0; erg[1] = x1; do{ long zahler = erg[count]*f(erg[count+1]) + erg[count+1] * f(erg[count]) long nenner = f(erg[count+1]) - f(erg[count]) erg[count + 2] = (float)zahler/nenner; }while(count < maxIterations && std::abs(erg[count + 2] - erg[count)>epsilon)) return count+2;