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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top