Реализовать алгоритм в Матлаб

Максим9 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
26.06.2016

Алгоритм реализует интерполяцию сеточной функции, заданной в черно-белом файле типа .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])