C# 애플리케이션을 사용하여 일부 데이터를 분석하려고하는데 추세선을 계산해야합니다. 추세선은 여러 유형이 있지만 현재 지수 성장을 계산하려고합니다. 미래 가치를 예측하기 위해 그것을 사용할 것입니다. 내가 떨어져 일하고있다 방정식은데이터 포인트에서 지수 성장 방정식 계산하기 C#
x(t) = x(0) * ((1+r)^t)
입니다 그리고 이것은 내가 그래프 시도하고 복제하기 위해 작성한 코드입니다 :
public void ExponentialBestFit(List<DateTime> xvalues, List<double> yvalues)
{
//Find the first value of y (The start value) and the first value of x (The start date)
xzero = Convert.ToDouble(xvalues[0].ToOADate());
yzero = yvalues[0];
if (yzero == 0)
yzero += 0.1;
//For every value of x (exluding the 1st value) find the r value
//
// | y | Where t = the time sinse the start time (time period)
//Equation for r = t root|-------| - 1 Where y = the current y value
// | y[0] | Where y[0] = the first y value #IMPROVMENT - Average 1st y value in range
//
double r = 0;
//c is a count of how many r values are added; it is not equal to the count of all the values
int c = 0;
for (int i = 1; i < xvalues.Count; i++)
{
r += Math.Pow(yvalues[i]/yzero, 1/(Convert.ToDouble(xvalues[i].ToOADate()) - xzero)) - 1;
c++;
}
r = r/c;
}
내가 전달하고 데이터는 일정 기간 동안입니다 그러나 시간이 증가하는 증가는 동일하지 않습니다. 내가 Excel에서 차트를 만들 때 그들은 그러나 나는 k 값이에서 생성되는 아무 생각이
x(t) = x(0)*(e^kt)
내가 생각하는 다른 공식을 사용합니다. 전달중인 두 목록은 날짜 및 값이며 각 목록의 각 행은 다른 목록의 동일한 행에 해당합니다. 질문은 - 방정식과 변수를 만드는 더 좋은 방법이 있으며 내 데이터에 대해 가장 정확 해지는 변수입니까?
'e^kt'는 다른 상수 ('r = e^k - 1')만으로'(r + 1)^t'와 동일합니다. 즉 Excel이 다른 양식을 작성하고 해당 수식을 사용하여 Excel과 동일한 결과를 얻는 지 확인할 수 있습니다. – Rawling
@ Rawling Ohh ok, 감사합니다. k = ln (2)/T의 70 규칙을 사용하여 상수 k를 복제하려고했지만 조금 더 성장했지만 매우 유사한 선을 얻습니다. 나는 그래프를 서로 비교하려고 노력할 것이다. 건배! – manicmonkey21421