11-30-2020, 03:45 PM
http://edspi31415.blogspot.com/2020/11/h...ation.html
The program LINEXPREG attempts to fit bivariate data to the curve:
y = a + b * x + c * e^x
The LSQ (least square) function is used. The output is a list of three matrices:
* A matrix of coefficients: [ [ a ] [ b ] [ c ] ]
* A matrix of y values entered
* A matrix of predicted y values
HP Prime Program LINEXPREG
Example
x list: {0, 1, 2, 3, 4, 5}
y list: {2, 7, 13, 18, 26, 34}
LINEXPREG({0, 1, 2, 3, 4, 5},{2, 7, 13, 18, 26, 34})
Results: {coefficients, y values, predicted y values}
coefficients:
[ [ 1.74935499143 ]
[ 5.39455446221 ]
[ 3.66584105034E-2 ] ]
y values:
[ [ 2 ]
[ 7 ]
[ 13 ]
[ 18 ]
[ 26 ]
[ 34 ] ]
predicted y values:
[ [ 1.78601340193 ]
[ 7.24355734477 ]
[ 12.8093349675 ]
[ 18.6693222357 ]
[ 25.3290542368 ]
[ 34.1627178129 ] ]
Equation:
y = 1.74935499143 + 5.39455446221 * x + 3.66584105034E-2 * e^x
The program LINEXPREG attempts to fit bivariate data to the curve:
y = a + b * x + c * e^x
The LSQ (least square) function is used. The output is a list of three matrices:
* A matrix of coefficients: [ [ a ] [ b ] [ c ] ]
* A matrix of y values entered
* A matrix of predicted y values
HP Prime Program LINEXPREG
Code:
EXPORT LINEXPREG(lx,ly)
BEGIN
// 2020-11-17 EWS
// x list, y list
LOCAL n,lx2,lx3,mx,my,k,mr,mq;
n:=SIZE(lx);
lx2:=e^(lx);
lx3:={};
FOR k FROM 1 TO n DO
lx3:=CONCAT(lx3,{1,lx(k),lx2(k)});
END;
mx:=list2mat(lx3,3);
my:=list2mat(ly,1);
mq:=LSQ(mx,my);
mr:=mq(1,1)+mq(2,1)*lx+
mq(3,1)*e^(lx);
mr:=list2mat(mr,1);
RETURN {mq,my,mr};
END;
Example
x list: {0, 1, 2, 3, 4, 5}
y list: {2, 7, 13, 18, 26, 34}
LINEXPREG({0, 1, 2, 3, 4, 5},{2, 7, 13, 18, 26, 34})
Results: {coefficients, y values, predicted y values}
coefficients:
[ [ 1.74935499143 ]
[ 5.39455446221 ]
[ 3.66584105034E-2 ] ]
y values:
[ [ 2 ]
[ 7 ]
[ 13 ]
[ 18 ]
[ 26 ]
[ 34 ] ]
predicted y values:
[ [ 1.78601340193 ]
[ 7.24355734477 ]
[ 12.8093349675 ]
[ 18.6693222357 ]
[ 25.3290542368 ]
[ 34.1627178129 ] ]
Equation:
y = 1.74935499143 + 5.39455446221 * x + 3.66584105034E-2 * e^x