Professional Documents
Culture Documents
PDF Matlab R2020A Symbolic Math Toolbox User S Guide Mathworks Ebook Full Chapter
PDF Matlab R2020A Symbolic Math Toolbox User S Guide Mathworks Ebook Full Chapter
https://textbookfull.com/product/matlab-econometrics-toolbox-
user-s-guide-the-mathworks/
https://textbookfull.com/product/matlab-bioinformatics-toolbox-
user-s-guide-the-mathworks/
https://textbookfull.com/product/matlab-mapping-toolbox-user-s-
guide-the-mathworks/
https://textbookfull.com/product/matlab-optimization-toolbox-
user-s-guide-the-mathworks/
MATLAB Trading Toolbox User s Guide The Mathworks
https://textbookfull.com/product/matlab-trading-toolbox-user-s-
guide-the-mathworks/
https://textbookfull.com/product/matlab-computer-vision-toolbox-
user-s-guide-the-mathworks/
https://textbookfull.com/product/matlab-curve-fitting-toolbox-
user-s-guide-the-mathworks/
https://textbookfull.com/product/matlab-fuzzy-logic-toolbox-user-
s-guide-the-mathworks/
https://textbookfull.com/product/matlab-global-optimization-
toolbox-user-s-guide-the-mathworks/
Symbolic Math Toolbox™
User's Guide
R2020a
How to Contact MathWorks
Phone: 508-647-7000
Getting Started
1
Symbolic Math Toolbox Product Description . . . . . . . . . . . . . . . . . . . . . . . 1-2
Key Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2
v
Copy and Paste Symbolic Output in Live Editor . . . . . . . . . . . . . . . . . . . . 2-15
Differentiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-46
Derivatives of Expressions with Several Variables . . . . . . . . . . . . . . . . . . 2-47
More Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-48
Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-56
One-Sided Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-56
Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-59
Integration with Real Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-61
Integration with Complex Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-62
High-Precision Numerical Integration Using Variable-Precision Arithmetic
..................................................... 2-63
vi Contents
Simplify Symbolic Expressions Using Live Editor Task . . . . . . . . . . . . . . 2-94
vii
Symbolic Linear Algebra Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-141
Variable-Precision Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-142
Symbolic Investigation of Singular Value . . . . . . . . . . . . . . . . . . . . . . . 2-143
Eigenvalues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-145
viii Contents
Solve Differential Algebraic Equations (DAEs) . . . . . . . . . . . . . . . . . . . . 2-194
ix
Generate MATLAB Function Blocks from Symbolic Expressions . . . . . 2-270
Generate and Edit a Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-270
Control the Order of Input Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-270
Name the Output Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-270
Functions
4
x Contents
1
Getting Started
Symbolic Math Toolbox provides functions for solving, plotting, and manipulating symbolic math
equations. You can create, run, and share symbolic math code using the MATLAB Live Editor. The
toolbox provides functions in common mathematical areas such as calculus, linear algebra, algebraic
and ordinary differential equations, equation simplification, and equation manipulation.
Symbolic Math Toolbox lets you analytically perform differentiation, integration, simplification,
transforms, and equation solving. You can perform dimensional computations and conversions using
SI and US unit systems. Your computations can be performed either analytically or using variable-
precision arithmetic, with the results displayed in mathematical typeset.
You can share your symbolic work with other MATLAB users as live scripts or convert them to HTML
or PDF for publication. You can generate MATLAB functions, Simulink® function blocks, and
Simscape™ equations directly from symbolic expressions.
Key Features
• Symbolic integration, differentiation, transforms, and linear algebra
• Algebraic and ordinary differential equation (ODE) solvers
• Simplification and manipulation of symbolic expressions
• Unit systems for specifying, converting, and computing using SI, US, and custom unit systems
• Plotting of analytical functions in 2D and 3D
• Symbolic expression conversion to MATLAB, Simulink, Simscape, C, Fortran, and LaTeX code
• Variable-precision arithmetic
1-2
Create Symbolic Numbers, Variables, and Expressions
Create a symbolic number by using sym and compare it to the same floating-point number.
sym(1/3)
1/3
ans =
1/3
ans =
0.3333
The symbolic number is represented in exact rational form, while the floating-point number is a
decimal approximation. The symbolic result is not indented, while the standard MATLAB result is
indented.
Calculations on symbolic numbers are exact. Demonstrate this exactness by finding sin(pi)
symbolically and numerically. The symbolic result is exact, while the numeric result is an
approximation.
sin(sym(pi))
sin(pi)
ans =
0
ans =
1.2246e-16
To learn more about symbolic representation of numbers, see “Numeric to Symbolic Conversion” on
page 2-136.
• sym – Create numbered symbolic variables or create symbolic variables in MATLAB functions.
• syms – Create fresh symbolic variables for interactive symbolic workflows, that is, for symbolic
variable creation at the MATLAB command line or in MATLAB live scripts. A fresh symbolic
variable does not have any assumptions.
The syms command is shorthand for the sym syntax, but the two functions handle assumptions
differently. For more details, see “Reuse Names of Symbolic Objects” on page 1-5.
Create the symbolic variables x and y using syms and sym, respectively.
syms x
y = sym('y')
1-3
1 Getting Started
The first command creates a symbolic variable x in the MATLAB workspace with the value x assigned
to the variable x. The second command creates a symbolic variable y with the value y.
With syms, you can create multiple variables in one command. Create the variables a, b, and c.
syms a b c
If you want to create a MATLAB array of numbered symbolic variables, the syms syntax is
inconvenient. Therefore, use sym instead to create an array of many numbered symbolic variables.
Clear the workspace. Create a row vector containing the symbolic variables a1, ..., a20 and
assign it to the MATLAB variable A. Display the variable in the MATLAB workspace.
clear all
A = sym('a', [1 20])
whos
A =
[ a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,...
a11, a12, a13, a14, a15, a16, a17, a18, a19, a20]
A 1x20 8 sym
By combining sym and syms, you can create many fresh symbolic variables with corresponding
variables name in the MATLAB workspace.
Clear the workspace. Create the fresh symbolic variables a1, ..., a10 and assign them the
MATLAB variable names a1, ..., a10, respectively. Display the variables in the MATLAB
workspace.
clear all
syms(sym('a', [1 10]))
whos
a1 1x1 8 sym
a10 1x1 8 sym
a2 1x1 8 sym
a3 1x1 8 sym
a4 1x1 8 sym
a5 1x1 8 sym
a6 1x1 8 sym
a7 1x1 8 sym
a8 1x1 8 sym
a9 1x1 8 sym
The MATLAB workspace contains 10 MATLAB variables that are symbolic variables.
The syms command is a convenient shorthand for the sym syntax, and its typical use is to create fresh
symbolic variables for interactive symbolic workflows. Use the sym syntax to create the following:
1-4
Create Symbolic Numbers, Variables, and Expressions
1+ 5
φ=
2
The command
phi = (1 + sqrt(sym(5)))/2;
achieves this goal. Now you can perform various mathematical operations on phi. For example,
f = phi^2 - phi - 1
returns
f =
(5^(1/2)/2 + 1/2)^2 - 5^(1/2)/2 - 3/2
Now suppose you want to study the quadratic function f = ax2 + bx + c. First, create the symbolic
variables a, b, c, and x:
syms a b c x
Tip To create a symbolic number, use the sym command. Do not use the syms function to create a
symbolic expression that is a constant. For example, to create the expression whose value is 5, enter
f = sym(5). The command f = 5 does not define f as a symbolic expression.
returns
f =
a + b
1-5
1 Getting Started
syms f
f
f =
f
You can use the syms command to clear variables of definitions that you previously assigned to them
in your MATLAB session. syms clears the assumptions of the variables: complex, real, integer, and
positive. These assumptions are stored separately from the symbolic object. However, recreating a
variable using sym does not clear its assumptions. For more information, see “Delete Symbolic
Objects and Their Assumptions” on page 1-25.
See Also
More About
• “Create Symbolic Functions” on page 1-7
• “Create Symbolic Matrices” on page 1-9
• “Choose syms or sym Function” on page 2-5
• “Perform Symbolic Computations” on page 1-11
• “Use Assumptions on Symbolic Variables” on page 1-24
1-6
Create Symbolic Functions
Create a symbolic function f with variables x and y by using syms. Creating f automatically creates
x and y.
syms f(x,y)
f(x,y) = x^2*y
f(x, y) =
x^2*y
f(3,2)
ans =
18
Symbolic functions accept array inputs. Calculate f for multiple values of x and y.
xVal = 1:5;
yVal = 3:7;
f(xVal,yVal)
ans =
[ 3, 16, 45, 96, 175]
You can differentiate symbolic functions, integrate or simplify them, substitute their arguments with
values, and perform other mathematical operations. For example, find the derivative of f(x,y) with
respect to x. The result dfx is also a symbolic function.
dfx = diff(f,x)
dfx(x,y) =
2*x*y
Calculate df(x,y) at x = y + 1.
dfx(y+1,y)
ans =
2*y*(y + 1)
If you are creating a constant function, such as f(x,y) = 1, you must first create f(x,y). If you do
not create f(x,y), then the assignment f(x,y) = 1 throws an error.
1-7
1 Getting Started
See Also
More About
• “Create Symbolic Numbers, Variables, and Expressions” on page 1-3
• “Create Symbolic Matrices” on page 1-9
• “Perform Symbolic Computations” on page 1-11
• “Use Assumptions on Symbolic Variables” on page 1-24
1-8
Create Symbolic Matrices
syms a b c
A = [a b c; c a b; b c a]
A =
[ a, b, c]
[ c, a, b]
[ b, c, a]
Since matrix A is circulant, the sum of elements over each row and each column is the same. Find the
sum of all the elements of the first row:
sum(A(1,:))
ans =
a + b + c
To check if the sum of the elements of the first row equals the sum of the elements of the second
column, use the isAlways function:
isAlways(sum(A(1,:)) == sum(A(:,2)))
ans =
logical
1
From this example, you can see that using symbolic objects is very similar to using regular MATLAB
numeric objects.
1-9
1 Getting Started
A = sym('A', [2 4])
A =
[ A1_1, A1_2, A1_3, A1_4]
[ A2_1, A2_2, A2_3, A2_4]
To control the format of the generated names of matrix elements, use %d in the first argument:
A = sym('A%d%d', [2 4])
A =
[ A11, A12, A13, A14]
[ A21, A22, A23, A24]
A = hilb(3)
A =
1.0000 0.5000 0.3333
0.5000 0.3333 0.2500
0.3333 0.2500 0.2000
By applying sym to A
A = sym(A)
you can obtain the precise symbolic form of the 3-by-3 Hilbert matrix:
A =
[ 1, 1/2, 1/3]
[ 1/2, 1/3, 1/4]
[ 1/3, 1/4, 1/5]
For more information on numeric to symbolic conversions, see “Numeric to Symbolic Conversion” on
page 2-136.
See Also
More About
• “Create Symbolic Numbers, Variables, and Expressions” on page 1-3
• “Create Symbolic Functions” on page 1-7
• “Perform Symbolic Computations” on page 1-11
• “Use Assumptions on Symbolic Variables” on page 1-24
1-10
Perform Symbolic Computations
In this section...
“Differentiate Symbolic Expressions” on page 1-11
“Integrate Symbolic Expressions” on page 1-12
“Solve Equations” on page 1-13
“Simplify Symbolic Expressions” on page 1-15
“Substitutions in Symbolic Expressions” on page 1-16
“Plot Symbolic Functions” on page 1-18
For in-depth information on taking symbolic derivatives see “Differentiation” on page 2-46.
To differentiate a symbolic expression, use the diff command. The following example illustrates how
to take a first derivative of a symbolic expression:
syms x
f = sin(x)^2;
diff(f)
ans =
2*cos(x)*sin(x)
Partial Derivatives
For multivariable expressions, you can specify the differentiation variable. If you do not specify any
variable, MATLAB chooses a default variable by its proximity to the letter x:
syms x y
f = sin(x)^2 + cos(y)^2;
diff(f)
ans =
2*cos(x)*sin(x)
For the complete set of rules MATLAB applies for choosing a default variable, see “Find a Default
Symbolic Variable” on page 2-3.
1-11
1 Getting Started
syms x y
f = sin(x)^2 + cos(y)^2;
diff(f, y)
ans =
-2*cos(y)*sin(y)
To take a second derivative of the symbolic expression f with respect to a variable y, enter:
syms x y
f = sin(x)^2 + cos(y)^2;
diff(f, y, 2)
ans =
2*sin(y)^2 - 2*cos(y)^2
You get the same result by taking derivative twice: diff(diff(f, y)). To take mixed derivatives,
use two differentiation commands. For example:
syms x y
f = sin(x)^2 + cos(y)^2;
diff(diff(f, y), x)
ans =
0
For in-depth information on the int command including integration with real and complex
parameters, see “Integration” on page 2-59.
Suppose you want to integrate a symbolic expression. The first step is to create the symbolic
expression:
syms x
f = sin(x)^2;
int(f)
ans =
x/2 - sin(2*x)/4
If the expression depends on multiple symbolic variables, you can designate a variable of integration.
If you do not specify any variable, MATLAB chooses a default variable by the proximity to the letter x:
1-12
Perform Symbolic Computations
syms x y n
f = x^n + y^n;
int(f)
ans =
x*y^n + (x*x^n)/(n + 1)
For the complete set of rules MATLAB applies for choosing a default variable, see “Find a Default
Symbolic Variable” on page 2-3.
You also can integrate the expression f = x^n + y^n with respect to y
syms x y n
f = x^n + y^n;
int(f, y)
ans =
x^n*y + (y*y^n)/(n + 1)
syms x y n
f = x^n + y^n;
int(f, n)
ans =
x^n/log(x) + y^n/log(y)
Definite Integrals
To find a definite integral, pass the limits of integration as the final two arguments of the int
function:
syms x y n
f = x^n + y^n;
int(f, 1, 10)
ans =
piecewise(n == -1, log(10) + 9/y, n ~= -1,...
(10*10^n - 1)/(n + 1) + 9*y^n)
syms x
int(sin(sinh(x)))
ans =
int(sin(sinh(x)), x)
Solve Equations
You can solve different types of symbolic equations including:
1-13
1 Getting Started
For in-depth information on solving symbolic equations including differential equations, see “Equation
Solving”.
Use the double equal sign (==) to define an equation. Then you can solve the equation by calling
the solve function. For example, solve this equation:
syms x
solve(x^3 - 6*x^2 == 6 - 11*x)
ans =
1
2
3
If you do not specify the right side of the equation, solve assumes that it is zero:
syms x
solve(x^3 - 6*x^2 + 11*x - 6)
ans =
1
2
3
If an equation contains several symbolic variables, you can specify a variable for which this equation
should be solved. For example, solve this multivariable equation with respect to y:
syms x y
solve(6*x^2 - 6*x^2*y + x*y^2 - x*y + y^3 - y^2 == 0, y)
ans =
1
2*x
-3*x
If you do not specify any variable, you get the solution of an equation for the alphabetically closest to
x variable. For the complete set of rules MATLAB applies for choosing a default variable see “Find a
Default Symbolic Variable” on page 2-3.
syms x y z
[x, y, z] = solve(z == 4*x, x == y, z == x^2 + y^2)
x =
0
2
y =
0
1-14
Perform Symbolic Computations
z =
0
8
phi = (1 + sqrt(sym(5)))/2;
f = phi^2 - phi - 1
returns
f =
(5^(1/2)/2 + 1/2)^2 - 5^(1/2)/2 - 3/2
simplify(f)
ans =
0
syms x
f = (x ^2- 1)*(x^4 + x^3 + x^2 + x + 1)*(x^4 - x^3 + x^2 - x + 1);
expand(f)
ans =
x^10 - 1
The factor simplification function shows the polynomial roots. If a polynomial cannot be factored
over the rational numbers, the output of the factor function is the standard polynomial form. For
example, to factor the third-order polynomial, enter:
syms x
g = x^3 + 6*x^2 + 11*x + 6;
factor(g)
ans =
[ x + 3, x + 2, x + 1]
The nested (Horner) representation of a polynomial is the most efficient for numerical evaluations:
1-15
1 Getting Started
syms x
h = x^5 + x^4 + x^3 + x^2 + x;
horner(h)
ans =
x*(x*(x*(x*(x + 1) + 1) + 1) + 1)
For a list of Symbolic Math Toolbox simplification functions, see “Choose Function to Rearrange
Expression” on page 2-104.
You can substitute a symbolic variable with a numeric value by using the subs function. For example,
evaluate the symbolic expression f at the point x = 1/3:
syms x
f = 2*x^2 - 3*x + 1;
subs(f, 1/3)
ans =
2/9
f =
2*x^2 - 3*x + 1
When your expression contains more than one variable, you can specify the variable for which you
want to make the substitution. For example, to substitute the value x = 3 in the symbolic expression
syms x y
f = x^2*y + 5*x*sqrt(y);
subs(f, x, 3)
ans =
9*y + 15*y^(1/2)
You also can substitute one symbolic variable for another symbolic variable. For example to replace
the variable y with the variable x, enter
subs(f, y, x)
ans =
x^3 + 5*x^(3/2)
1-16
Perform Symbolic Computations
You can also substitute a matrix into a symbolic polynomial with numeric coefficients. There are two
ways to substitute a matrix into a polynomial: element by element and according to matrix
multiplication rules.
Element-by-Element Substitution
syms x
f = x^3 - 15*x^2 - 24*x + 350;
A = [1 2 3; 4 5 6];
subs(f,A)
ans =
[ 312, 250, 170]
[ 78, -20, -118]
If you want to substitute a matrix into a polynomial using standard matrix multiplication rules, a
matrix must be square. For example, you can substitute the magic square A into a polynomial f:
syms x
f = x^3 - 15*x^2 - 24*x + 350;
2 Create the magic square matrix:
A = magic(3)
A =
8 1 6
3 5 7
4 9 2
3 Get a row vector containing the numeric coefficients of the polynomial f:
b = sym2poly(f)
b =
1 -15 -24 350
4 Substitute the magic square matrix A into the polynomial f. Matrix A replaces all occurrences of
x in the polynomial. The constant times the identity matrix eye(3) replaces the constant term of
f:
ans =
-10 0 0
0 -10 0
0 0 -10
The polyvalm command provides an easy way to obtain the same result:
polyvalm(b,A)
1-17
1 Getting Started
ans =
-10 0 0
0 -10 0
0 0 -10
To substitute a set of elements in a symbolic matrix, also use the subs command. Suppose you want
to replace some of the elements of a symbolic circulant matrix A
syms a b c
A = [a b c; c a b; b c a]
A =
[ a, b, c]
[ c, a, b]
[ b, c, a]
To replace the (2, 1) element of A with beta and the variable b throughout the matrix with variable
alpha, enter
alpha = sym('alpha');
beta = sym('beta');
A(2,1) = beta;
A = subs(A,b,alpha)
A =
[ a, alpha, c]
[ beta, a, alpha]
[ alpha, c, a]
For more information, see “Substitute Elements in Symbolic Matrices” on page 2-119.
Create a 2-D line plot by using fplot. Plot the expression x3 − 6x2 + 11x − 6.
syms x
f = x^3 - 6*x^2 + 11*x - 6;
fplot(f)
1-18
Perform Symbolic Computations
Add labels for the x- and y-axes. Generate the title by using texlabel(f). Show the grid by using
grid on. For details, see “Add Title and Axis Labels to Chart” (MATLAB).
xlabel('x')
ylabel('y')
title(texlabel(f))
grid on
1-19
Another random document with
no related content on Scribd:
sang. Pour quelles raisons accepterait-on plusieurs maîtres ? Caillou
se refuse à ce servage. Voilà pourquoi, cédant aussi à ses instincts
de gourmandise et de rapine, il dévore chaque jour, dans leur plus
verte jeunesse, les pommes et les poires de l’oncle, espoir d’une
récolte future. Comme il en jette dédaigneusement les débris à
travers les allées, il n’est pas difficile de constater le crime :
— Ne mens pas, Caillou ! Tu montes sur les arbres et tu cueilles
les fruits ?
— Oui, dit Caillou. Tout en haut des arbres, je monte !
Il avoue fièrement, considérant que c’est là un exploit digne de sa
propre estime et d’une inscription dans les ouvrages dont il se repaît.
On le gronde, on le punit, on lui fait jurer :
— Tu ne cueilleras plus de pommes, Caillou ? Promets !
— Je n’en cueillerai plus, dit Caillou, maussade.
— Ni de poires, ni de pêches ?
Caillou promet encore, et il a gardé ça de son ancienne
honnêteté : il sait tenir parole. Seulement, le lendemain, pêchers,
poiriers, pommiers présentent un spectacle hideux et sans
précédent dans l’histoire des désastres de l’arboriculture. Caillou n’a
plus « cueilli », cela ne fait aucun doute. Mais on ne lui avait pas
défendu de grimper aux arbres. Il a donc grimpé, comme d’habitude,
et mangé le plus de fruits qu’il a pu, en laissant les trognons
attachés à leur tige. Les arbres sont déshonorés, et Caillou
s’applaudit d’avoir à la fois respecté sa parole et acquis la certitude
qu’on parlera de lui à travers les siècles : car il est maintenant avide
de gloire, même de la plus détestable.
A l’aube suivante, l’oncle part pour la chasse. Il aime cette
distraction, il éprouve aussi le besoin de s’éloigner le plus souvent
possible de cette maison qui est sienne, devenue pleine d’une
agitation choquante et de drames intimes. Il siffle son chien, et
Caillou demande d’un air innocent :
— Tu t’en vas, mon oncle ?
Mais le chien, dès qu’il a vu Caillou, fait un bond d’épouvante, et
s’enfuit, s’enfuit à l’autre bout du pays, pour échapper à son
persécuteur. Car Caillou est son bourreau ; Caillou, pour satisfaire
ses instincts de primitif, développés par ses lectures, en a fait parfois
un lion, parfois un ours, parfois un loup. Il l’a pris au piège, il l’a tué
dans des combats tumultueux, il l’a ramené dans son antre de
Robinson victorieux, lié aux quatre pattes, il l’a traîné sur le gravier
rude comme un cadavre pantelant ; et le bon chien s’est changé en
une pauvre bête apeurée qui n’a plus confiance dans la bonté des
hommes, qui sait qu’ils peuvent faire du mal quand on ne leur fait
rien. Caillou ne traiterait pas de la même façon Jupiter, le chat, parce
que Jupiter a des griffes. Mais il l’utilise cependant à sa manière, il le
transforme en un tigre redoutable en l’élevant trente fois par jour à la
hauteur de la cage du serin. Et le serin, le cœur battant, les plumes
ébouriffées à la vue de l’ennemi héréditaire, se jette contre les
barreaux de la cage, s’y brise le bec, s’y écorche les pattes, en perd
le boire et le manger.
C’est ainsi que Caillou fait « des expériences » et désorganise
l’intérieur pacifique, ordonné, solennel, de l’oncle Jules. Et plus il est
admonesté, morigéné, châtié, plus il se considère comme une
victime des puissances, plus il se pénètre de l’idée, puisée dans une
littérature qui l’abuse, qu’il n’est pas comme les autres, qu’il a le droit
de se venger, qu’il ne se venge pas assez, et que ses malheurs sont
dignes d’une éternelle mémoire. Il est devenu un romantique, et
comme tous les romantiques, on ne peut même plus le prendre par
les sentiments : les duretés qu’il subit légitiment à ses yeux tous les
actes de révolte.
— Songe à la passion de Jésus-Christ ! lui dit un jour
imprudemment sa mère.
— Ça n’a duré que trois jours, répond Caillou. Et moi, voilà trois
ans qu’on m’embête !
Voilà trois ans qu’il est le plus heureux petit garçon du monde,
mais il se croirait déshonoré de l’admettre. Il n’y a plus qu’à
l’emmener, le maître de la maison n’en peut plus. Enfin voilà ses
hôtes partis, l’oncle respire. Mais la précieuse cuisinière vient lui
rendre son tablier.
— Je ne veux plus rester dans cette maison, dit-elle, on n’y a pas
d’égards pour moi : monsieur Caillou, avant de partir, a fourré des
colimaçons plein mon lit !
Et elle ajoute :
— Je dois dire aussi à monsieur que son serin est mort.
— Mort ! fait l’oncle. Et de quoi ?
— Je n’en sais rien. De peur peut-être !
C’est ainsi que le pauvre oncle reste seul dans sa maison
dévastée, sans cuisinière, sans chien, sans canari. La jeunesse a
passé là comme une passion ; elle n’a rien laissé derrière elle que
des ruines. Et l’oncle se sent décidément très vieux, très fini, tout à
fait incapable de s’accoutumer à ceux qui n’ont pas son âge ; il
songe amèrement qu’il ne pardonnera jamais à Caillou. Il est bien
vieux en effet, puisqu’il a oublié ce que c’est que l’âge ingrat des
petits garçons : celui auquel ils commencent à s’opposer, par la
révolte, et pour prendre conscience de leur personnalité, à un
monde dont ils se font une idée aussi intolérable qu’elle est fausse.
FIN
TABLE
PREMIÈRE RENCONTRE 1
CAILLOU ET LES FEMMES 19
LES CHIENS ET LA GLOIRE 51
A LA CAMPAGNE 63
SA PUDEUR 81
LES AMIS DE CAILLOU 95
LE CIRQUE 133
LA GOURMANDISE 143
L’ŒUF DE CHEVAL 153
CAILLOU ET SON PÈRE 165
DU SENTIMENT DE LA PROPRIÉTÉ 175
LE MYSTÈRE 187
L’OPÉRATION 217
L’AUBE DE L’AGE INGRAT 229
Updated editions will replace the previous one—the old editions will
be renamed.
1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside the
United States, check the laws of your country in addition to the terms
of this agreement before downloading, copying, displaying,
performing, distributing or creating derivative works based on this
work or any other Project Gutenberg™ work. The Foundation makes
no representations concerning the copyright status of any work in
any country other than the United States.
• You pay a royalty fee of 20% of the gross profits you derive from
the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
about donations to the Project Gutenberg Literary Archive
Foundation.”
• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.
1.F.
1.F.4. Except for the limited right of replacement or refund set forth in
paragraph 1.F.3, this work is provided to you ‘AS-IS’, WITH NO
OTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.
Please check the Project Gutenberg web pages for current donation
methods and addresses. Donations are accepted in a number of
other ways including checks, online payments and credit card
donations. To donate, please visit: www.gutenberg.org/donate.
Most people start at our website which has the main PG search
facility: www.gutenberg.org.