Разделы, которые следуют, объясняют, как использовать функциональный fixpt_look1_func_approx создать интерполяционные таблицы. Это дает примеры, которые показывают, как создать интерполяционные таблицы для функции sin (2πx) на интервале от 0 до 0,25.
Использовать функциональный fixpt_look1_func_approx, необходимо сначала задать его параметры. Обязательные параметры для функции:
funcstr — Идеальная функция
xmin — Минимальный вход интереса
xmax — Максимальный вход интереса
xdt — x тип данных
xscale — x масштабирование данных
ydt — y тип данных
yscale — y масштабирование данных
rndmeth — Округление метода
Кроме того, существует три дополнительных параметра:
errmax — Максимальная позволенная ошибка интерполяционной таблицы
nptsmax — Максимальное количество точек интерполяционной таблицы
spacing — Интервал позволен между точками останова
Необходимо использовать по крайней мере один из параметров errmax и nptsmax. Следующий раздел, Устанавливая Параметры функции для Интерполяционной таблицы, дает типичные настройки для этих параметров.
Если вы используете только errmax параметр, без nptsmax, функция создает интерполяционную таблицу с наименьшим количеством точек, для которых ошибка худшего случая в большей части errmax. Смотрите Используя errmax с Неограниченным Интервалом.
Если вы используете только nptsmax параметр без errmax, функция создает интерполяционную таблицу с в большей части nptsmax точки, который имеет самую маленькую худшую ошибку случая. Смотрите Используя nptsmax с Неограниченным Интервалом.
Раздел Specifying Both errmax и nptsmax описывают, как функция ведет себя, когда вы задаете оба errmax и nptsmax.
Можно использовать дополнительный spacing параметр, чтобы ограничить интервал между точками останова интерполяционной таблицы. Опции
'unrestricted' — Значение по умолчанию.
'even' — Расстояние между любыми двумя смежными точками останова является тем же самым.
'pow2' — Расстояние между любыми двумя смежными точками останова является тем же самым, и расстояние является степенью двойки.
Раздел Restricting the Spacing и примеры, которые следуют за ним, объясняют, как использовать spacing параметр.
Чтобы сделать примеры в этом разделе, необходимо сначала установить значения параметров для fixpt_look1_func_approx функция. Для этого введите следующее в подсказке MATLAB®:
funcstr = 'sin(2*pi*x)'; % Define the sine function xmin = 0; % Set the minimum input of interest xmax = 0.25; % Set the maximum input of interest xdt = ufix(16); % Set the x data type xscale = 2^-16; % Set the x data scaling ydt = sfix(16); % Set the y data type yscale = 2^-14; % Set the y data scaling rndmeth = 'Floor'; % Set the rounding method errmax = 2^-10; % Set the maximum allowed error nptsmax = 21; % Specify the maximum number of points
Если вы выходите из программного обеспечения MATLAB после ввода этих команд, необходимо перепечатать их прежде, чем попробовать любой из других примеров в этом разделе.
Первый пример показывает, как создать интерполяционную таблицу, которая имеет наименьшее количество точек данных для заданной ошибки худшего случая с неограниченным интервалом. Прежде, чем попробовать пример, введите те же значения параметров, данные в раздел Setting Function Parameters для Интерполяционной таблицы, если вы уже не сделали так в этом сеансе работы с MATLAB.
Задайте максимальную позволенную ошибку путем ввода
errmax = 2^-10;
Чтобы создать интерполяционную таблицу, ввести
[xdata, ydata, errworst] = fixpt_look1_func_approx(funcstr, ...
xmin,xmax,xdt,xscale,ydt,yscale,rndmeth,errmax,[]);Обратите внимание на то, что nptsmax и spacing параметры не заданы.
Функция возвращает три переменные:
xdata — Вектор точек останова интерполяционной таблицы
ydata — Вектор найден путем применения идеальной функции sin (2πx) к xdata
errworst — Задает максимальную возможную ошибку в интерполяционной таблице
Значение errworst меньше чем или равно значению errmax.
Можно найти количество X точек данных путем ввода
length(xdata)
ans = 16
Это означает, что 16 точек требуются, чтобы аппроксимировать sin (2πx) к в допуске, заданном errmax.
Можно отобразить максимальную погрешность путем ввода
errworst
errworst = 9.7656e-04
Можно построить выход функционального fixpt_look1_func_plot путем ввода
fixpt_look1_func_plot(xdata,ydata,funcstr,xmin,xmax,xdt, ...
xscale,ydt,yscale,rndmeth);
Верхний график показывает идеальную функцию sin (2πx) и приближение поиска фиксированной точки между точками останова. В этом примере идеальная функция и приближение состоят так близко друг к другу в том, что эти два графика, кажется, совпадают. Более низкий график отображает ошибки.
В этом примере, точках данных Y, возвращенных функциональным fixpt_look1_func_approx как ydata, равны идеальной функции, применился к точкам в xdata. Однако можно задать различное множество значений для ydata после выполнения fixpt_look1_func_plot. Это может иногда уменьшать максимальную погрешность.
Можно также изменить значения xmin и xmax оценивать интерполяционную таблицу на подмножестве исходного интервала.
Найти новую максимальную погрешность после изменения ydataxmin или xmaxВвод
errworst = fixpt_look1_func_plot(xdata,ydata,funcstr,xmin,xmax, ... xdt,xscale,ydt,yscale,rndmeth)
Следующий пример показывает, как создать интерполяционную таблицу, которая минимизирует ошибку худшего случая для заданного максимального количества точек данных с неограниченным интервалом. Прежде, чем запустить пример, введите те же значения параметров, данные в раздел Setting Function Parameters для Интерполяционной таблицы, если вы уже не сделали так в этом сеансе работы с MATLAB.
Задайте количество точек останова в интерполяционной таблице путем ввода
nptsmax = 21;
Чтобы создать интерполяционную таблицу, ввести
[xdata, ydata, errworst] = fixpt_look1_func_approx(funcstr, ...
xmin,xmax,xdt,xscale,ydt,yscale,rndmeth,[],nptsmax);Пустые скобки, [], скажите функции игнорировать параметр errmax, который не используется в этом примере. Исключение errmax вызывает функциональный fixpt_look1_func_approx возвратить интерполяционную таблицу размера, заданного nptsmax, с самой маленькой ошибкой худшего случая.
Функция возвращает векторный xdata с 21 точкой. Можно найти максимальную погрешность для этого набора точек путем ввода errworst в посдказке MATLAB.
errworst
errworst = 5.1139e-04
Чтобы построить интерполяционную таблицу наряду с ошибками, ввести
fixpt_look1_func_plot(xdata,ydata,funcstr,xmin,xmax,xdt, ...
xscale,ydt,yscale,rndmeth);
В предыдущих двух примерах, функциональном fixpt_look1_func_approx создает интерполяционные таблицы с неограниченным интервалом между точками останова. Можно ограничить интервал, чтобы повысить вычислительную эффективность интерполяционной таблицы, с помощью параметра интервала.
Опции для разрядки
'unrestricted' — Значение по умолчанию.
'even' — Расстояние между любыми двумя смежными точками останова является тем же самым.
'pow2' — Расстояние между любыми двумя смежными точками останова является тем же самым и является степенью двойки.
И степень двойки и даже располагающий увеличение с интервалами вычислительная скорость интерполяционной таблицы и использования меньше постоянной памяти (ROM) команды. Однако задавая любое из ограничений интервала наряду с errmax обычно требует большего количества точек данных в интерполяционной таблице, чем делает неограниченный интервал, чтобы достигнуть той же степени точности. Раздел Effects of Spacing on Speed, Ошибка и Использование памяти обсуждают компромиссы между различными опциями интервала.
Следующий пример показывает, как создать интерполяционную таблицу, которая равномерно расположила с интервалами точки останова и заданную ошибку худшего случая. Чтобы попробовать пример, необходимо сначала ввести значения параметров, данные в раздел Setting Function Parameters для Интерполяционной таблицы, если вы уже не сделали так в этом сеансе работы с MATLAB.
Затем в типе посдказки MATLAB
spacing = 'even'; [xdata, ydata, errworst] = fixpt_look1_func_approx(funcstr, ... xmin,xmax,xdt,xscale,ydt,yscale,rndmeth,errmax,[],spacing);
Можно найти число точек в интерполяционной таблице путем ввода:
length(xdata)
ans = 20
Чтобы построить интерполяционную таблицу наряду с ошибками, ввести
fixpt_look1_func_plot(xdata,ydata,funcstr,xmin,xmax,xdt, ...
xscale,ydt,yscale,rndmeth);
Следующий пример показывает, как создать интерполяционную таблицу, которая равномерно расположила точки останова с интервалами и минимизирует ошибку худшего случая для заданного максимального количества точек. Чтобы попробовать пример, необходимо сначала ввести значения параметров, данные в раздел Setting Function Parameters для Интерполяционной таблицы, если вы уже не сделали так в этом сеансе работы с MATLAB.
Затем в типе посдказки MATLAB
spacing = 'even'; [xdata, ydata, errworst] = fixpt_look1_func_approx(funcstr, ... xmin,xmax,xdt,xscale,ydt,yscale,rndmeth,[],nptsmax,spacing);
Результат требует, чтобы 21 равномерно разнесенная точка достигла максимальной абсолютной погрешности 2^-10.2209.
Чтобы построить интерполяционную таблицу наряду с ошибками, ввести
fixpt_look1_func_plot(xdata,ydata,funcstr,xmin,xmax,xdt, ...
xscale,ydt,yscale,rndmeth);
Следующий пример показывает, как создать интерполяционную таблицу, которая имеет интервал степени двойки и заданную ошибку худшего случая. Чтобы попробовать пример, необходимо сначала ввести значения параметров, данные в раздел Setting Function Parameters для Интерполяционной таблицы, если вы уже не сделали так в этом сеансе работы с MATLAB.
Затем в типе посдказки MATLAB
spacing = 'pow2'; [xdata, ydata, errworst] = ... fixpt_look1_func_approx(funcstr,xmin, ... xmax,xdt,xscale,ydt,yscale,rndmeth,errmax,[],spacing);
Чтобы узнать, сколько точек находится в интерполяционной таблице, ввести
length(xdata)
ans = 33
Это означает, что 33 точки требуются, чтобы достигать ошибки худшего случая, заданной errmax. Чтобы проверить, что эти точки равномерно расположены с интервалами, ввести
widths = diff(xdata)
Это генерирует вектор, записи которого являются различиями между последовательными точками в xdata. Каждая запись widths 2-7.
Чтобы найти максимальную погрешность для интерполяционной таблицы, ввести
errworst
errworst = 3.7209e-04
Это меньше значения errmax.
Чтобы отобразить данные об интерполяционной таблице на графике наряду с ошибками, ввести
fixpt_look1_func_plot(xdata,ydata,funcstr,xmin,xmax,xdt, ...
xscale,ydt,yscale,rndmeth);
Следующий пример показывает, как создать интерполяционную таблицу, которая имеет интервал степени двойки и минимизирует ошибку худшего случая для заданного максимального количества точек. Чтобы попробовать пример, необходимо сначала ввести значения параметров, данные в раздел Setting Function Parameters для Интерполяционной таблицы, если вы уже не сделали так в этом сеансе работы с MATLAB:
spacing = 'pow2'; [xdata, ydata, errworst] = ... fixpt_look1_func_approx(funcstr,xmin, ... xmax,xdt,xscale,ydt,yscale,rndmeth,errmax,[],spacing);
Результат требует, чтобы 17 точек достигли максимальной абсолютной погрешности 2^-9.6267.
Чтобы построить интерполяционную таблицу наряду с ошибками, ввести
fixpt_look1_func_plot(xdata,ydata,funcstr,xmin,xmax,xdt, ...
xscale,ydt,yscale,rndmeth);
Если вы включаете обоих errmax и nptsmax параметры, функциональный fixpt_look1_func_approx попытки найти интерполяционную таблицу с в большей части nptsmax точки данных, ошибка худшего случая которых в большей части errmax. Если это может найти интерполяционную таблицу, удовлетворяющую обоим условиям, это использует следующий заказ приоритета для разрядки:
Степень двойки
Даже
Неограниченный
Если функция не может найти интерполяционную таблицу, удовлетворяющую обоим условиям, это игнорирует nptsmax и возвращает интерполяционную таблицу с неограниченным интервалом, ошибка худшего случая которого в большей части errmax. В этом случае функция ведет себя то же самое как будто nptsmax параметр был не использован.
Используя параметры, описанные в разделе Setting Function Parameters для Интерполяционной таблицы, следующие примеры иллюстрируют результаты использования различных значений для nptsmax когда вы входите
[xdata ydata errworst] = fixpt_look1_func_approx(funcstr, ... xmin,xmax,xdt,xscale,ydt,yscale,rndmeth,errmax,nptsmax);
Результаты для трех различных настроек для nptsmax следующие:
nptsmax = 33; — Функция создает интерполяционную таблицу с 33 точками, имеющими интервал степени двойки, как в Примере 3.
nptsmax = 21; — Поскольку errmax и nptsmax условия нельзя соблюдать с интервалом степени двойки, функция создает интерполяционную таблицу с 20 точками, имеющими даже интервал, как в Примере 5.
nptsmax = 16; — Поскольку errmax и nptsmax условия нельзя соблюдать или со степенью двойки или с даже интервалом, функция создает интерполяционную таблицу с 16 точками, имеющими неограниченный интервал, как в Примере 1.
Следующая таблица обобщает результаты для примеров. Когда вы задаете errmax, даже интервал требует большего количества точек данных, чем неограниченный, и интервал степени двойки требует большего количества точек, чем ровный интервал.
| Пример | Опции | Разрядка | Ошибка худшего случая | Число точек в таблице |
|---|---|---|---|---|
1 |
|
| 2^-10 | 16 |
2 |
|
| 2^-10.933 | 21 |
3 |
|
| 2^-10.0844 | 20 |
4 |
|
| 2^-10.2209 | 21 |
5 |
|
| 2^-11.3921 | 33 |
6 |
|
| 2^-9.627 | 17 |