fixpt_look1_func_approx

Оптимизируйте приближение нелинейной функции с фиксированной точкой путем интерполяции точек данных интерполяционной таблицы

Синтаксис

[xdata,ydata,errworst] = fixpt_look1_func_approx('func',...
xmin,xmax,xdt,xscale,ydt,yscale,rndmeth,errmax,nptsmax)
[xdata,ydata,errworst] = fixpt_look1_func_approx('func',...
xmin,xmax,xdt,xscale,ydt,yscale,rndmeth,errmax,[])
[xdata,ydata,errworst] = fixpt_look1_func_approx('func',...
xmin,xmax,xdt,xscale,ydt,yscale,rndmeth,[],nptsmax)
[xdata,ydata,errworst] = fixpt_look1_func_approx('func',...
xmin,xmax,xdt,xscale,ydtydt,yscale,rndmeth,errmax,nptsmax,spacing)

Описание

[xdata,ydata,errworst] = fixpt_look1_func_approx('func',...
xmin,xmax,xdt,xscale,ydt,yscale,rndmeth,errmax,nptsmax)
возвращает оптимальные точки прерывания интерполяционной таблицы, идеальную функцию, примененную к точкам прерывания, и ошибку приближения в худшем случае. Интерполяционная таблица удовлетворяет максимально допустимой ошибке и максимальному числу точек, которые вы задаете.

[xdata,ydata,errworst] = fixpt_look1_func_approx('func',...
xmin,xmax,xdt,xscale,ydt,yscale,rndmeth,errmax,[])
возвращает оптимальные точки прерывания интерполяционной таблицы, идеальную функцию, примененную к точкам прерывания, и ошибку приближения в худшем случае. Интерполяционная таблица удовлетворяет максимально допустимой ошибке, которую вы задаете.

[xdata,ydata,errworst] = fixpt_look1_func_approx('func',...
xmin,xmax,xdt,xscale,ydt,yscale,rndmeth,[],nptsmax)
возвращает оптимальные точки прерывания интерполяционной таблицы, идеальную функцию, примененную к точкам прерывания, и ошибку приближения в худшем случае. Интерполяционная таблица удовлетворяет максимальному числу точек, которые вы задаете.

[xdata,ydata,errworst] = fixpt_look1_func_approx('func',...
xmin,xmax,xdt,xscale,ydtydt,yscale,rndmeth,errmax,nptsmax,spacing)
возвращает оптимальные точки прерывания интерполяционной таблицы, идеальную функцию, примененную к точкам прерывания, и ошибку приближения в худшем случае. Интерполяционная таблица удовлетворяет максимально допустимой ошибке, максимальному числу точек и заданному интервалу точек по оси Х.

В каждом случае, fixpt_look1_func_approx интерполирует между точками данных интерполяционной таблицы для оптимизации приближения с фиксированной точкой. Входы xmin и xmax задайте область значений, над которой можно аппроксимировать точки останова. Входы xdt, xscale, ydt, yscale, и rndmeth следовать соглашениям, используемым Simulink с фиксированной точкой® блоки.

Входы errmax, nptsmax, и spacing являются необязательными. Из этих входов необходимо задать как минимум errmax или nptsmax. Если вы опускаете один из этих двух входов, необходимо использовать скобки, [], вместо опущенного входа. fixpt_look1_func_approx игнорирует это требование для интерполяционной таблицы.

Если интервал не задан, и удовлетворяет несколько интервалов errmax и nptsmax, fixpt_look1_func_approx выбирает в таком порядке: степень-2 интервала, четное расстояние, неравномерное расстояние. Это поведение применяется, когда вы задаете оба errmax и nptsmaxно не тогда, когда вы задаете только один из двух.

Входные параметры

func

Функция x для чего аппроксимировать точки останова. Заключайте это выражение в одинарные кавычки, например 'sin(2*pi*x)'.

xmin

Минимальное значение x.

xmax

Максимальное значение x.

xdt

Тип данных x.

xscale

Масштабирование для x значения.

ydt

Тип данных y.

yscale

Масштабирование для y значения.

rndmeth

Режим округления, поддерживаемый блоками Simulink с фиксированной точкой:

'Ceiling'

Округлить до ближайшего представимого числа в направлении положительной бесконечности.

'Floor' (по умолчанию)

Округлить до ближайшего представимого числа в направлении отрицательной бесконечности.

'Nearest'

Округлить до ближайшего представимого числа.

'Toward Zero'

Округлить до ближайшего представимого числа в направлении нуля.

errmax

Максимально допустимая ошибка между идеальной функцией и приближением, заданная интерполяционной таблицей.

nptsmax

Максимальное число точек для интерполяционной таблицы.

spacing

Интервалы между точками останова для интерполяционной таблицы:

'even'Четный интервал
'pow2'Четный интервал мощности 2
'unrestricted' (по умолчанию)Неравномерный интервал
Если вы задаете...Точки останова интерполяционной таблицы...

errmax и nptsmax

По возможности удовлетворяйте обоим критериям.

The errmax требование имеет более высокий приоритет, чем nptsmax. Если точки останова не могут удовлетворять обоим критериям с заданным интервалом, nptsmax не применяется.

errmax только

Удовлетворяйте критериям ошибки, и fixpt_look1_func_approx возвращает наименьшее число точек.

nptsmax только

Удовлетворяйте критериям точек, и fixpt_look1_func_approx возвращает наименьшую ошибку в худшем случае.

Выходные аргументы

xdata

Вектор точек по оси Х для интерполяционной таблицы.

ydata

Вектор значений от применения идеальной функции к точкам останова.

errworst

Ошибка в худшем случае, которая является максимальной абсолютной ошибкой между идеальной функцией и приближением, заданной интерполяционной таблицей.

Примеры

Аппроксимируйте функцию синуса с фиксированной точкой с помощью интерполяционной таблицы:

func = 'sin(2*pi*x)';
% Define the range over which to optimize breakpoints
xmin = 0;
xmax = 0.25;
% Define the data type and scaling for the inputs
xdt = ufix(16);
xscale = 2^-16;
% Define the data type and scaling for the outputs
ydt = sfix(16);
yscale = 2^-14;
% Specify the rounding method
rndmeth = 'Floor';
% Define the maximum acceptable error
errmax = 2^-10;
% Choose even, power-of-2 spacing for breakpoints
spacing = 'pow2';
% Create the lookup table
[xdata,ydata,errworst] = fixpt_look1_func_approx(func,...
 xmin,xmax,xdt,xscale,ydt,yscale,rndmeth,errmax,[],spacing);
Представлено до R2006a