Matrice di rotazione per equazione di una retta parametrica
Salve a tutti ragazzi, avrei il seguente problema:
Ho un insieme di vincoli di un problema di programmazione lineare (PL) in R2 di ricerca operativa che rappresentano sul piano cartesiano un quadrato.
Ora vorrei ruotare il problema rispetto l'asse delle x, non sull'origine ma sul l'estremità di un lato, ad esempio nel punto (10,0).
Ho N vincoli di questo tipo $c_1x + c_2y \leq b_1$, il problema può essere semplificato analizzando uno solo ma con vincolo di uguaglianza, quindi supponendo di avere la seguente retta:
$c_1x + c_2y = b_1$
espresso dal vettore $a$ \begin{pmatrix} c_1 & c_2 \end{pmatrix} e scalare: \begin{pmatrix} b1 \end{pmatrix}
non riesco a capire come ottenere il vettore $a'$ e $b$ tale che abbia una rotazione nel punto desiderato (10, 0), perché se applico la matrice di rotazione sull'asse delle x sul vettore $a$ ottengo una rotazione sempre e solo nell'origine ($b_1$ rimane invariato).
Grazie in anticipo a tutti!
Ho un insieme di vincoli di un problema di programmazione lineare (PL) in R2 di ricerca operativa che rappresentano sul piano cartesiano un quadrato.
Ora vorrei ruotare il problema rispetto l'asse delle x, non sull'origine ma sul l'estremità di un lato, ad esempio nel punto (10,0).
Ho N vincoli di questo tipo $c_1x + c_2y \leq b_1$, il problema può essere semplificato analizzando uno solo ma con vincolo di uguaglianza, quindi supponendo di avere la seguente retta:
$c_1x + c_2y = b_1$
espresso dal vettore $a$ \begin{pmatrix} c_1 & c_2 \end{pmatrix} e scalare: \begin{pmatrix} b1 \end{pmatrix}
non riesco a capire come ottenere il vettore $a'$ e $b$ tale che abbia una rotazione nel punto desiderato (10, 0), perché se applico la matrice di rotazione sull'asse delle x sul vettore $a$ ottengo una rotazione sempre e solo nell'origine ($b_1$ rimane invariato).
Grazie in anticipo a tutti!
Risposte
Francamente non sono certo di aver capito ma se chiedi come ruotare un insieme di punti attorno ad un punto diverso dall'origine tipo (10,0) allora fai diventare quel punto l'origine traslando tutti gli altri (ovvero in questo caso sottrando 10 a tutte le ascisse), poi effetti la rotazione e infine ritrasli il tutto al contrario.
Potresti considerare il generico punto $P(lambda)=P+lambdav$ dove $P$ è un punto della retta e $v$ il vettore direttore.
A questo punto considerando un’origine, magari il punto $O=(0,0)$ consideri $OP(t)=OP+tv$
Quindi applichi la rotazione al vettore ruotando ogni punto con la matrice di rotazione
$[(x),(y)](t)=[(costheta,-sintheta),(sintheta,costheta)]*C_B(OP+tv)=[(costheta,-sintheta),(sintheta,costheta)]*C_B(OP)+t*[(costheta,-sintheta),(sintheta,costheta)]*C_B(v)$
dove $C_B(v):=[(v_x),(v_y)]$ indica semplicemente le coordinate del vettore rispetto alla base fissata del riferimento(che suppongo sarà quella canonica)
Quindi in poche parole $[(x),(y)](t)$ indica una generica rotazione della retta di un angolo $theta$
A questo punto considerando un’origine, magari il punto $O=(0,0)$ consideri $OP(t)=OP+tv$
Quindi applichi la rotazione al vettore ruotando ogni punto con la matrice di rotazione
$[(x),(y)](t)=[(costheta,-sintheta),(sintheta,costheta)]*C_B(OP+tv)=[(costheta,-sintheta),(sintheta,costheta)]*C_B(OP)+t*[(costheta,-sintheta),(sintheta,costheta)]*C_B(v)$
dove $C_B(v):=[(v_x),(v_y)]$ indica semplicemente le coordinate del vettore rispetto alla base fissata del riferimento(che suppongo sarà quella canonica)
Quindi in poche parole $[(x),(y)](t)$ indica una generica rotazione della retta di un angolo $theta$
grazi per la risposta!
aggiungo ulteriori dettagli per far capire meglio quello che devo fare:
Io ho un problema di PL del tipo $Ax \leq b$, A è una matrice e b un vettore.
3 vincoli di quella matrice sono del tipo:
$...$
$ x1 \leq 10$
$ x2 \leq 10$
$ -x1 -x2\leq 5 $
$...$
ne ho scritti solo 3 ma ci sono molti di più.
A questo punto io avrò queste 3 rette (vincoli in ricerca operativa) voglio poter ruotare le rette di un angolo rispetto al punto $(10,0)$ che è il punto in cui passa il primo vincolo scritto sull'asse delle x.
Spero che questo possa aiutare a capire meglio il problema
aggiungo ulteriori dettagli per far capire meglio quello che devo fare:
Io ho un problema di PL del tipo $Ax \leq b$, A è una matrice e b un vettore.
3 vincoli di quella matrice sono del tipo:
$...$
$ x1 \leq 10$
$ x2 \leq 10$
$ -x1 -x2\leq 5 $
$...$
ne ho scritti solo 3 ma ci sono molti di più.
A questo punto io avrò queste 3 rette (vincoli in ricerca operativa) voglio poter ruotare le rette di un angolo rispetto al punto $(10,0)$ che è il punto in cui passa il primo vincolo scritto sull'asse delle x.
Spero che questo possa aiutare a capire meglio il problema
Puoi scrivere sommariamente tutti i dati del problema?
"anto_zoolander":
Puoi scrivere sommariamente tutti i dati del problema?
allora prendo questo come esempio:
$Ax \leq b$
$x1 \leq 10$
$x2 \leq 10$
$-x1 \leq 10$
$-x2 \leq 10$
questo è un quadrato, le diseguazioni delimitano l'area del poliedro.
ora se io applico la matrice di rotazione su $A$ ruoto il quadrato attorno all'origine e b rimane invariata.
Quindi presi:
$A =$
\begin{bmatrix}
1 & 0 \\
0 & 1 \\
-1 & 0 \\
0 & -1 \\
\end{bmatrix}
$b =$
\begin{bmatrix}
10 \\
10 \\
10\\
10 \\
\end{bmatrix}
devo ruotare il quadrato in $(10,0)$ invece che nell'origine ed ottenere i nuovi vincoli (matrice A e vettore b) che corrispondono alla rotazione.
La matrice A e il vettore b altro non sono i coefficienti delle retta: $a_11x_1 +a_12x_2 = b_1$
Spero possa essere d'aiuto!
sarebbe quindi da considerare
non puoi porre che sia 'minore od uguale' di $b$ in quanto sono due vettori, no?
$f(x,y)=A*[x,y]^t=[(x),(y),(-x),(-y)]$
non puoi porre che sia 'minore od uguale' di $b$ in quanto sono due vettori, no?