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: [3×5 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

输入参数
输出参量
查询点处的分段多项式值,以向量、矩阵或数组形式返回。
如果 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)处的值。
扩展功能
用法说明和限制:
当以下两个语句都为 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 函数。
ppval 函数完全支持 GPU 数组。要在 GPU 上运行该函数,请将输入数据指定为 gpuArray (Parallel Computing Toolbox)。有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- 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)