# How to fit multivariable equation?

2 views (last 30 days)
Caglar on 15 Jul 2019
Commented: Torsten on 15 Jul 2019
I have n x 3 input data (n amount of examples for three properties) and n x 1 output data from real world observations. n is the number of examples I have.
In other words,
Inputs:
inputs=[1 2 3;
4 5 7;
2 4 6;
2 1 1;
....];
Outputs:
outputs=[15; 26; 29; 8...];
From my experience on the subject, I expect there is a relationship similar to:
output=input(1)*coef1+input(2)*coef2+input(3)*coef3+coef4;
How can I use matlab to find coef1, coef2, coef3 and coef4? I checked curve fiting and optimization help pages but I could not be sure about the best way.
(I guess I can drop the term coef4 if it makes things much harder to code beacuse I expect coef4 to be small.)
For example, for the numbers I wrote above (inputs and outputs), relationship is;
input(1)+2*input(2)+3*input(3)+1
so coef1 is 1, coef2 is 2, coef3 is 3 and coef4 is 1.
In real life values, equation will not fit exactly like this due to noise of the data.
Thank you,

Torsten on 15 Jul 2019
Edited: Torsten on 15 Jul 2019
coeffs = [inputs, ones(size(inputs,1),1)] \ outputs
##### 2 CommentsShow 1 older commentHide 1 older comment
Torsten on 15 Jul 2019
It is the general solution to minimize ||[inputs,1]*coeffs - outputs|| in the least squares sense.

### Categories

Find more on Linear and Nonlinear Regression in Help Center and File Exchange

R2019a

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!