Оптимизируйте приближение нелинейной функции с фиксированной точкой путем интерполяции точек данных интерполяционной таблицы
[
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
,ydt
ydt
,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
,ydt
ydt
,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
но не тогда, когда вы задаете только один из двух.
|
Функция | ||||||||
|
Минимальное значение | ||||||||
|
Максимальное значение | ||||||||
|
Тип данных | ||||||||
|
Масштабирование для | ||||||||
|
Тип данных | ||||||||
|
Масштабирование для | ||||||||
|
Режим округления, поддерживаемый блоками Simulink с фиксированной точкой:
| ||||||||
|
Максимально допустимая ошибка между идеальной функцией и приближением, заданная интерполяционной таблицей. | ||||||||
|
Максимальное число точек для интерполяционной таблицы. | ||||||||
|
Интервалы между точками останова для интерполяционной таблицы:
|
Если вы задаете... | Точки останова интерполяционной таблицы... |
---|---|
| По возможности удовлетворяйте обоим критериям. The |
| Удовлетворяйте критериям ошибки, и |
| Удовлетворяйте критериям точек, и |
|
Вектор точек по оси Х для интерполяционной таблицы. |
|
Вектор значений от применения идеальной функции к точкам останова. |
|
Ошибка в худшем случае, которая является максимальной абсолютной ошибкой между идеальной функцией и приближением, заданной интерполяционной таблицей. |
Аппроксимируйте функцию синуса с фиксированной точкой с помощью интерполяционной таблицы:
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);
fixpt_evenspace_cleanup
| fixpt_interp1
| fixpt_look1_func_plot