Due incognite 3 equazioni
-
27-10-2019 - |
Domanda
Ho 3 Eqns e 2 incognite Hb e HBO2, che simile a questa:
BXY = AB * HB + AB * HBO2
Rxy = AR * HB + AR * HBO2
Gxy = AG * HB + AG * HBO2
Ora hanno cercato di utilizzare un metodo di matrice per risolvere le incognite per loro equazioni, che è un dolore nella causa asino quando si converte a forma matriciale ottengo una matrice irregolare perché è 2 incognite e 3 equazioni.
Qualcuno qui sa come risolvere n numero di equazioni con incognite n-1.
Modifica
Grazie per le risposte finora, sono stati grandi.
Per contribuire a rendere questo più chiaro, quello che sto cercando di fare è lavoro fuori la concentrazione di sangue ossigenato e deossigenato ad un dato pixel in un'immagine. così suddette variabili corrispondono alle seguenti.
Rxy Gxy e BXY, verde rosso o blu assorbita alla posizione x, y. (Valore tra 0 - 255)
AR, AG, AB è il coefficiente di assorbimento della luce per geen Rosso e lunghezze d'onda blu per il sangue. (Tuttavia, v'è una possibilità che potrebbe avere definire differenti coefficienti di assorbimento per il sangue ossigenato e deossigenato (come assorbono differenti quantità di luce)).
Hb e HBO2 è la concentrazione di ossigenata e deossigenato sangue. (Questi sono sconosciuti, come sto cercando di mappare i valori RGB per questo)
Tuttavia ho anche notato che i coefficienti per ossigenato e deossigenato sangue sono differenti quindi questo significa l'equazione potrebbe essere il seguente.
BXY = (ABHB * HB) + (ABhbo2 * HBO2)
Rxy = (ARhb * HB) + (ARhbo2 * HBO2)
Gxy = (AGhb * HB) + (AGhbo2 * HBO2)
L'unica differenza in quanto sopra è che i coefficienti sono diversi per sangue ossigenato e deossigenato.
Questo è tutto parte del mio progetto ultimo anno a uni per Computer Science, cercando di fare un po 'di imaging funzionale.
@ Chris non lo stesso si applica se c'è diversi coefficienti, mi spiace per la mancanza di comprensione, matematica non è il mio punto di forza. Sto solo cercando di programmare questo algoritmo.
Soluzione
Quello che probabilmente vuoi è ciò che si chiama la soluzione minimi quadrati (vedere la sezione generale problema) . Per riassumere, non sono garantiti una soluzione esatta a seconda della A
e b
quando si sta cercando di risolvere A*x=b
qui.
Tuttavia, calcolando xLS = inv(A'*A)*A'*b
si otterrà qualcosa che sia il più vicino possibile ad una soluzione (nel senso dei minimi quadrati). Si noti che i mezzi A'
la trasposta di A
. Inoltre nota, se A'*A
non è invertibile allora il sistema di equazioni è rango carente (questo significa che si sono effettivamente meno equazioni di quanto si pensi.)
Se si dispone di:
Bxy = (ABhb * HB) + (ABhbo2 * Hbo2)
Rxy = (ARhb * HB) + (ARhbo2 * Hbo2)
Gxy = (AGhb * HB) + (AGhbo2 * Hbo2)
Quindi:
A = [ ABhb ABhbo2
ARhb ARhbo2
AGhb AGhbo2 ];
x = [HB
Hbo2];
b = [Bxy
Rxy
Gxy];
Altri suggerimenti
Se si dispone di n equazioni e n-1 incognite, che significa che è possibile eliminare una delle equazioni, è irrilevante e dipende gli altri due. Capire quale è più facile da eliminare, sostituto, e poi si è lasciato con (n-1) x (n-1) Matrice
presumere che vi sia una soluzione per tutte e tre le equazioni che è, può essere trovata solo da risolvere due di loro di ottenere i due incognite.
In questo caso, sembra che tutte le equazioni sono più o meno uguali, a parte i coefficienti, quindi non credo che importa quale dei tre si è scelto di escludere. Si potrebbe semplicemente cadere l'equazione Gxy e finiscono con la coppia di 2x2:
BXY = AB * HB + AB * HBO2
Rxy = AR * HB + AR * HBO2
risultante nella matrice
[AB AB]
[AR AR]
Il HB+Hbo2
epxression è la stessa in tutti i 3 equazioni, e può essere sostituito da z=HB+Hbo2
rendendo le tre equazioni
B = AB*z
R = AR*z
G = AG*z
Per risolvere per z fare un minimi quadrati per trovare
z = HB + Hbo2 = (AB*B+AG*G+AR*R)/(AB*AB+AG*AG+AR*AR)
e l'errore per ogni componente come
dB = B - AB*z
dR = R - AR*z
dG = G - AG*z
Questo è tutto ciò che si può fare. In qualche modo si deve decidere come dividere z
in HB
e Hbo2
. Nessuna informazione su questo è riportata nella dichiarazione del problema.