Professional Documents
Culture Documents
Polinomios______________________________________
Ejemplo6:
Descomponer en fracciones simples el cociente
4 3
1
2 3
2 3
x x
x x
>>[p1,p2]=residue(r,p,k) hace la operacin inversa
p1=[1 1 0 1]
p2=[1 3 0 4]
[r,p,k]=residue(p1,p2)
rats(r)
1
) 1 ( 9
1
) 2 ( 3
13
) 2 ( 9
35
4 3
1
2 2 3
2 3
x x x x x
x x
[pol1,pol2]=residue(r,p,k)
Polinomios______________________________________
Para calcular la derivada de un polinomio tenemos el
comando,
>>polyder(p)
Ejemplo7:
Dado el polinomio x
3
+6x
2
+1 su derivada es
p=[1, 6,0,1];
d=polyder(p) % es decir 3x
2
+12x
Tiempo y esfuerzo de clculo
En MatLab est abierta la posibilidad de
obtener los tiempos de clculo de una
forma muy sencilla para el usuario,
siendo esto en muchas ocasiones de suma
importancia.
Para este fin se emplean las funciones:
cputime; etime y tic ops toc
Tiempo y esfuerzo de clculo
% help clock
% CLOCK Current date and time as date vector.
% CLOCK returns a six element date vector vector containing the
% current time and date in decimal form:
% CLOCK = [year month day hour minute seconds]
% The first five elements are integers. The seconds element
% is accurate to several digits beyond the decimal point.
Tiempo y esfuerzo de clculo
% help etime
% ETIME Elapsed time.
% ETIME(T1,T0) returns the time in seconds that has elapsed
% between vectors T1 and T0. The two vectors must be six
% elements long, in the format returned by CLOCK:
% T = [Year Month Day Hour Minute Second]
Tiempo de clculo (ejemplo)
>> n=1000;
>> A=rand(n);
>> b=rand(n,1);
>> x=zeros(n,1);
Se desea resolver un sistema lineal arbitrario con
1000 Ecs. de la forma:
Ax=b x=A
-1
b = A\b
Tiempo transcurrido ??
Tiempo y esfuerzo de clculo
% EJEMPLO (SIN ECO EN LOS CLOCK):
n=1000;
A=rand(n);
b=rand(n,1);
x=zeros(n,1);
%Tiempo de inicio:
tiempoIni=clock;
%operacin:
x=A\b;
%Tiempo de fin:
tiempoFin=clock;
tiempo=etime(tiempoFin, tiempoIni)
RESULTADO: tiempo = 5.2810
% EJEMPLO (CON ECO EN LOS CLOCK):
...
%Tiempo de inicio:
tiempoIni=clock % SIN PUNTO Y COMA
%operacin:
x=A\b;
%Tiempo de fin:
tiempoFin=clock % SIN PUNTO Y COMA
tiempo=etime(tiempoFin, tiempoIni)
RESULTADO:
tiempoIni =
1.0e+003 *
2.0060 0.0090 0.0290 0.0090 0.0270 0.0436
tiempoFin =
1.0e+003 *
2.0060 0.0090 0.0290 0.0090 0.0270 0.0506
tiempo = 7
Tiempo y esfuerzo de clculo
OTRAS FUNCIONES SIMILARES:
n=1000;
A=rand(n);
b=rand(n,1);
x=zeros(n,1);
tiempoIni=clock; x=A\b;
tiempo=etime(clock, tiempoIni)
time=cputime; x=A\b; time=cputime-
time
tic; x=A\b; toc
RESULTADOS:
tiempo = 5.3130
time = 5.2350
elapsed_time = 5.2030
PROGRAMACIN
C
u
r
s
o
M
a
t
l
a
b
2
0
0
2
-
0
3
e
n
x
a
m
b
.
N
i
e
v
e
s
L
o
r
e
n
z
o
PROGRAMACIN________________________________
Comandos de entrada salida
input: nos permite introducir datos
variable=input(mensaje a pantalla);
disp: muestra un texto por pantalla
disp(El algoritmo no ha convergido)
PROGRAMACIN________________________________
Testear el nmero de argumentos
nargin devuelve el nmero de argumentos de entrada con
los que el usuario ha llamado a la funcin.
nargout devuelve el nmero de argumentos de salida con
los que el usuario ha llamado a la funcin.
nargchk chequea si el nmero de argumentos de entrada
calculados con nargin esta entre el valor mximo y mnimo
previsto, si no da error.
nargchk(mnimo,mximo,nmero_entrada)
PROGRAMACIN________________________________
Bucles. Bucles anidados
for k=n1:incre:n2
end
Con break se rompe la ejecucin
Estructuras de control condicionadas
if
elseif
else
end
while
end
switch expresion
case expresion_0
comandos_0 que deben ejecutarse
case expresion_1
comandos_1 que deben ejecutarse
case expresion_2
comandos_2 que deben ejecutarse
otherwise
comandos escoba que deben ejecutarse
end
PROGRAMACIN________________________________
Programacin de funciones
function arg_salida=nombre_funcion(arg_entrada)
El fichero se debe guardar con nombre_funcion.m
Para devolver el control al programa desde cualquier punto
de una funcin basta con escribir la sentencia return
Ejercicio
Utilizando estructuras de control construir una funcin que
nos calcule las races de una ecuacin de segundo grado
ax
2
+bx+c=0
function raiz=sole2(a,b,c)
%raiz=sole2(a,b,c)
%solucion de la ecuacion de segundo grado
%ax^2+bx+c=0, a~=0
%
if (nargin ~=3)
error(El numero de argumentos de entrada debe ser 3)
end
discri=b^2-4*a*c;
raiz=[];
if(discri==0)
raiz=-b/(2*a);
disp([Raiz doble=,num2str(raiz)])
return
elseif(discri>0)
raiz(1)=(-b+sqrt(discri))/(2*a);
raiz(2)=(-b-sqrt(discri))/(2*a);
disp([Raices reales simples=,num2str(raiz)])
return
else
raiz(1)=(-b+sqrt(-discri)*i)/(2*a);
raiz(2)=(-b-sqrt(-discri)*i)/(2*a);
disp([Raices complejas=,num2str(raiz)])
return
end
Ejemplos para utilizar esta funcin:
raiz=sole2(2,3,1);
raiz=sole2(1,0,1);