그래프 데이타상에 X 위치에 대응하는 Y 값 찾기 - C#
Mathematics Algorithm2024. 6. 19. 11:20
반응형
그래프 데이타에서 특정 X 값에 대응하는 Y 값을 찾을 경우가 있습니다.
이런경우 X 데이타 배열에서 설정된 X 과 같은값을 찾아서 대응하는 Y 값을 리턴하면 되지만 X값이 데이타 배열상의 값과 일치하지 않고 중간값에 해당하는 값일 경우가 있습니다.
이때 이 X 값에 대응하는 Y값을 찾는 알고리즘입니다.
알고리즘은 X에 대응하는 가장 근사값을 먼저찾고 (X1) 그 다음값(X2)를 이용하여 Y1, Y2를 찾습니다. 이렇게 찾은 두점에 대한 직선의 방적식을 계산한 후 그 직선의 방정식에서 설정한 X 값을 대입하여 Y값을 찾는 방식입니다.
public double Ratio_Method_Value(double[] XValues, double[] YValues, int Length, double XValue)
{
double yValue = 0 ;
double? x1 = y1 = x2 = y2 = null ;
int index = 0 ;
foreach(var vx in XValues)
{
if(vx >= XValue) break ;
index ++ ;
}
if(index < Length-2)
{
x1 = XValues[index] ;
x2 = XValues[index + 1] ;
y1 = YValues[index] ;
y2 = yValues[index + 1] ;
var (slope, yIntercept) = GetLineEquation(x1, y1, x2, y2);
yValue = (slope * XValue) + yIntercept ;
}
return yValue;
}
public static (double slope, double yIntercept) GetLineEquation(double x1, double y1, double x2, double y2)
{
double slope = (y2 - y1) / (x2 - x1);
double yIntercept = y1 - slope * x1;
return (slope, yIntercept);
}
반응형
'Mathematics Algorithm' 카테고리의 다른 글
Peak Detection 알고리즘 - C# (0) | 2023.11.20 |
---|---|
순차적인 작업처리에 대한 알고리즘 구현 (0) | 2023.09.05 |
Data Smoothing #1 알고리즘 C++ (0) | 2023.03.30 |
Data Smoothing #2 (Savitzky Golay) C++ (0) | 2023.03.30 |
Gaussian Fitting 함수 C++ (0) | 2023.03.23 |
댓글()