Domanda

Stiamo usando un linguaggio di programmazione che non ha una funzione di regressione lineare. Abbiamo già implementato una singola equazione lineare variabile:

  

y = Ax + B

e hanno semplicemente calcolato i coefficienti A e B dai dati utilizzando una soluzione simile a questa risposta Stack Overflow .

So che questo problema diventa geometricamente più difficile con l'aggiunta di variabili, ma per i nostri scopi, dobbiamo solo aggiungerne uno in più:

  

z = Ax + By + C

Qualcuno ha le equazioni in forma chiusa, o codice in qualsiasi linguaggio che può risolvere per A, B e C, dato un array di x, ye z?

È stato utile?

Soluzione

quindi hai tre equazioni lineari

k = aX1 + bY1 + cZ1
k = aX2 + bY2 + cZ2
k = aX3 + bY3 + cZ3

Quello che puoi fare è riscriverlo come matriz

| x1 y1 z1 | | a |   | k |
| x2 y2 z2 | | b | = | k |
| x3 y3 y3 | | c |   | k |

per elaborare [a b c] esegui la seguente operazione di matrice

| a |              | x1 y1 z1 |     | k |
| b | =  inverse(  | x2 y2 z2 | )   | k |
| c |              | x3 y3 y3 |     | k |

La formula per un inverso di matrice 3x3 è disponibile qui

Altri suggerimenti

Sì, è un problema di algebra lineare semplice se lo pensi nel modo Gil Strang . Ecco una spiegazione scritta.

Puoi usare MatLab o il calcolo deve avvenire all'interno del tuo software?

Istruzioni MatLab su analisi di regressione multipla .

Integrazione di MatLab con C # .

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