[ Principal | Material | Comb. convexa ] |
MAC315 - 2000 |
Combinação convexa de 3 pontos
# [03/04/2000] Exemplo de comb. convexa # # Ojetivo: dados x1, x2, x3 e x, x no casco convexo dos 3 # prim. pontos, encontrar os pesos a1, a2 e a3 tq # x = a1*x1 + a2*x2 + a3*x3 # a1+a2+a3=1 # # Como: tres etapas (completem, so' a primeira esta' feita) # # 1. encontrar xl, interseccao da semi-reta de x3 ate' x # com o segmento [x1,x2] # 2. encontrar o lambda tq lambda*x1 + (1-lambda)*x2 = xl # 3. encontrar os pesos a1, a2 e a3 # # ^ #3 + x1:=(1,1) # | #2 + o x2:=(2,0) h2:=x1-x2 r2(x):=x2+x h2 # | #1 + o o x3:=(3,2) h3:=x3-x r3(y):=x3+y h3 # | # +---+---o---+---+---> x :=(2,1) # 0 1 2 3 # # Encontrar a e b: r2(b)=r3(a) # x3+x*h3 = x2+y*h2 => x3-x2 = y*h2 - x*h3: with(linalg): x1:=vector( [1,1]): x2:=vector( [2,0]): x3:=vector( [3,2]): x :=vector( [2,1]): h2:=evalm(x1-x2): h3:=evalm(x3-x): A := matrix( [[h2[1], -h3[1]],[h2[2],-h3[2]]] ); b := vector( [x3[1]-x2[1],x3[2]-x2[2]]): a:=linsolve(A, b); # esta e' a resposta: a[1]=y, a[2]=x # xl := x2 + a[1]*h2 evalm(x2 + a[1]*h2); [-1 -1] A := [ ] [ 1 -1] a := [1/2, -3/2] [3/2, 1/2]