Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 

Repository files navigation

📊 Проект интерполяции/экстраполяции методом минимальной кривизны

🚀 Обзор

Проект реализует интерполяцию и экстраполяцию 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                     // Главный модуль программы

⚙️ Функциональность

🔹 Интерполяция (шаг 1)

  • Выполняется локальная интерполяция в известных точках:
    • Метод ближайшего соседа
    • Метод усреднения с весовой функцией:
      • w(r) = r
      • w(r) = 1/r
      • w(r) = 1/r²
      • w(r) = 1/r⁴
  • Выбор осуществляется через InterpolationMethod и WeightFunction.

🔹 Экстраполяция (шаг 2)

  • Применяется метод минимальной кривизны:
    • Решается уравнение четвёртого порядка (би-лапласиан)
    • Используется 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 }

🏁 Как запустить

🔧 На платформе .NET Framework 4.8

  1. Откройте Visual Studio и создайте консольное приложение .Net Framework
  2. Убедитесь, что в свойствах проекта выбран .NET Framework 4.8
  3. Скопируйте в корень проекта содержимое папки Interpolation
  4. Необходимо установить MathNet.Numerics 5.0.0
  5. Убедитесь, что все файлы входных данных находятся в inputData/
  6. Убедитесь, что путь к выходному файлу настроен на outputData/output_grid.txt
  7. Нажмите Start (F5) или соберите и запустите проект вручную

💡 После запуска программа автоматически выполнит:

  1. Интерполяцию значений в известных точках
  2. Экстраполяцию методом минимальной кривизны
  3. Сохранение результатов в outputData/output_grid.txt

About

Проект по реализации алгоритма интерполяции/экстраполяции методом минимальной кривизны

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages