Реализовать алгоритм в Матлаб
Алгоритм реализует интерполяцию сеточной функции, заданной в черно-белом файле типа .bmp .
Наименование алгоритма
Newton
Файл скрипта на Matlab
Newton.m
Входные данные:
Путь к файлу с расширением bmp (удобнее, когда файл находится в папке с m файлом), в котором хранится сетка значений.
Узлы на картинке должны быть равноотстоящими.
Каждое изображение указанного формата хранит двумерные координаты, представляющие собой заданную сеточную функцию. В связи с тем, что направление оси ординат в матричном представлении изображения инвертировано, предлагается для дальнейшей работы с рисунком считывать координаты точек следующим образом:
Image = imread(name);
if islogical(Image) == 0
level = graythresh(Image);
Image = im2bw(Image, level);
end;
[Y,X] = find(~Image);
Y = size(Image,1) - Y + 1;
X = left + (right - left)*(X/(size(Image,2)-1));
Y = bottom + (top - bottom)*(Y/(size(Image,1)-1));
SIZE(1) = length(X);
SIZE(2) = length(Y);
if SIZE(1)~= SIZE(2)
error('Сетка задана некорректно')
end
Необязательные значения для ввода параметров "a" и "b", которые определяют левый и правый край рисунка и "c" и "d", которые определяют нижний и верхний край рисунка соответственно (масштаб).
Если значения для параметров "a", "b", "c" и "d" не указывать, то размерность картинки по умолчанию.
Критерий останова:
При вычислении значения многочлена, используется многочлен степени, равной на единицу меньше порядка конечных разностей, равных константной величине (все следующие порядки конечных разностей неубывают).
Выходные данные:
График интерполирующей функции, выводящийся на экран (либо в файл с расширением .bmp).
Особые случаи:
- В случае, если точек на изображении не найдено, выдает ошибку :”no points! ”.
- В случае, если найдена всего одна точка, выдает ошибку:"на рисунке недостаточно точек"
- Если среднее значение между границами интерполяции ближе к X0, то использовать первую интерполяционную формулу Ньютона.
- Если среднее значение между границами интерполяции ближе к Xn, то использовать вторую интерполяционную формулу Ньютона.
- Если среднее значение между границами интерполяции ближе к Xk (Xk - средняя точка сетки), то использовать центральную интерполяционную формулу.
- Вычисление многочлена Ньютона по определению многочлена Ньютона, в соответствии с формулой.
Вызов:
Newton('.bmp', [a], , [c], [d])