Make piecewise polynomial - MATLAB mkpp - MathWorks América Latina (2024)

Make piecewise polynomial

collapse all in page

Syntax

pp = mkpp(breaks,coefs)

pp = mkpp(breaks,coefs,d)

Description

example

pp = mkpp(breaks,coefs) buildsa piecewise polynomial pp from its breaks and coefficients.Use ppval to evaluate the piecewisepolynomial at specific points, or unmkpp toextract details about the piecewise polynomial.

pp = mkpp(breaks,coefs,d) specifiesthat the piecewise polynomial is vector-valued, such that the valueof each of its coefficients is a vector of length d.

Examples

collapse all

Create Piecewise Polynomial with Polynomials of Several Degrees

Open Live Script

Create a piecewise polynomial that has a cubic polynomial in the interval [0,4], a quadratic polynomial in the interval [4,10], and a quartic polynomial in the interval [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

Evaluate the piecewise polynomial at many points in the interval [0,15] and plot the results. Plot vertical dashed lines at the break points where the polynomials meet.

xq = 0:0.01:15;plot(xq,ppval(pp,xq))line([4 4],ylim,'LineStyle','--','Color','k')line([10 10],ylim,'LineStyle','--','Color','k')

Make piecewise polynomial - MATLAB mkpp- MathWorks América Latina (1)

Create Piecewise Polynomial with Repeated Pieces

Open Live Script

Create and plot a piecewise polynomial with four intervals that alternate between two quadratic polynomials.

The first two subplots show a quadratic polynomial and its negation shifted to the intervals [-8,-4] and [-4,0]. The polynomial is

1-(x2-1)2=-x24+x.

The third subplot shows a piecewise polynomial constructed by alternating these two quadratic pieces over four intervals. Vertical lines are added to show the points where the polynomials meet.

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 online([-4 -4],ylim,'LineStyle','--')line([0 0],ylim,'LineStyle','--')line([4 4],ylim,'LineStyle','--')hold off

Make piecewise polynomial - MATLAB mkpp- MathWorks América Latina (2)

Input Arguments

collapse all

breaksBreak points
vector

Break points, specified as a vector of length L+1 withstrictly increasing elements that represent the start and end of eachof L intervals.

Data Types: single | double

coefsPolynomial coefficients
matrix

Polynomial coefficients, specified as an L-by-k matrixwith the ith row coefs(i,:) containing the localcoefficients of an order k polynomial on the ithinterval, [breaks(i), breaks(i+1)]. In other words,the polynomial is 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).

Data Types: single | double

dDimension
scalar | vector

Dimension, specified as a scalar or vector of integers. Specify d tosignify that the piecewise polynomial has coefficient values of size d.

Data Types: single | double

Output Arguments

collapse all

pp — Piecewise polynomial
structure

Piecewise polynomial, returned as a structure. Use this structurewith the ppval function toevaluate the piecewise polynomial at one or more query points. Thestructure has these fields.

FieldDescription
form

'pp' for piecewise polynomial

breaks

Vector of length L+1 with strictlyincreasing elements that represent the start and end of each of Lintervals

coefs

L-by-k matrix witheach rowcoefs(i,:)containing the localcoefficients of an orderk polynomial on theithinterval,[breaks(i),breaks(i+1)]

pieces

Number of pieces, L

order

Order of the polynomials

dim

Dimensionality of target

Since the polynomial coefficients in coefs arelocal coefficients for each interval, you must subtract the lowerendpoint of the corresponding knot interval to use the coefficientsin a conventional polynomial equation. In other words, for the coefficients [a,b,c,d] onthe interval [x1,x2], the corresponding polynomialis

f(x)=a(xx1)3+b(xx1)2+c(xx1)+d.

Extended Capabilities

Version History

Introduced before R2006a

See Also

ppval | spline | pchip | unmkpp

Comando de MATLAB

Ha hecho clic en un enlace que corresponde a este comando de MATLAB:

 

Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.

Make piecewise polynomial - MATLAB mkpp- MathWorks América Latina (3)

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:

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
    • Deutsch
    • English
    • Français
  • United Kingdom (English)

Asia Pacific

Contact your local office

Make piecewise polynomial - MATLAB mkpp
- MathWorks América Latina (2024)
Top Articles
Latest Posts
Article information

Author: Jerrold Considine

Last Updated:

Views: 6301

Rating: 4.8 / 5 (58 voted)

Reviews: 89% of readers found this page helpful

Author information

Name: Jerrold Considine

Birthday: 1993-11-03

Address: Suite 447 3463 Marybelle Circles, New Marlin, AL 20765

Phone: +5816749283868

Job: Sales Executive

Hobby: Air sports, Sand art, Electronics, LARPing, Baseball, Book restoration, Puzzles

Introduction: My name is Jerrold Considine, I am a combative, cheerful, encouraging, happy, enthusiastic, funny, kind person who loves writing and wants to share my knowledge and understanding with you.