|
1 | 1 | #pragma once |
2 | 2 | #include "help.h" |
3 | 3 |
|
4 | | - |
5 | 4 | class lab |
6 | 5 | { |
7 | | -public: |
8 | | - static float avg(vector<string>com) |
| 6 | +private: |
| 7 | + static float avg(vectorNode v) |
9 | 8 | { |
10 | 9 | float sum=0; |
11 | | - for(unsigned int i=1;i<com.size();i++) |
12 | | - sum+=help::tofloat(com[i]); |
13 | | - return sum/(com.size()-1); |
| 10 | + for(unsigned int i=0;i<v.getl();i++) |
| 11 | + sum+=v.v[i]; |
| 12 | + return sum/v.getl(); |
14 | 13 | } |
15 | 14 |
|
16 | | - static float dev(vector<string>com) |
| 15 | + static float err(vectorNode v, float avg=-1) |
17 | 16 | { |
18 | | - float avg=lab::avg(com); |
| 17 | + if(avg==-1) |
| 18 | + { |
| 19 | + avg=lab::avg(v); |
| 20 | + } |
19 | 21 | float sum=0; |
20 | | - for(unsigned int i=1;i<com.size();i++) |
| 22 | + for(unsigned int i=0;i<v.getl();i++) |
21 | 23 | { |
22 | | - float num=help::tofloat(com[i])-avg; |
| 24 | + float num=v.v[i]-avg; |
23 | 25 | sum+=num*num; |
24 | 26 | } |
25 | | - return sum/(com.size()-2); |
| 27 | + return sum; |
| 28 | + } |
| 29 | + |
| 30 | +public: |
| 31 | + static float avg(vector<string>com) |
| 32 | + { |
| 33 | + //vectorNode v(com.size()-1); |
| 34 | + vectorNode v=help::toVectorNode(com); |
| 35 | + return avg(v); |
| 36 | + } |
| 37 | + |
| 38 | + static float var(vector<string>com) |
| 39 | + { |
| 40 | + auto v=help::toVectorNode(com); |
| 41 | + return err(v)/v.getl(); |
| 42 | + } |
| 43 | + |
| 44 | + static float r(vectorNode &x, vectorNode &y) |
| 45 | + { |
| 46 | + float avgx=avg(x); |
| 47 | + float avgy=avg(y); |
| 48 | + float lxx=err(x,avgx); |
| 49 | + float lyy=err(y,avgy); |
| 50 | + |
| 51 | + float lxy=0; |
| 52 | + for(unsigned int i=0;i<x.getl();i++) |
| 53 | + { |
| 54 | + float num1=x.v[i]-avgx; |
| 55 | + float num2=y.v[i]-avgy; |
| 56 | + lxy+=abs(num1*num2); |
| 57 | + } |
| 58 | + |
| 59 | + return lxy/(sqrt(lxx*lyy)); |
26 | 60 | } |
27 | 61 |
|
28 | 62 | static tuple<double,double> LeastSquare(vectorNode &x, vectorNode &y) |
|
0 commit comments