Сделайте кусочный полином
Создайте кусочный полином, который имеет кубический полином в интервале [0,4], квадратичный полином в интервале [4,10] и биквадратный полином в интервале [10,15].
breaks = [0 4 10 15]; coefs = [0 1 -1 1 1; 0 0 1 -2 53; -1 6 1 4 77]; pp = mkpp(breaks,coefs)
pp = struct with fields:
form: 'pp'
breaks: [0 4 10 15]
coefs: [3x5 double]
pieces: 3
order: 5
dim: 1
Оцените кусочный полином во многих точках в интервале [0,15] и постройте результаты. Постройте вертикальные пунктирные графики в точках останова, где полиномы встречаются.
xq = 0:0.01:15; plot(xq,ppval(pp,xq)) line([4 4],ylim,'LineStyle','--','Color','k') line([10 10],ylim,'LineStyle','--','Color','k')

Создайте и постройте кусочный полином с четырьмя интервалами, которые чередуются между двумя квадратичными полиномами.
Первые два подграфика показывают квадратичный полином и его отрицание, переключенное к интервалам [-8,-4] и [-4,0]. Полином
Третий подграфик показывает кусочный полином, созданный путем чередования этих двух квадратичных частей более чем четыре интервала. Вертикальные линии добавлены, чтобы показать точки, где полиномы встречаются.
subplot(2,2,1) cc = [-1/4 1 0]; pp1 = mkpp([-8 -4],cc); xx1 = -8:0.1:-4; plot(xx1,ppval(pp1,xx1),'k-') subplot(2,2,2) pp2 = mkpp([-4 0],-cc); xx2 = -4:0.1:0; plot(xx2,ppval(pp2,xx2),'k-') subplot(2,1,2) pp = mkpp([-8 -4 0 4 8],[cc;-cc;cc;-cc]); xx = -8:0.1:8; plot(xx,ppval(pp,xx),'k-') hold on line([-4 -4],ylim,'LineStyle','--') line([0 0],ylim,'LineStyle','--') line([4 4],ylim,'LineStyle','--') hold off

breaks — Точки остановаТочки останова, заданные как вектор длины L+1 со строго увеличивающимися элементами, которые представляют запуск и конец каждого L интервалы.
Типы данных: single | double
coefs — Полиномиальные коэффициентыПолиномиальные коэффициенты, заданные как L- k матрица с ith строкой coefs(i,:) содержа локальные коэффициенты порядка k полином на ith интервале, [breaks(i), breaks(i+1)]. Другими словами, полиномом является coefs(i,1)*(X-breaks(i))^(k-1) + coefs(i,2)*(X-breaks(i))^(k-2) + ... + coefs(i,k-1)*(X-breaks(i)) + coefs(i,k).
Типы данных: single | double
d — РазмерностьРазмерность, заданная как скаляр или вектор целых чисел. Задайте d показать, что кусочный полином имеет содействующие значения размера d.
Типы данных: single | double
pp — Кусочный полиномКусочный полином, возвращенный как структура. Используйте эту структуру с ppval функция, чтобы оценить кусочный полином в одной или нескольких точках запроса. Структура имеет эти поля.
| Поле | Описание |
|---|---|
form |
|
breaks | Вектор длины |
coefs |
|
pieces | Количество частей, |
order | Порядок полиномов |
dim | Размерность цели |
Начиная с полиномиальных коэффициентов в coefs локальные коэффициенты для каждого интервала, необходимо вычесть более низкую конечную точку соответствующего интервала узла, чтобы использовать коэффициенты в обычном полиномиальном уравнении. Другими словами, для коэффициентов [a,b,c,d] на интервале [x1,x2], соответствующий полином
Указания и ограничения по применению:
Структура output pp отличается от pp структура в MATLAB®. В MATLAB, ppval не может использовать pp структура из генератора кода. Для генерации кода, ppval не может использовать pp структура создается MATLAB. unmkpp может использовать pp MATLAB структура для генерации кода.
Создать pp MATLAB структура от pp структура создается генератором кода:
В генерации кода используйте unmkpp возвратить полиномиальные детали в MATLAB.
В MATLAB используйте mkpp создать pp структура.
Если вы не обеспечиваете d, затем coefs должно быть двумерным и иметь постоянное число столбцов. В этом случае количество столбцов является порядком.
Задавать кусочный постоянный полином, coefs должен быть вектор-столбец или d должен иметь по крайней мере два элемента.
Если вы обеспечиваете d и d 1, затем d должна быть константа. В противном случае, если вход к ppval является нескалярным, затем форма выхода ppval может отличаться от ppval в MATLAB.
Если вы обеспечиваете d, затем это должно иметь фиксированную длину. Один из следующих наборов операторов должен быть верным:
Предположим тот m = length(d) и npieces = length(breaks) - 1.
size(coefs,j) = d(j) size(coefs,m+1) = npieces size(coefs,m+2) = order
j = 1,2..., m. Размерность m+2 должна быть фиксированная длина.Предположим тот m = length(d) и npieces = length(breaks) - 1.
size(coefs,1) = prod(d)*npieces size(coefs,2) = order
Если вы не обеспечиваете d, затем следующие операторы должны быть верными:
Предположим тот m = length(d) и npieces = length(breaks) - 1.
size(coefs,1) = prod(d)*npieces size(coefs,2) = order
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.