그래프 데이타상에 Y 위치에 대응하는 X 값 찾기 - C#
Mathematics Algorithm2024. 6. 19. 11:20
반응형
그래프 데이타에서 특정 Y 값에 대응하는 X 값을 찾을 경우가 있습니다.
이런경우 X 데이타 배열에서 설정된 X 과 같은값을 찾아서 대응하는 Y 값을 리턴하면 되지만 X값이 데이타 배열상의 값과 일치하지 않고 중간값에 해당하는 값일 경우가 있습니다.
이때 이 Y 값에 대응하는 X값을 찾는 알고리즘입니다.
알고리즘은 Y에 대응하는 가장 근사값을 먼저찾고 (Y1) 그 다음값(Y2)를 이용하여 X1, X2를 찾습니다. 이렇게 찾은 두점에 대한 직선의 방적식을 계산한 후 그 직선의 방정식에서 설정한 Y 값을 대입하여 X값을 찾는 방식입니다.
public static double Ratio_Method_Value(in double[] xArray, in double[] yArray, double yValue)
{
/************************************************************************
function : y 값에 대응해는 x 값을 찾는 함수
param-1 : x 축의 배열 데이타
param-2 : y 축의 배열 데이타
param-3 : 설정 y 값
************************************************************************/
double xValue = 0;
if (yValue > yArray.Min() && yValue < yArray.Max())
{
for (int i = 0; i < yArray.Length - 1; i++)
{
if ((yValue >= yArray[i] && yValue <= yArray[i + 1]) || (yValue <= yArray[i] && yValue >= yArray[i + 1]))
{
double x1 = xArray[i];
double x2 = xArray[i + 1];
double y1 = yArray[i];
double y2 = yArray[i + 1];
xValue = x1 + (x2 - x1) * (yValue - y1) / (y2 - y1);
break;
}
}
}
return xValue;
}
반응형
'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 |
댓글()