2017-09-15 8 views
1

Je me demande s'il y a un moyen simple de tracer les deux équations en Rtracé en R avec des valeurs absolues

x et y sont des variables suivantes et le reste sont des paramètres connus.

enter image description here

enter image description here

lorsque X est un vecteur de dimension n alors

enter image description here

enter image description here

+0

Que voulez-vous faire? Voulez-vous trouver '(x, y)' qui résout les équations, ou voulez-vous visualiser dans un graphique? –

+0

J'ai besoin de visualiser le graphique. – Nile

Répondre

1

Ceci est un problème de mathématiques plutôt que la programmation. Un peu de calcul aiderait beaucoup la tâche de programmation.

D'abord, supposons c_1 et c_2 zéro égal pour la simplicité. Nous pouvons facilement récupérer l'échelle d'origine en déplaçant les axes. Ensuite, le calcul de la matrice peut s'écrire comme suit.

enter image description here

Maintenant, nous allons z = ax + by et w = cx + dy. Ensuite, la première équation à mesure de valeur absolue serait écrit:

enter image description here

De cette équation, en supposant que le gamma est positif, vous pouvez visualiser z et w comme ci-dessous.

enter image description here

Ainsi, vous pouvez trouver un ensemble de (z, w) combinaisons qui satisfont à l'exigence et reconvertir (x, y).

La deuxième équation avec la métrique maximale peut être écrit comme suit:

enter image description here

Cela implique que (z, w) peut être visualisé comme ci-dessous.

enter image description here

Encore une fois, vous pouvez générer ces (z, w) paires et reconvertir en (x, y).

Voici un code R pour la première équation. Vous pouvez essayer le second par vous-même.

library(ggplot2) 

# A is (a,b; c,d) matrix 
A <- matrix(c(1, 2, -1, 0), 
      nrow=2, ncol=2, byrow=TRUE) 
gamma <- 1 
c1 <- 0.2 
c2 <- 0.1 

############################### 
z <- seq(-gamma, gamma, length=100) 
w <- abs(gamma - abs(z)) 

z <- c(z, z) 
w <- c(w, -w) 

qplot(z, w) + coord_fixed() 

# computing back (x,y) from (z,w) 
z_mat <- rbind(z, w) 
x_mat <- solve(A, z_mat) 
x <- x_mat[1,] + c1 
y <- x_mat[2,] + c2 

qplot(x, y) + coord_fixed() 
################################