Polynomial regression: Difference between revisions
Content added Content deleted
Walterpachl (talk | contribs) m (add REXX "inspired" by http://keisan.casio.com/exec/system/14059932254941) |
|||
Line 1,100: | Line 1,100: | ||
{{out}} |
{{out}} |
||
[[File:polyreg-racket.png]] |
[[File:polyreg-racket.png]] |
||
=={{header|REXX}}== |
|||
<lang rexx>/* REXX --------------------------------------------------------------- |
|||
* Implementation of http://keisan.casio.com/exec/system/14059932254941 |
|||
*--------------------------------------------------------------------*/ |
|||
xl='0 1 2 3 4 5 6 7 8 9 10' |
|||
yl='1 6 17 34 57 86 121 162 209 262 321' |
|||
n=11 |
|||
Do i=1 To n |
|||
Parse Var xl x.i xl |
|||
Parse Var yl y.i yl |
|||
End |
|||
xm=0 |
|||
ym=0 |
|||
x2m=0 |
|||
x3m=0 |
|||
x4m=0 |
|||
xym=0 |
|||
x2ym=0 |
|||
Do i=1 To n |
|||
xm=xm+x.i |
|||
ym=ym+y.i |
|||
x2m=x2m+x.i**2 |
|||
x3m=x3m+x.i**3 |
|||
x4m=x4m+x.i**4 |
|||
xym=xym+x.i*y.i |
|||
x2ym=x2ym+(x.i**2)*y.i |
|||
End |
|||
xm =xm /n |
|||
ym =ym /n |
|||
x2m=x2m/n |
|||
x3m=x3m/n |
|||
x4m=x4m/n |
|||
xym=xym/n |
|||
x2ym=x2ym/n |
|||
Sxx=x2m-xm**2 |
|||
Sxy=xym-xm*ym |
|||
Sxx2=x3m-xm*x2m |
|||
Sx2x2=x4m-x2m**2 |
|||
Sx2y=x2ym-x2m*ym |
|||
B=(Sxy*Sx2x2-Sx2y*Sxx2)/(Sxx*Sx2x2-Sxx2**2) |
|||
C=(Sx2y*Sxx-Sxy*Sxx2)/(Sxx*Sx2x2-Sxx2**2) |
|||
A=ym-B*xm-C*x2m |
|||
Say 'y='a'+'||b'*x+'c'*x**2' |
|||
Say ' Input "Approximation"' |
|||
Say ' x y y1' |
|||
Do i=1 To 11 |
|||
Say right(x.i,2) right(y.i,3) format(fun(x.i),5,3) |
|||
End |
|||
Exit |
|||
fun: |
|||
Parse Arg x |
|||
Return a+b*x+c*x**2 </lang> |
|||
{{out}} |
|||
<pre>y=1+2*x+3*x**2 |
|||
Input "Approximation" |
|||
x y y1 |
|||
0 1 1.000 |
|||
1 6 6.000 |
|||
2 17 17.000 |
|||
3 34 34.000 |
|||
4 57 57.000 |
|||
5 86 86.000 |
|||
6 121 121.000 |
|||
7 162 162.000 |
|||
8 209 209.000 |
|||
9 262 262.000 |
|||
10 321 321.000</pre> |
|||
=={{header|Ruby}}== |
=={{header|Ruby}}== |