Проект реализует интерполяцию и экстраполяцию Z-значений на регулярной сетке. Используются:
- Локальная интерполяция:
- Метод ближайшего соседа
- Метод усреднения точек с весовыми функциями
- Экстраполяция классическим методом минимальной кривизны (би-лапласиан, 13-точечная схема)
Результаты приложены. Также есть теоретическая часть в презентации.
bin/
Grid/
├── Grid.cs // Класс регулярной сетки
└── GridBuilder.cs // Построитель сетки
LocalInterpolator/
└── LocalInterpolator.cs // Алгоритмы интерполяции
MinCurvatureExtrapolator/
└── MinCurvatureExtrapolator.cs // Алгоритм экстраполяции
parameters/
├── InterpolationMethod.cs // Перечисление методов интерполяции
├── RadiusType.cs // Перечисление типов радиусов влияния
└── WeightFunction.cs // Перечисление типов весовых функций
Point3D/
└── Point3D.cs // Представление 3D точки данных
ReadData/
└── DataReader.cs // Загрузка входных точек
WriteData/
└── DataWriter.cs // Сохранение выходных данных (output_grid.txt)
inputData/ // Папка с входными данными
outputData/ // Папка с результатами
Program.cs // Главный модуль программы
- Выполняется локальная интерполяция в известных точках:
- Метод ближайшего соседа
- Метод усреднения с весовой функцией:
w(r) = rw(r) = 1/rw(r) = 1/r²w(r) = 1/r⁴
- Выбор осуществляется через
InterpolationMethodиWeightFunction.
- Применяется метод минимальной кривизны:
- Решается уравнение четвёртого порядка (би-лапласиан)
- Используется 13-точечная конечная разностная схема
- Поддерживается регуляризация (параметр λ)
- Реализована итерационная схема с контролем точности
List<Point3D> points— массив входных данных вида (X, Y, Z)double grid_step_x,grid_step_y— шаги регулярной сетки
public enum RadiusType { Local, Cell }
public enum InterpolationMethod { Mean, Nearest }
public enum WeightFunction { Linear, Inv, Inv2, Inv4 }- Откройте Visual Studio и создайте консольное приложение .Net Framework
- Убедитесь, что в свойствах проекта выбран
.NET Framework 4.8 - Скопируйте в корень проекта содержимое папки Interpolation
- Необходимо установить MathNet.Numerics 5.0.0
- Убедитесь, что все файлы входных данных находятся в
inputData/ - Убедитесь, что путь к выходному файлу настроен на
outputData/output_grid.txt - Нажмите Start (F5) или соберите и запустите проект вручную
💡 После запуска программа автоматически выполнит:
- Интерполяцию значений в известных точках
- Экстраполяцию методом минимальной кривизны
- Сохранение результатов в
outputData/output_grid.txt