본문 바로가기

프로그래밍/Etc.

Excel Growth 함수 c# 구현

Trend 함수와 마찬가지로 Excel에 구현되어 있는 함수 입니다.


참고하면 좋을듯 합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public double Growth(double[] knownY, double[] knownX, object newX)
        { 
            int n = knownY.Length;
            double avg_x = 0.0;
            double avg_y = 0.0;
            double avg_xy = 0.0;
            double avg_xx = 0.0;
            double beta = 0.0;
            double alpha = 0.0;
            for (var i = 0; i < n; i++)
            {
                var x = knownX[i];
                var y = Math.Log(knownY[i]);
                avg_x += x;
                avg_y += y;
                avg_xy += x * y;
                avg_xx += x * x;
            }
            avg_x /= n;
            avg_y /= n;
            avg_xy /= n;
            avg_xx /= n;
 
            beta = (avg_xy - avg_x * avg_y) / (avg_xx - avg_x * avg_x);
            alpha = avg_y - beta * avg_x; 
           
            return Math.Exp(alpha + beta * Convert.ToDouble(newX));
        }
 
cs