Professional Documents
Culture Documents
! "
#$ ! %&'($) '
* *'
"
"
#
!
=
"
=
"
-#$
.#$
/#$
' +
0#$
!
!
( %
+ ( &
& ' *
"
1#$
2#$
&
-+'(
"
3#$
.#$
/#$
,-
5#$
-#$
&4'5+##+' 6+7+'( +
(!'" "! )
8#$
#$
$'
"
!"
&!+4'5+##+' 6(
!
. & ' +9
. & ' +9
+ % ## (
/0!-1
&
* &'(+ !* +
#
*-&'(+ !*-+###+
*
7&'(+ !*7+
+ !(
0#$
1#$
&
2#$
&
. "
3
3
(
(
&
(/ %
* *'+'% ##"+
=
&:
3#$
( " )
4
("
"
* *'+ -* *';+'% ##"+
=
=
"
&!+ % ## ( 6
8#$
.
5
" "
& ' ( 5
-5#$
- #$
&!+'% ##"+ (
!
='
7
!
( " )
8$
--#$
&'% + ' ( 9
-.#$
. &!+'% ##"+ (
( " )
-/#$
8$
-0#$ 2
7&
-1#$ .
&!+ +9(
-2#$ =
<
( +
3
>
#
( )" ( )
>
?
+,
'
# ?
,
!&'(
<
"
9
> f:=x->cos(x):
xvals := [-2,0,1,9,11,14];
primerpunto:=xvals[1]:
ultimopunto:=xvals[6]:
yvals :=map(f,xvals);
pair := (x,y) -> [x,y]: knots := zip(pair, xvals, yvals);
/0 ( -*" '" $" >" $$" $? )
/0 (
* " $"
$ "
> "
$$ "
$? )
/0 ( ( -*"
* )" ( '" $ )" ( $"
$ )" ( >"
> )" ( $$"
$$ )" ( $?"
$? ) )
> plot([knots],x=primerpunto..ultimopunto,y=-1..1,symbol=circle
,
color=[black],style=[point],tickmarks=[5,3]);
"
#
+
"
"
*
+$
+
$$
$
$$
>
>
$;
$'
$;
$$
$'
>
+$
$? $B
$$ $;
$
+$
> $$
$
$$
$$
$$
$'
$;
$;
>
@
;
$
$B
>
$;
+$
$'
$$
$;
$?
$?
$?
$;
@
;
C
D
"
+$ "
$?
"
"
"
$$
;
/
> evalf(lagrange(xvals,yvals,x)):
PolinomodeLagrange:=collect(%,x);
/0 '''$'@?B;$DBC
;'BB$C*@BB
''?C$$;'>BB'
+ 'BC>CD@;@D*
*$B?@;$*BD + $
57
E 2
"
"
7
7 7
"
7 7 "
"
'
'
"
=
7
'
'"
= $
E 2
'
=
'" $" *"
"
'"
'
$"
'
"
"
"
"
"
7
'"
$"
*"
"
.
"
3
E 2
> DDN:=(l,xvals)->map(evalf,[seq((op(i+1,l)-op(i,l))/(op(i+iter
acion+1,xvals)-op(i,xvals)), i=1..nops(l)-1)]);
! /0 "
+ $"
"
"
+ $"
" =$
"
%
5
F
"
"
'
= < * =
'
'
'
0 ?$B$?BD;B@"
'
> ini:=map(evalf,yvals);
iteracion:=0;
'f'([op(1..iteracion+1,xvals)])=op(1,ini);
newtondiv:=op(1,ini):
P[iteracion]=newtondiv;
plot([knots,newtondiv,f(x)],x=primerpunto..ultimopunto,y=-2..
1.3,symbol=circle,color=[black,blue,red],style=[point,line,li
ne],tickmarks=[5,3]);
/0 ( - ?$B$?BD;B@" $ " @?';'*;'@>" - >$$$;'*B$>" ''??*@B>C>DD" $;BC;C*$D* )
/0 '
( -* ) = - ?$B$?BD;B@
'
= - ?$B$?BD;B@
"
#
"
"
$
= '
+* "
'"
'
+$
"
?$B$?BD;B@ + C'D'C;?$D@
" ' = < *" ' =
9
7
.
"
"
3
'" $" *"
= $
+ '" $" *"
'
$
> ini:=DDN(ini,xvals);
iteracion:=iteracion+1;
'f'([op(1..iteracion+1,xvals)])=op(1,ini);
newtondiv:=newtondiv+op(1,ini)*mul(x-op(i,xvals),i=1..iteraci
on):
P[iteracion]=newtondiv;
plot([knots,newtondiv,f(x)],x=primerpunto..ultimopunto,y=-2..
1.3,symbol=circle,color=[black,blue,red],style=[point,line,li
ne],tickmarks=[5,3]);
/0 ( C'D'C;?$D@" - ?@>B>CB>?$" - $D$?*>'C$'" ?@CCCC>D''" '??$';D?''C )
/0 $
( -*" ' ) = C'D'C;?$D@
$
= $ ''''''''$ + C'D'C;?$D@
"C
"
'"
$"
*"
'"
3
$"
*"
'
> ini:=DDN(ini,xvals);
iteracion:=iteracion+1;
'f'([op(1..iteracion+1,xvals)])=op(1,ini);
newtondiv:=newtondiv+op(1,ini)*mul(x-op(i,xvals),i=1..iteraci
on):
P[iteracion]=newtondiv;
plot([knots,newtondiv,f(x)],x=primerpunto..ultimopunto,y=-2..
1.3,symbol=circle,color=[black,blue,red],style=[point,line,li
ne],tickmarks=[5,3]);
/0 ( - ;D>*@C';CC" ';'>$DC;@>'" 'B;>*'C'@$'" - 'D*C;?D*C>D )
/0 *
( -*" '" $ ) = - ;D>*@C';CC
*
+*
> ini:=DDN(ini,xvals);
iteracion:=iteracion+1;
'f'([op(1..iteracion+1,xvals)])=op(1,ini);
newtondiv:=newtondiv+op(1,ini)*mul(x-op(i,xvals),i=1..iteraci
on):
#
P[iteracion]=newtondiv;
plot([knots,newtondiv,f(x)],x=primerpunto..ultimopunto,y=-2..
1.3,symbol=circle,color=[black,blue,red],style=[point,line,li
ne],tickmarks=[5,3]);
/0 ( ';D$>CC>CB'" '';'''$C>'$D" - '$$*D$$>?D@ )
/0 ;
( -*" '" $" > ) = ';D$>CC>CB'
;
+*
+*
> ini:=DDN(ini,xvals);
iteracion:=iteracion+1;
'f'([op(1..iteracion+1,xvals)])=op(1,ini);
newtondiv:=newtondiv+op(1,ini)*mul(x-op(i,xvals),i=1..iteraci
on):
P[iteracion]=newtondiv;
plot([knots,newtondiv,f(x)],x=primerpunto..ultimopunto,y=-2..
1.3,symbol=circle,color=[black,blue,red],style=[point,line,li
ne],tickmarks=[5,3]);
/0 ( - ''*C'C@'>$**" - ''$'*''>D$;? )
#
>
/0 ?
+*
+*
$ ''*C'C@'>$**
+*
>
> ini:=DDN(ini,xvals);
iteracion:=iteracion+1;
'f'([op(1..iteracion+1,xvals)])=op(1,ini);
newtondiv:=newtondiv+op(1,ini)*mul(x-op(i,xvals),i=1..iteraci
on):
P[iteracion]=newtondiv;
collect(newtondiv,x);
plot([knots,newtondiv,f(x)],x=primerpunto..ultimopunto,y=-2..
1.3,symbol=circle,color=[black,blue,red],style=[point,line,li
ne],tickmarks=[5,3]);
/0 ( '''$'@?B;$DBD )
/0 @
( -*" '" $" >" $$" $? ) = '''$'@?B;$DBD
@
+*
+*
+*
$ ''*C'C@'>$**
$
#
>
$'
$$
+*
>
'''$'@?B;$DBD
''?C$$;'>BC$
+ 'BC>CD@;@>B
;'BB$C*@BD
*$B?@;$*C; + $ ''''''''$
"
3
"
!
5
"
!
/
'
+$
+$ H
7
> cotasupderiv:=maximize(diff(f(x),x$4),x,{x=primerpunto..ultim
opunto}):
cotainfderiv:=minimize(diff(f(x),x$4),x,{x=primerpunto..ultim
opunto}):
cotasupabsderiv:=evalf(max(cotasupderiv,abs(cotainfderiv)));
num:=x->abs(mul(x-op(i,xvals),i=1..nops(xvals))):
cotaerr:=x->num(x)*cotasupabsderiv/nops(xvals)!:
cotaerr(x);
plot([knots,newtondiv,f(x),cotaerr(x)],x=primerpunto..ultimop
unto,tickmarks=[5,10]);
/0 $
#
$$
+*
''$;DDDDDDD>
"
;@
> cotaerr(4);
evalf(%);
>
$$
$?
!0?"
;@ ''''''''
;@ ''''''''
57
I
7
!0@
E 2
"
.
* " $"
$ "
@ "
> "
$$ "
$? )
/0 (
( -*"
$ )" ( @"
#
$*
@ ) " ( >"
$$ )" ( $?"
$? )
)
> LI:=[seq(L(xvals,i,x) ,i=0..nops(xvals)-1)]:
evalf(lagrange(xvals,yvals,x)):
PolinomodeLagrange2:=simplify(%);
/0 ?$;??D;'C$ + $ + ''*?@'B?;>'?
+ $;?C'>@DC*
$@?*@$@CB$
''''C$'BB'D*;@
'*>'DB>C@>$
!
> plot([knots,PolinomodeLagrange2,f(x)],x=primerpunto..ultimopu
nto,y=-2..2,symbol=circle,color=[black,green,red],style=[poin
t,line,line],tickmarks=[5,3]);
"
KK
!"
!
KK
!"
> plot([knots,PolinomodeLagrange,PolinomodeLagrange2,f(x)],x=pr
imerpunto..ultimopunto,y=-2..2,symbol=circle,color=[black,blu
e,green,red],style=[point,line,line,line],tickmarks=[5,3]);
#
$;
"
!
/
E "
+
> g:=x->1/(1+25*x^2):
plot(g(x),x=-1..1);
$
$ + *@
$?
&$ + (
?
$' = $
!
?,
'
>
<
" >
&'(
&$ + (
'
<
#? "
" >
#
"
<
&$ + (
> x := 'x':
a:= -1:
b := 1:
n := 10:
h := abs(a-b)/n;
S := [seq(a+h*i,i=0..n)];
yi := map(g,S):
p10 := unapply(interp(S,yi,x),x);
# /0
/0 -$"
$ /0
57
= $ ,
;>'B*@
$'
$CBD
"
$
@
-? -; -* -$ $ * ; ?
" " " " '" " " " " $
@ @ @ @
@ @ @ @
$'>;C@
**$
#
$@
@$DC@
$;B
@?@*@
??*
;C*@
**$
+$
" $$ "
> puntos := evalf(zip((x,y)->[x,y],S,yi)):
plot([puntos,g(x),p10(x)],x=a..b,symbol=circle,
color=[black,red,blue],style=[point,line,line],
linestyle=[1,1,3]);
print("En rojo el grafico de la funcin, en azul el grafico
del polinomio interpolador");
L
9
"
L
!
$$
&'(
9
4$ + 6
> <
$$
*'
!
GE
<
'
&'(
H
*'
> n := 20:
h := abs(a-b)/n:
S := [seq(a+h*i,i=0..n)]:
yi := map(g,S):
p20 := unapply(interp(S,yi,x),x):
collect(p20(x),x);
puntos := evalf(zip((x,y)->[x,y],S,yi)):
#
$B
?F+
?F
' = $ , *' = $
plot([puntos,g(x),p20(x)],x=a..b,y=-4..4,symbol=circle,
color=[blue,red,green],style=[point,line,line],linestyle=[0,1
,0]);
print("En rojo el grfico de la funcin, en verde el grfico
del polinomio interpolador");
C'B>$@@'$*@
$@'$;C*;?
$D$*?$CB*@
C@'BDB$C
BBB???;*D$*@
B;C$C@CD$*@''
$'
*C$C?$B
$?
??$@D'$
@$??BB'$@B*@
BC>;@?
?;@@@*>$'B*@
DD;$B'*
$>@;$*@'''''''
*$B$C''B'@C@
;@;*B?'D
?*@CD$*@''''
*@>C@;
$B
+$
C@>CB@B*@'''''
C@'BDB$C
*'
"
C@'BDB$C
!
!
$*
-' @ ' @
!
"
& &'
"
I "
"
.
M
"
$C
"
$D
3
!
7
3
"
"
"
G
;
"
"
3
E
9
"
> S;
-> -? -C -; -$ -* -; -$ -$
$ $ ; * $ ; C ? >
" " " " " " " " " '" " " " " " " " " " $
$' @ $' @ * @ $' @ $'
$' @ $' @ * @ $' @ $'
> splinlineal:=x->piecewise(seq(op([(op(i,S)<x) and
(op(i+1,S)>x),interp([op(i..i+1,S)],map(g,[op(i..i+1,S)]),x)]
),i=1..nops(S)-1),true,g(x)):
plot([puntos,g(x),splinlineal(x)],x=a..b,y=0..g(0),symbol=cir
cle,
color=[blue,red,green],style=[point,line,line],linestyle=[0,1
,0]);
print("En rojo el grfico de la funcin, en verde el grfico
de la interpolacin lineal a trozos");
-$"
L
"
. L
> splincuadratico:=x->piecewise(seq(op([(op(2*i-1,S)<x) and
(op(2*i+1,S)>x),interp([op(2*i-1..2*i+1,S)],map(g,[op(2*i-1..
#
$D
2*i+1,S)]),x)]),i=1..(nops(S)-1)/2),true,g(x)):
plot([puntos,g(x),splincuadratico(x)],x=a..b,y=0..g(0),symbol
=circle,
color=[blue,red,green],style=[point,line,line],linestyle=[0,1
,0]);
print("En rojo el grfico de la funcin, en verde el grfico
de la interpolacin cuadratica a trozos");
"
. N
L
%
>
#
'
. !
J
!
"(
'
!
"
?
<
<
#
$>
#
J
5#5555 #
"
> f:=x->sin(x);
a:=0;b:=Pi/3;
err:=0.001;
graf0:=plot(f(x),x=a-1..b+1,color=red):
graf1:=plot(f(x),x=a..b,color=COLOR(RGB,0.7,0.7,0.7),filled=t
rue):
rayaA:=plot([[a,0],[a,f(a)]],color=black):
rayaB:=plot([[b,0],[b,f(b)]],color=black):
plots[display]([graf0,graf1,rayaA,rayaB]);
print("Queremos calcular el area sealada en el dibujo, que se
corresponde con el valor de I=",Int(f(x),x=0..Pi/3));
/0
/0 '
$
/0
;
/0 ''$
LO
"
$/;
'
9
#
*'
P0L"
(=
$*
$'
"
;
" 0'
!0
! 57
"
&
+
"
"
=
"
"
> deriv2:=unapply(diff(f(x),x$2),x);
cotasupderiv2:=maximize(abs(deriv2(x)),x,{x=evalf(a)..evalf(b
)});
funcioncotaerror:=(b-a)^3*cotasupderiv2/(12*n^2);
minnumpartesnecesarias:=evalf(solve(funcioncotaerror=err));
print("Para conseguir que el error sea menor que",err,"
tendremos que tomar n = numero de partes, como entero
inmediatamente superior a la solucin positiva obtenida");
/0
/0 $
$
/0
$*>B''
/0
L#
L" ''$" L
"
#
"
N
L
> trapezoid(f(x),x=0..Pi/3,10);
evalf(%);
$
B'
>
;'
=$
$
*
?>>@?*>>'?
!
> Int(sin(x),x=0..Pi/3)=int(sin(x),x=0..Pi/3);
$/;
=
'
*$
$
*
"
> 0.5-.4995429904;
'''?@C''>B
4
(=
@
?
$D'
> err:=0.00001;
deriv4:=unapply(diff(f(x),x$4),x);
cotasupderiv4:=maximize(abs(deriv4(x)),x,{x=evalf(a)..evalf(b
)});
funcioncotaerror:=(b-a)^5*cotasupderiv4/(180*n^4);
minnumpartesnecesarias:=evalf(solve(funcioncotaerror=err));
print("Para conseguir que el error sea menor que",err,"
tendremos que tomar n = numerodepartes,como entero
inmediatamente superior a la solucin real positiva obtenida
que sea PAR!!");
/0 ''''$
) /0
) /0 $
/0
B>>D?'''''
/0
L#
L" ''''$" L
"
N
QQ
#5%HHL
4
"
0B
> simpson(f(x),x=a..b,6);
evalf(%);
$
@?
$
*
; +?
$D
=$
* $
@''''*@DC$
**
+*
=$
$
>
>
&
*;