ppval
计算分段多项式
说明
示例
创建包含多阶多项式的分段多项式
创建一个分段多项式,它在区间 [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
输入参数
输出参量
v
— 查询点处的分段多项式值
向量 | 矩阵 | 数组
查询点处的分段多项式值,以向量、矩阵或数组形式返回。
如果 pp
具有 [d1,..,dr]
值系数(非标量系数值),则:
当
xq
是长度为N
的向量时,v
的大小为[d1,...,dr,N]
,并且v(:,...,:,j)
是在xq(j)
处的值。当
xq
的大小为[N1,...,Ns]
时,v
的大小为[d1,...,dr,N1,...,Ns]
,并且v(:,...,:, j1,...,js)
是在xq(j1,...,js)
处的值。
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
用法说明和限制:
当以下两个语句都为 true 时,输出
v
的大小与 MATLAB® 不匹配:输入
xx
是可变大小数组,而不是可变长度向量。xx
在运行时变为行向量。
在这种情况下,代码生成器不会删除单一维度。但 MATLAB 可能会删除单一维度。
例如,假设
xx
是一个 :4×:5 数组(第一个维度是上界为 4 的可变大小,第二个维度是上界为 5 的可变大小)。假设ppval(pp,0)
返回一个 2×3 固定大小数组。v
的大小为 2×3×:4×:5。在运行时,假设 size(x,1) =1,size(x,2) = 5。在生成的代码中,size(v) 为 [2,3,1,5]。在 MATLAB 中,大小为 [2,3,5]。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
此函数完全支持 GPU 数组。有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)