~ubuntu-branches/debian/squeeze/maxima/squeeze

« back to all changes in this revision

Viewing changes to doc/info/es/interpol.texi

  • Committer: Bazaar Package Importer
  • Author(s): Camm Maguire
  • Date: 2006-10-18 14:52:42 UTC
  • mto: (1.1.5 upstream)
  • mto: This revision was merged to the branch mainline in revision 4.
  • Revision ID: james.westby@ubuntu.com-20061018145242-vzyrm5hmxr8kiosf
ImportĀ upstreamĀ versionĀ 5.10.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
@c english version 1.1
 
2
@menu
 
3
* Introducci@'on a interpol::
 
4
* Definiciones para interpol::
 
5
@end menu
 
6
 
 
7
@node Introducci@'on a interpol, Definiciones para interpol, interpol, interpol
 
8
@section Introducci@'on a interpol
 
9
 
 
10
El paquete @code{interpol} desarrolla los m@'etodos de interpolaci@'on polin@'omica de Lagrange, lineal y de @i{splines} c@'ubicos.
 
11
 
 
12
 
 
13
Para comentarios, fallos o sugerencias, contactar con @var{'mario ARROBA edu PUNTO xunta PUNTO es'}.
 
14
 
 
15
 
 
16
 
 
17
@node Definiciones para interpol,  , Introducci@'on a interpol, interpol
 
18
@section Definiciones para interpol
 
19
 
 
20
 
 
21
@deffn {Funci@'on} lagrange (@var{points})
 
22
@deffnx {Funci@'on} lagrange (@var{points}, @var{option})
 
23
Calcula el polinomio de interpolaci@'on por el m@'etodo de Lagrange. El argumento @var{points} debe ser:
 
24
 
 
25
@itemize @bullet
 
26
@item
 
27
una matriz de dos columnas, @code{p:matrix([2,4],[5,6],[9,3])},
 
28
@item
 
29
una lista de pares de n@'umeros, @code{p: [[2,4],[5,6],[9,3]]},
 
30
@item
 
31
una lista de n@'umeros, @code{p: [4,6,3]}, en cuyo caso las abscisas se asignar@'an autom@'aticamente a 1, 2, 3, etc.
 
32
@end itemize
 
33
 
 
34
En los dos primeros casos los pares se ordenan con respecto a la primera coordenada antes de proceder a los c@'alculos.
 
35
 
 
36
Mediante el argumento @var{option} es posible seleccionar el nombre de la variable independiente, que por defecto es @code{'x}; para definir otra, escr@'{@dotless{i}}base algo como @code{varname='z}.
 
37
 
 
38
Ejemplos:
 
39
 
 
40
@example
 
41
(%i1) load("interpol")$
 
42
(%i2) p:[[7,2],[8,2],[1,5],[3,2],[6,7]]$
 
43
(%i3) lagrange(p);
 
44
            4         3         2
 
45
        73 x  - 1402 x  + 8957 x  - 21152 x + 15624
 
46
(%o3)   -------------------------------------------
 
47
                            420
 
48
(%i4) f(x):=''%;
 
49
                  4         3         2
 
50
              73 x  - 1402 x  + 8957 x  - 21152 x + 15624
 
51
(%o4) f(x) := -------------------------------------------
 
52
                                  420
 
53
(%i5) /* Evaluate the polynomial at some points */
 
54
      map(f,[2.3,5/7,%pi]);
 
55
                            919062
 
56
(%o5) [- 1.567535000000005, ------,
 
57
                            84035
 
58
              4           3           2
 
59
        73 %pi  - 1402 %pi  + 8957 %pi  - 21152 %pi + 15624
 
60
        ---------------------------------------------------]
 
61
                                420
 
62
(%i6) %,numer;
 
63
(%o6) [- 1.567535000000005, 10.9366573451538,
 
64
                                           2.89319655125692]
 
65
(%i7) /* Plot the polynomial together with points */
 
66
      plot2d([f(x),[discrete,p]],[x,0,10],
 
67
           [gnuplot_curve_styles,
 
68
                 ["with lines","with points pointsize 3"]])$
 
69
(%i8) /* Change variable name */
 
70
      lagrange(p, varname=w);
 
71
            4         3         2
 
72
        73 w  - 1402 w  + 8957 w  - 21152 w + 15624
 
73
(%o8)  -------------------------------------------
 
74
                            420
 
75
@end example
 
76
 
 
77
@end deffn
 
78
 
 
79
 
 
80
@deffn {Funci@'on} charfun2 (@var{x}, @var{a}, @var{b})
 
81
Devuelve @code{true} si el n@'umero @var{x} pertenece al intervalo @math{[a, b)}, y @code{false} en caso contrario.
 
82
@end deffn
 
83
 
 
84
 
 
85
@deffn {Funci@'on} linearinterpol (@var{points})
 
86
@deffnx {Funci@'on} linearinterpol (@var{points}, @var{option})
 
87
Calcula rectas de interpolaci@'on. El argumento @var{points} debe ser:
 
88
 
 
89
@itemize @bullet
 
90
@item
 
91
una matriz de dos columnas, @code{p:matrix([2,4],[5,6],[9,3])},
 
92
@item
 
93
una lista de pares de n@'umeros, @code{p: [[2,4],[5,6],[9,3]]},
 
94
@item
 
95
una lista de n@'umeros, @code{p: [4,6,3]}, en cuyo caso las abscisas se asignar@'an autom@'aticamente a 1, 2, 3, etc.
 
96
@end itemize
 
97
 
 
98
En los dos primeros casos los pares se ordenan con respecto a la primera coordenada antes de proceder a los c@'alculos.
 
99
 
 
100
Mediante el argumento @var{option} es posible seleccionar el nombre de la variable independiente, que por defecto es @code{'x}; para definir otra, escr@'{@dotless{i}}base algo como @code{varname='z}.
 
101
 
 
102
Ejemplos:
 
103
 
 
104
@example
 
105
(%i1) load("interpol")$
 
106
(%i2) p: matrix([7,2],[8,3],[1,5],[3,2],[6,7])$
 
107
(%i3) linearinterpol(p);
 
108
(%o3) - ((9 x - 39) charfun2(x, minf, 3)
 
109
 + (30 - 6 x) charfun2(x, 7, inf)
 
110
 + (30 x - 222) charfun2(x, 6, 7)
 
111
 + (18 - 10 x) charfun2(x, 3, 6))/6
 
112
(%i4) f(x):=''%;
 
113
(%o4) f(x) := - ((9 x - 39) charfun2(x, minf, 3)
 
114
 + (30 - 6 x) charfun2(x, 7, inf)
 
115
 + (30 x - 222) charfun2(x, 6, 7)
 
116
 + (18 - 10 x) charfun2(x, 3, 6))/6
 
117
(%i5)  /* Evaluate the polynomial at some points */
 
118
       map(f,[7.3,25/7,%pi]);
 
119
                        62    18 - 10 %pi
 
120
(%o5)            [2.3, --, - -----------]
 
121
                        21         6
 
122
(%i6) %,numer;
 
123
(%o6)  [2.3, 2.952380952380953, 2.235987755982988]
 
124
(%i7)  /* Plot the polynomial together with points */
 
125
       plot2d(['(f(x)),[discrete,args(p)]],[x,-5,20],
 
126
           [gnuplot_curve_styles,
 
127
                 ["with lines","with points pointsize 3"]])$
 
128
(%i8)  /* Change variable name */
 
129
       linearinterpol(p, varname='s);
 
130
(%o8) - ((9 s - 39) charfun2(s, minf, 3)
 
131
 + (30 - 6 s) charfun2(s, 7, inf)
 
132
 + (30 s - 222) charfun2(s, 6, 7)
 
133
 + (18 - 10 s) charfun2(s, 3, 6))/6
 
134
@end example
 
135
 
 
136
@end deffn
 
137
 
 
138
 
 
139
 
 
140
@deffn {Funci@'on} cspline (@var{points})
 
141
@deffnx {Funci@'on} cspline (@var{points}, @var{option1}, @var{option2}, ...)
 
142
Calcula el polinomio de interpolaci@'on por el m@'etodo de los @i{splines} c@'ubicos. El argumento @var{points} debe ser:
 
143
 
 
144
@itemize @bullet
 
145
@item
 
146
una matriz de dos columnas, @code{p:matrix([2,4],[5,6],[9,3])},
 
147
@item
 
148
una lista de pares de n@'umeros, @code{p: [[2,4],[5,6],[9,3]]},
 
149
@item
 
150
una lista de n@'umeros, @code{p: [4,6,3]}, en cuyo caso las abscisas se asignar@'an autom@'aticamente a 1, 2, 3, etc.
 
151
@end itemize
 
152
 
 
153
En los dos primeros casos los pares se ordenan con respecto a la primera coordenada antes de proceder a los c@'alculos.
 
154
 
 
155
Esta funci@'on dispone de tres opciones para acomodarse a necesidades concretas:
 
156
 
 
157
@itemize @bullet
 
158
@item
 
159
@code{'d1}, por defecto @code{'unknown}, es la primera derivada en @math{x_1}; si toma el valor @code{'unknown}, la segunda derivada en @math{x_1} se iguala a 0 (@i{spline} c@'ubico natural); en caso de tomar un valor num@'erico, la segunda derivada se calcula en base a este n@'umero.
 
160
 
 
161
@item
 
162
@code{'dn}, por defecto @code{'unknown}, es la primera derivada en @math{x_n}; si toma el valor @code{'unknown}, la segunda derivada en @math{x_n} se iguala a 0 (@i{spline} c@'ubico natural); en caso de tomar un valor num@'erico, la segunda derivada se calcula en base a este n@'umero.
 
163
 
 
164
@item
 
165
@code{'varname}, por defecto @code{'x}, es el nombre de la variable independiente.
 
166
@end itemize
 
167
 
 
168
Ejemplos:
 
169
 
 
170
@example
 
171
(%i1) load("interpol")$
 
172
(%i2) p:[[7,2],[8,2],[1,5],[3,2],[6,7]]$
 
173
(%i3) /* Unknown first derivatives at the extremes
 
174
         is equivalent to natural cubic splines */
 
175
      cspline(p);
 
176
              3          2
 
177
(%o3) ((3477 x  - 10431 x  - 18273 x + 74547)
 
178
                                  3           2
 
179
 charfun2(x, minf, 3) + (- 15522 x  + 372528 x  - 2964702 x
 
180
 + 7842816) charfun2(x, 7, inf)
 
181
           3           2
 
182
 + (28290 x  - 547524 x  + 3475662 x - 7184700)
 
183
                              3          2
 
184
 charfun2(x, 6, 7) + (- 6574 x  + 80028 x  - 289650 x
 
185
 + 345924) charfun2(x, 3, 6))/9864
 
186
(%i4) f(x):=''%$
 
187
(%i5) /* Some evaluations */
 
188
      map(f,[2.3,5/7,%pi]), numer;
 
189
(%o5) [1.991460766423358, 5.823200187269904,
 
190
                                          2.227405312429501]
 
191
(%i6) /* Plotting interpolating function */
 
192
      plot2d(['(f(x)),[discrete,p]],[x,0,10],
 
193
          [gnuplot_curve_styles,
 
194
               ["with lines","with points pointsize 3"]])$
 
195
(%i7) /* New call, but giving values at the derivatives */
 
196
      cspline(p,d1=0,dn=0);
 
197
               3           2
 
198
(%o7) ((17541 x  - 102933 x  + 153243 x + 33669)
 
199
                                  3            2
 
200
 charfun2(x, minf, 3) + (- 55692 x  + 1280916 x  - 9801792 x
 
201
 + 24990624) charfun2(x, 7, inf)
 
202
           3            2
 
203
 + (65556 x  - 1265292 x  + 8021664 x - 16597440)
 
204
                               3           2
 
205
 charfun2(x, 6, 7) + (- 15580 x  + 195156 x  - 741024 x
 
206
 + 927936) charfun2(x, 3, 6))/20304
 
207
(%i8) /* Defining new interpolating function */
 
208
      g(x):=''%$
 
209
(%i9) /* Plotting both functions together */
 
210
      plot2d(['(f(x)),'(g(x)),[discrete,p]],[x,0,10],
 
211
           [gnuplot_curve_styles,
 
212
              ["with lines","with lines","with points pointsize 3"]])$
 
213
@end example
 
214
 
 
215
@end deffn