--------------- # Aufgabe 1 # --------------- require(linprog) n = 25 x = runif(n,min=0,max=10) x y = sort(x) y y[(n+1)/2] # ist der Median summary(x) # ist da mit aufgelistet median(x) # nur der Median e = rep(1,n) c = c(e,0,0) Id = diag(e) # nxn Einheitsmatrix Id A1 = cbind( -Id , e , -e ) A2 = cbind( -Id , -e , e ) A = rbind( A1 , A2 ) b = c(x,-x) A b c res = solveLP(c,b,A,maximum=FALSE) names(res) # wir brauchen jetzt das mu = mu1 - mu2 ; mu1 und mu2 # sind die letzten beiden Koordinaten des Loesungsvektors # # y = (lambda_1,...,lambda_n,mu1,mu2) : (-> siehe Loesung9.pdf) y = res$solution y # also: mu1 = y[n+1] mu2 = y[n+2] mu = mu1 - mu2 mu median(x) # passt alles! # wenn der Median negativ ist, wird das mu2 ungleich 0: n = 101 x = runif(n,min=-40,max=10) e = rep(1,n) c = c(e,0,0) Id = diag(e) A1 = cbind( -Id , e , -e ) A2 = cbind( -Id , -e , e ) A = rbind( A1 , A2 ) b = c(x,-x) res = solveLP(c,b,A,maximum=FALSE) y = res$solution y # also: mu1 = y[n+1] mu2 = y[n+2] mu = mu1 - mu2 mu1 mu2 mu median(x)