Método de La Bisección

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 34

Mtodo de la biseccin

Esta tcnica se basa en el teorema del valor intermedio y parte del supuesto que

tienen signos opuestos. Aunque el procedimiento funciona bien para el caso en el que
existe ms de una solucin en el intervalo
la raz en dicho intervalo.

, se considera por simplicidad que es nica

Bsicamente, el mtodo consiste en dividir a la mitad repetidamente los subintervalos de


y en cada paso, localizar la mitad que contiene a la solucin,
Para empezar, hacemos
lo llamamos

Si

, entonces
y
. Si

y calculamos el punto medio del intervalo

; si no,

tiene el mismo signo que

tienen el mismo signo, entonces


y

, y tomanos

tienen el mismo signo, entonces

y
. Luego repetimos este proceso al intervalo
mtodo descrito en el algoritmo de la figura 3.

. Si
y

, y tomanos
. Esto produce el

Figura 3: Algoritmo de la biseccin.

Observacin: como en cada iteracin el intervalo es la mitad del intervalo anterior,


podemos concluir que en la iteracin la solucin se encuentra en un intervalo de
longitud

Error Absoluto
para
. Esto nos permite tener una idea de que tan cerca estamos de la solucin real,
incluso podemos usar esto para estimar el nmero de iteraciones necesarias para alcanzar
una presicin dada.
La implementacin de este algoritmo con Excel es muy sencillas, como veremos.
Ejemplo
Para ilustar la forma en que podemos usar Excel, vamos a aproximar la solucin de la
ecuacin

Lo primero es hallar un intervalo en el cual podamos garantizar la existencia de una


solucin. Por el teorema de las cotas sabemos que esta ecuacin tiene sus soluciones dentro
del intervalo

. Ahora, podemos usar el teorema del valor intermedio para refinar el

intervalo a
y el teorema de Sturm para garantizar la unicidad de la solucin real
([Childs 1995], [Kurosch 1987]). El prximo paso es usar Excel.

1. En las celdas A4 y B4 escribimos los valores de


y

, respectivamente.

2. En la celda C4 escribimos la frmula que calcular


los puntos medios del intervalo:

3. En la celda D4 escribimos la frmula que calcular


:

4. En la celda E4 escribimos la frmula que calcular


:

5. En la celda F4 escribimos la frmula que calcular


:

6. En la celda G4 escribimos la frmula que


calcular el error

7. En la celda A5 escribimos la frmula que calcular


el nuevo extremo

8. En la celda B5 escribimos la frmula que calcular


el nuevo extremo

Y por ltimo, lo nico que debemos hacer es ir generando las aproximaciones, para esto
arrastramos cada columna una a una. El resultado de esto se muestra en la figura 4.

Figura 4: Mtodo de la biseccin:

El mtodo de la biseccin, aunque es conceptualmente claro, tiene inconvenientes


importantes. Es muy lento en su convergencia (es decir, tiene que ser muy grande para
que
sea pequeo, por ejemplo, se requiere de iteraciones para obtener un error
absoluto menor a
en el ejemplo anterior), adems una buena aproximacin intermedia
puede ser descartada inadvertidamente. Sin embargo, el mtodo tiene la importante
propiedad de que siempre converge a una solucin, adems de que lo nico que se requiere
es que sea continua, es por estas razones que se usa con frecuencia como punto de partida
de mtodos ms eficientes.

5.1. MTODO DE BISECCIN

Ver Animacin...
Si f es una funcin continua sobre el intervalo [a,b] y si f(a) f(b)<0, entonces f debe tener un
cero en (a,b). Dado que f(a)f(b)<0, la funcin cambia de signo en el intervalo [a,b] y por lo
tanto tiene por lo menos un cero en el intervalo. (Vase la figura 5.1)
Esta es una consecuencia del teorema del valor intermedio para funciones continuas, que
establece que si f es continua en [a,b] y si k es un nmero entre f(a) y f(b) , entonces existe
por lo menos un c (a,b) tal que f(c)=k.
(para el caso en que f(a)f(b)<0 se escoge k=0, luego f(c)=0, c (a,b)).
El mtodo de biseccin consiste en dividir el intervalo en 2 subintervalos de igual
magnitud, reteniendo el subintervalo en donde f cambia de signo, para conservar al menos
una raz o cero, y repetir el proceso varias veces.
Por ejemplo, suponga que f tiene un cero en el intervalo [a,b].

Primero se calcula el punto medio del intervalo


f(a)f(c)<0. Si lo es, entonces f tiene un cero en [a,c].

; despus se averigua s

A continuacin se renombra a c como b y se comienza una vez ms con el nuevo intervalo


[a,b], cuya longitud es igual a la mitad del intervalo original.
Si f(a)f(c)>0 , entonces f(c)f(b)<0 y en este caso se renombra a c como a.
En ambos casos se ha generado un nuevo intervalo que contiene un cero de f, y el proceso
puede repetirse.

Ejemplo.

La funcin f(x) = xsenx 1 tiene un cero en el intervalo [0,2], porque f(0) = -1 y


f(2)=0.818595.

Si se denota con
entonces c1 = 1. Ahora f(c1) = f(1) =
-0.158529, luego la funcin tiene un cero en el intervalo [c1, b1] = [1,2] ; se renombra a2=c1
y b2=b1 .

El nuevo punto medio es


el intervalo [a2, c2] y se renombra como [a3,b3].

y f(c2) = f(1.5) = 0.496242, el cero esta en

En la tabla de abajo se muestran las primeras nueve iteraciones del mtodo de biseccin
para f(x)= xsenx 1 con a=0 b=2.

Extremo
izquierdo an

Extremo
derecho bn

Punto
medio cn

Valor de la
funcin f(cn)

Error Relativo

-0.158529

1.5

0.496242

0.333333

1.5

1.25

0.186231

0.2

1.25

1.125

0.015051

0.111111

1.125

1.0625

-0.071827

0.0588235

1.0625

1.125

1.09375

-0.028362

0.0285714

1.09375

1.125

1.109375

-0.006643

0.0140845

1.1093750

1.125

1.1171875 0.004208

0.0069930

1.1093750

1.1171875

1.1132812
-0.001216
5

0.0035087

(c = 1.114157141 es el cero de f(x) = xsenx - 1)


Para detener el mtodo de biseccin y dar una aproximacin del cero de una funcin se
pueden usar varios criterios (llamados criterios de parada).
Uno de los criterios de parada consiste en examinar si |f(cn)| < , donde es una tolerancia
previamente establecida (por ejemplo = 10-3). Otro criterio que puede utilizarse es
examinar s
Tambin se puede usar como criterio de parada el error relativo entre dos aproximaciones

del cero de f ,
En el ejemplo anterior si =0.005, el procedimiento se parara en la octava iteracin con el
criterio |f(cn)|< , ya que:
|f(c8)| = |f(1.1171875)| = 0.004208 < = 0.005,

pero si se usa el criterio


porque:

, el procedimiento se detendra en la novena iteracin

Cuando se generan aproximaciones por medio de una computadora, se recomienda fijar un


nmero mximo de iteraciones N que debera realizar la mquina. Esto con el fin de contar
con un resguardo para evitar la posibilidad de que el proceso de clculo caiga en un ciclo
infinito cuando la sucesin diverge (o cuando el programa no esta codificado
correctamente). Un algoritmo para el mtodo de biseccin es:

Teorema. (Error en el mtodo de biseccin).


Si f es continua en [a, b] y f(a) f(b) < 0, el mtodo de biseccin genera una sucesin

aproxima un cero c de f con la propiedad que:

,n

que

1 (Prueba)

Ejemplo.

Para determinar el nmero de iteraciones necesarias para aproximar el cero de f(x) = xsen x 1 con una exactitud de 10-2en el intervalo [0,2], se debe hallar un nmero n tal que:

< 10-2, es decir

, n > 7.643...

se necesitan aproximadamente unas 8 iteraciones.


Observe en la tabla de aproximaciones que el cero de f(x) = xsen x - 1 es c=1.114157141 y
c8=1.1171875.
El error real es
= 0.003030359 3x10-3.
El error real es menor que el error dado por el teorema; en la mayora de casos la cota de
error dada por el teorema es mayor que el nmero de iteraciones que realmente se
necesitan. Para este ejemplo,

= 0.004782141<10-2 = 0.01

Notas:

El mtodo de biseccin tiene la desventaja que es lento en cuanto a convergencia (es decir que se
necesita un n grande para que
sea pequeo). Otros mtodos requieren menos iteraciones
para alcanzar la misma exactitud, pero entonces no siempre se conoce una cota para la precisin.

El mtodo de biseccin suele recomendarse para encontrar un valor aproximado del cero de una
funcin, y luego este valor se refina por medio de mtodos ms eficaces. La razn es porque la
mayora de los otros mtodos para encontrar ceros de funciones requieren un valor inicial cerca de
un cero; al carecer de dicho valor, pueden fallar por completo.

Resolver una ecuacin en una variable como por ejemplo: xex=1 es equivalente a resolver la
ecuacin xex-1=0 , o a encontrar el cero de la funcin f(x) = xex-1. Para aproximar el cero de f o la
raz de la ecuacin se puede hacer la grfica de f en una calculadora o usar matlab para determinar
un intervalo donde f tenga un cero. Tambin se pueden ensayar nmeros a y b de tal manera que
f(a)f(b)<0. Para el caso de f(x) = xex-1 por ejemplo f(0) = -1, f(1) = e-1 1.71828 entonces f tiene un
cero en el intervalo [0,1].

Cuando hay races mltiples, el mtodo de biseccin quiz no sea vlido, ya que la funcin podra no
cambiar de signo en puntos situados a cualquier lado de sus races. Una grfica es fundamental para
aclarar la situacin. En este caso sera posible hallar los ceros o races trabajando con la derivada

Metodo newton

Este mtodo, el cual es un mtodo iterativo, es uno de los ms


usados y efectivos. A diferencia de los mtodos anteriores, el
mtodo de Newton-Raphson no trabaja sobre un intervalo sino que
basa su frmula en un proceso iterativo.
Supongamos que tenemos la aproximacin

a la raz

de

Trazamos la recta tangente a la curva en el punto


cruza al eje

en un punto

aproximacin a la raz

; sta

que ser nuestra siguiente

Para calcular el punto


, calculamos primero la ecuacin de la
recta tangente. Sabemos que tiene pendiente

Y por lo tanto la ecuacin de la recta tangente es:

Hacemos

Y despejamos

Que es la fmula iterativa de Newton-Raphson


siguiente aproximacin:

para calcular la

, si

Note que el mtodo de Newton-Raphson no trabaja con intervalos


donde nos asegure que encontraremos la raz, y de hecho no tenemos
ninguna garanta de que nos aproximaremos a dicha raz. Desde
luego, existen ejemplos donde este mtodo no converge a la raz, en
cuyo caso se dice que el mtodo diverge. Sin embargo, en los casos
donde si converge a la raz lo hace con una rapidez impresionante,
por lo cual es uno de los mtodos preferidos por excelencia.
Tambin observe que en el caso de que
, el mtodo no se
puede aplicar. De hecho, vemos geomtricamente que esto significa
que la recta tangente es horizontal y por lo tanto no intersecta al
eje
caso

en ningn punto, a menos que coincida con ste, en cuyo


mismo es una raz de

Ejemplo 1
Usar el mtodo de Newton-Raphson, para aproximar la raz de
, comenzando con

y hasta que

Solucin
En este caso, tenemos que

De aqu tenemos que:

Comenzamos con

En este caso, el error aproximado es,

Continuamos el proceso hasta reducir el error aproximado hasta


donde se pidi.
Resumimos los resultados en la siguiente tabla:

Aprox. a la raz

y obtenemos:

Error aprox.

1
1.268941421

21.19%

1.309108403

3.06%

1.309799389

0.052%

De lo cual conclumos que


, la cual es correcta
en todos sus dgitos!
La misma idea puede aplicarse para crear algoritmos que aproximen
races
-simas de nmeros reales positivos.
Observe que cuando el mtodo de Newton-Raphson converge a la raz,
lo hace de una forma muy rpida y de hecho, observamos que el error
aproximado disminuye a pasos agigantados en cada paso del proceso.

Aunque no es nuestro objetivo establecer formalmente las cotas para


los errores en cada uno de los mtodos que hemos estudiado, cabe
mencionar que si existen estas cotas que miden con mayor precisin
la rapidez lentitud del mtodo en estudio.

Veremos a continuacin un ejemplo del metdo de Newton Raphson, con


la siguiente ecuacin:

#
1
2
3
4
5
6

Fxn
18
-30.375
-6.2771541041392
-0.59229583988115
-0.0073539466744812
-1.1814129692311E-6

Dfxn
4
37.75
22.794965133108
18.569049742033
18.108960417816
18.103142166676

Nuevo Xm
-3.5
-2.6953642384106
-2.419989651633
-2.3880927130115
-2.3876866186524
-2.3876865533923

Hemos terminado de analizar el mtodo de la Newton Rapshon, en este


ejemplo con un error de 0.0001; se encuentra la ltima raiz(Xm):
-2.3876865533923 con 6 iteracciones.

Algoritmo de la Secante
Programar en Matlab el algoritmo de la secante

clc
F=input('Ingrese la funcion entre comillas: ');
x0=input('Ingrese el valor de X0: ');
x1=input('Ingrese el valor de X1: ');
e=input('Ingrese el error: ');
n=input('Ingrese el numero maximo de Iteraciones: ');
f=inline(F);
for i=2 : n
if f(x0) < f(x1)

aux=x0;
x0=x1;
x1=aux;
end
x2=x1-(((x1-x0)/(f(x1)-f(x0)))*f(x1));
if f(x2)<e
i=n+1;
end
x1=x0;
x0=x2;
end
fprintf('La raiz de la funcion es: ');
disp(x2);

Empezamos con un conjunto de n+1 puntos en el plano (que tengan diferentes coordenadas
x):
(x0, y0), (x1, y1), (x2, y2),....,(xn, yn).
Nuestro objetivo es encontrar una funcin polinmica que pase por esos n+1 puntos y que
tengan el menor grado posible. Un polinomio que pase por varios puntos determinados se
llama un polinomio de interpolacin.
Vamos a ver una forma de la solucin que es el llamado polinomio de interpolacin de
Lagrange. (Lagrange public su frmula en 1795 pero ya haba sido publicada en 1779 por
Waring y redescubierta por Euler en 1783).
La frmula general para el polinomio de interpolacin de Lagrange es

Donde usamos polinomios bsicos de Lagrange:

Expandiendo el producto para verlo mejor:

Estos polinomios bsicos de Lagrange se construyen con una propiedad:

Entonces es muy fcil comprobar que estos polinomios pasan por todos los n+1 puntos
dados (es decir, es un polinomio de interpolacin):

El grado del polinomio de interpolacin de Lagrange es igual o menor que n. Es el menor


grado posible. El polinomio encontrado es nico. Hay otras maneras de calcular este
polinomio (con sus ventajas e inconvenientes). La forma de Lagrange es sencilla y se
comprueba con facilidad que es un polinomio de interpolacin y su grado. Pero para
conocer los coeficientes del polinomio hay que simplificar los trminos. Otra caracterstica
de esta forma de encontrar el polinomio es que si aadimos o quitamos puntos hay que
recalcularlo otra vez.
Vamos a ver algunos ejemplos. El ms sencillo es una recta. Dados dos puntos (x0, y0) y (x1,
y1) hay exactamente una recta que pasa por esos dos puntos:

Dados tres puntos (x0, y0), (x1, y1) y (x2, y2), con coordenadas x diferentes, o bien los tres
puntos estn en una recta o hay un polinomio de segundo grado (una parbola) que pasa por
esos tres puntos. En cualquier caso, hay un polinomio de grado como mucho 2 que pasa por
esos tres puntos.

Si tenemos 4 puntos, podemos encontrar un polinomio de grado 3 (o quizs una parbola o


una lnea recta en algunos casos) que pasa por esos 4 puntos:

Un funcin polinmica de grado 4 pasa a travs de 5 puntos:

Usaremos los polinomios de interpolacin de Lagrange para construir aplicaciones


interactivas relacionadas con funciones polinmicas, sus derivadas e integrales.
Las funciones polinmicas con coeficientes reales o complejos de grado n tienen siempre n
races (reales o complejas)(Teorema fundamental del lgebra):

Comandos en matlab

Una primera mirada a MATLAB


Cargue el programa MATLAB en su computador.
El entorno de MATLAB est organizado mediante ventanas
Command Window: es la ventana de comandos para ejecucin de instrucciones
Command History: es el registro de los comandos que han sido ingresados.
Workspace: contiene la descripcin de las variables usadas en cada sesin.
Inicialmente, se sugiere dejar activa nicamente la ventana de comandos,
cerrando las otras ventanas con el botn x.
Para restaurarlas use la opcin view de la barra de herramientas de MATLAB.
Los ejemplos de este manual debe probarlos en la ventana de comandos
El smbolo >> indica que el programa est listo para recibir sus instrucciones.
Escriba cada ejemplo y presione la tecla de ingreso para finalizar.
MATLAB muestra el resultado inmediatamente, o un mensaje si hubo algn
error.
Al final de cada ejemplo hemos incluido con letra azul una breve explicacin.
Por supuesto, usted no tiene que escribir en el computador estas explicaciones.
>> exp(2)/3 calcule y muestre inmediatamente el resultado
ans =
2.4630 respuesta mostrada por Matlab, ans proviene de answer

>> x=exp(2)/3; calcule y asigne el resultado a la variable x


>> x escriba la variable para conocer su contenido
x=
2.4630 respuesta mostrada por MATLAB
>> x=exp(2)/3 al omitir ; el resultado se muestra inmediatamente
x=
2.4630 respuesta mostrada por MATLAB
>> y=2*x+1 puede usar el contenido de las variables
y=
5.9260 respuesta mostrada por MATLAB
>> x=x+1 puede modificar el contenido de las variables
x=
3.4630 respuesta mostrada por MATLAB
Puede reutilizar comandos con las teclas del cursor . Prubelo.
>> x=exp(2)/3; y=2*x+1, z=3*x Puede escribir y ejecutar varios
comandos en una misma lnea
y=
5.9260 respuestas mostradas por MATLAB
z=
7.3891
El sistema de ayuda de MATLAB
Ofrece una descripcin detallada del uso de cada comando.
>> help despliega temas de ayuda
>> help ops despliega comandos de un tema. Ej. lista de operadores
>> help exp uso de un comando especfico. Ej. funcin exponencial

Adicionalmente, presionando el cono Help usted puede entrar al sistema de


ayuda de MATLAB organizado por contenido, ndice, bsqueda y
demostraciones.
Algunos ejemplos para apreciar el poder de MATLAB
2x + 3y = 4
5x 2y = 6
>> a=[2, 3; 5, -2]; ingrese la matriz de coeficientes
>> b=[4; 6]; ingrese el vector columna de constantes
>> x=inv(a)*b; obtenga la solucin con la funcin para invertir
>> x muestre el vector solucin
Resuelva el sistema:
>> ezplot('sin(x)*exp(x)', 0, pi); escriba la funcin entre comillas simples
>> grid on; muestre cuadrculas en el grfico
Grafique la funcin f(x)=sen(x) ex en el intervalo 0 x p
>> a=[5, 2, -3, 1]; ingrese los coeficientes de la ecuacin
>> x=roots(a) obtenga y muestre las races de la ecuacin
Resuelva la ecuacin cbica 5x3 + 2x2 - 3x + 1 = 0;
>> y=dsolve('Dy-x-y=0','y(0)=1', 'x'); defina la ecuacin, condicin y variable
>> y muestre la solucin analtica obtenida
>> ezplot(y, 0, 2); grafique la solucin para 0 x 2
>> grid on muestre cuadrculas
Obtenga la solucin de la ecuacin diferencial ordinaria: y-x-y = 0, y(0)=1
>> f=int('x*sin(x)') obtenga el resultado analtico
>> s=int('x*sin(x)',0,pi) integre entre 0 y p
Integre la funcin f(x) = x sen(x)
Manejo simblico de expresiones
>> syms x defina x con tipo simblico

>> y=x^3-8 una expresin con x


>> t=factor(y) factorar la espresin asignada a y
>> e=taylor(exp(x), 5); expandir ex con 5 trminos de la serie de Taylor
Smbolos especiales que usa MATLAB
[ ] para definir vectores y matrices
( ) para definir precedencia en expresiones y para subndices
, para separar elementos de un vector use comas o espacios
; para separar filas y para evitar mostrar contenido de variables
% para iniciar un comentario (programas y funciones)
... para continuar un comando en la siguiente lnea
CLCULO NUMRICO
Formatos de exhibicin de nmeros en la pantalla
>> format long muestra 14 decimales
>> x=exp(2) un ejemplo para visualizar
>> format bank 2 decimales
>> x
>> format rat notacin racional (fracciones)
>> x
>> format short e notacin cientfica
>> x
>> format long e notacin cientfica con 14 decimales
>> x
>> format + muestra signos +, , >> x
>> format short 4 decimales (MATLAB lo usa por omisin)
>> x

>> format compact suprime lneas adicionales en la salida


>> x
>> format loose inserta lneas en blanco en la salida(recomendado)
>> x
>> format hex formato hexadecimal
>> x
>> vpa(sqrt(2), 100) variable precision arithmetic
(muestra la raz cuadrada de 2 con 100 dgitos
>> format short regrese al formato normal de MATLAB
Operadores aritmticos
+ - * / \ ^ ( ) ^ se usa para potenciacin
/ es divisin a la derecha
\ es divisin a la izquierda
>> help ops liste los operadores y caracteres especiales
Funciones matemticas
exp, log, sqrt, sin, cos, tan, .....
>> help elfun liste las funciones matemticas elementales
Practique con expresiones aritmticas
>> x=sin(3)+3*exp(2)
Operadores relacionales y lgicos
< <= > >= == ~= & | ~ los tres ltimos corresponden a:
== representa al smbolo =
~= representa al smbolo
Practique con operadores relacionales y lgicos
>> t=sin(2) < 0.8 & log(2) > 0.5 el resultado es un valor lgico (0 o 1)
Smbolos numricos especiales

>> 2/0
Inf es el smbolo
>> 0/0
NaN significa "Not A Number" (valor indeterminado)
>> pi contiene la constante p
>> eps es la precisin del tipo real en MATLAB
>> realmin el menor nmero real en MATLAB
>> realmax el mayor nmero real en MATLAB
>> i representa al smbolo complejo -1
Practique con nmeros complejos
>> x=3+2i asigne un nmero complejo
>> t=2*x + 3 - 5i operacin con nmeros complejos
>> y=exp(x) el resultado tambin es complejo
>> y=log(-2) el referencial de MATLAB son los complejos
Funciones adicionales para nmeros complejos
conj, real, imag, abs, angle, complex
>> z=3+2i;
>> t=conj(z) obtenga el conjugado
Variables
No requieren ser declaradas
Su tipo depende del valor asignado
Pueden ser redefinidas
Sensible al tipo de letra (maysculas o minsculas)
ans es la variable por omisin provista por MATLAB
Matlab realiza la asignacin de memoria a variables durante la ejecucin.
>> x=3 x es de tipo real

>> x='mensaje' x es de tipo literal (use comillas simples)


>> syms x x es un smbolo
>> x=[2 7 4] x es un vector
>> x=2+3i x es de tipo complejo
>> x muestre el contenido actual de la variable
>> whos x muestre el tipo actual de la variable
>> disp(x) muestre solamente el contenido
>> x=input('dato?'); ingrese un valor para una variable desde el teclado
>> exp(x)/3
>> ans la variable ans contiene el ltimo resultado
>> y=2*ans la puede usar
Algunos comandos del Sistema Operativo
>> help general lista de comandos
>> who lista las variables en uso
>> whos lista las variables en uso y su descripcin
clear borra variables.
>> clear a b c ejemplo
>> clc despeja la ventana de comandos
>> pwd muestra cual es el directorio actual
cd cambia la ruta del directorio actual
>> cd c:\matlab\work ejemplo
>> dir lista el contenido del directorio actual
save almacena las variables en un archivo .mat
>> save prueba ejemplo
load carga variables y su contenido
>> load prueba ejemplo

delete elimina archivo


>> delete prueba.mat ejemplo
>> quit para terminar la sesin con MATLAB (no lo digite)
Comandos especiales
>> date fecha
>> clock fecha hora, vea su uso con help.
>> format rat para visualizar la fecha con mas claridad
>> clock
>> format short vuelva al formato normal
Cadenas de caracteres
>> x='Matematica'; asignacin de una cadena (use comillas simples)
>> x(4) manejo de un carcter de la cadena, use un indice
En MATLAB los ndices se escriben entre
parntesis y son numerados desde 1
>> t=x(2:5); manejo de una subcadena, use: (inicio: final)
>> n=length(x) longitud de la cadena
>> c=strcat(x, t) concatenacin de cadenas
>> help strfun liste las funciones para cadenas
Vectores y Matrices
>> x=[3, -1, 4, 7, -2] asignacin directa de un vector fila
>> x=[3 -1 4 7 -2] puede separar con comas o con espacios
>> x(2)=5 manejo de un componente del vector.
En MATLAB los ndices se escriben entre
parntesis y son numerados desde 1
>> y=x(2: 4) para asignar parte de un vector use (inicio: final)
>> t=[3; -1; 4; 5] para asignar un vector columna use ;

>> t=x' para obtener la transpuesta de un vector use '


x' es la transpuesta del vector x
>> y=[3, x, -6, 7] puede asignar un vector usando otro vector
>> y=[2:1:10] puede asignar un vector mediante una secuencia
En MATLAB las secuencias se escriben:
valor inicial : incremento : valor final
si el incremento es 1 puede omitirlo
>> y=[2, 5, 4, ... Para continuar en la siguiente lnea use ...
7, -3] escriba la continuacin de la lnea anterior
>> x=[3, 5, 2, 0]
>> y=2*x puede realizar operaciones escalares
>> y=exp(x) o crear vectores con funciones
>> a=[6 3 ; 5 1] asignacin directa de una matriz 2x2
separe elementos con espacios o comas
separe filas con punto y coma
>> a(2,1) manejo de los componentes de una matriz con ndices numerados
desde 1: (fila, columna)
>> a=[2, -3; 5, 1; 0, 7] una matriz 3x2
>> x=[7, 3]
>> a=[x; x] una matriz 2x2
>> b=[5, 6]
>> c=[a; b] c es una matriz aumentada 3x2
>> d=[a, b'] c es una matriz aumentada 2x3
>> x=c(1, :) asigne a x la primera fila de c
>> x=c(: ,1) asigne a x la primera columna de c
>> c(:,2)=[ ] elimine la segunda columna de c
Matrices especiales

>> a=ones(5) matriz 5x5 iniciada con unos


>> a=ones(3,5) matriz 3x5 iniciada con unos
>> a=zeros(4,5) matriz 4x5 iniciada con ceros
>> a=eye(5) matriz identidad 5x5
>> a=magic(4) cuadrado mgico 4x4
>> a=hilb(5) matriz de Hilberth 5x5
>> x=[2, 5, 3, 7];
>> a=vander(x) matriz de Vandermonde 4x4 usando un vector
>> a=[ ] matriz nula
Generacin de nmeros aleatorios
>> x=rand genera un nmero aleatorio entre 0 y 1
>> a=rand(5) genera una matriz 5x5 con nmeros aleatorios
>> b=rand(4,5) genera una matriz 4x5 con nmeros aleatorios
>> d=fix(rand*10)+1 transfomacin para obtener un entero aleatorio
entre 1 y 10
Una matriz puede componerse con otras matrices
>> a=rand(3); matriz 3x3 con nmeros aleatorios
>> b=[5 3 9]; vector de tres componentes
>> e=diag(b); matriz 3x3 con b en la diagonal
>> c=eye(3); matriz identidad 3x3
>> d=zeros(3); matriz con ceros 3x3
>> t=[a e; c d] matriz compuesta 9x9
Editor de matrices
En la ventana workspace puede activar el editor de arreglos, similar a una
hoja electrnica, con el cual puede modificar con facilidad las dimensiones y
el contenido de vectores y matrices.

Elementos de vectores y matrices pueden manejarse con otro vector o matriz


>> x=[ 8 7 9 5 6];
>> p=[2 4 1]; vector para direccionar al vector x
>> t=x(p) t contiene los elementos 2, 4 y.1 del vector x
>> a=[4 7 3; 5 7 8; 6 0 9];
>> p=[1 3]; vector para direccionar las filas de la matriz a
>> q=[2 3]; vector para direccionar las columnas de la matriz a
>> t=a(p, q) t contiene las filas 1 y 3, columnas 2 y 3 de a
Operaciones con matrices
>> a=[3, 2; 1, 4];
>> b=[8, 6; 5, 7];
>> c=a' transpuesta de a
>> c=2*a producto de un escalar por matriz
>> c=a+b suma de matrices
>> c=a*b producto de matrices
>> c=a.*b producto elemento por elemento de matrices
para operar elemento a elemento use un punto
antes del operador
>> c=a^2 matriz al cuadrado, equivale a: a*a
>> c=a.^2 cada elemento de la matriz a, elevar al cuadrado
>> c=a==b compare igualdad entre matrices (de igual tamao)
el resultado es una matriz binaria (ceros y unos)
>> c=a~=b compare si dos matrices no son iguales
el resultado es una matriz binaria (ceros y unos)
>> c=a>3 compare si cada elemento de a es mayor a 3
el resultado es una matriz binaria (ceros y unos)

Funciones para matrices


>> x=[-2, 0, 6, 5]; un vector para los ejemplos
>> a=[1, 2, 3; 4, 5, 6;7, 8, 9]; una matriz para los ejemplos
>> n=length(x) longitud del vector x
>> [n,m]=size(a) tamao de la matriz a: el resultado es un vector
>> n nmero de filas: 3
>> m nmero de columnas: 3
>> exist('c') chequea si la variable existe
>> isempty(a) chequea si un vector o matriz est vaco
>> any(x) determina si el vector contiene algn valor no cero
>> any(a) igual que arriba, pero por columnas de la matriz
>> t=find(x) obtiene ndices de elementos del vector no ceros
>> t=find(x>3) obtiene los ndices de cada elemento > 3
>> [f,c]=find(a) obtiene los ndices de filas y columnas de la matriz
cuyos elementos son no ceros
>> t=dot(x, x) producto punto entre dos vectores
>> k=rank(a) rango de a
>> t=trace(a) traza de a
>> d=det(a) determinante de a
>> b=inv(a) inversa de a
>> h=norm(a, 1) norma de columna de la matriz a
>> h=norm(a, inf) norma de fila de la matriz a
>> h=norm(x, inf) norma de fila o columna del vector x
>> c=cond(a) nmero de condicin de la matriz a
>> t=diag(a) vector con la diagonal de la matriz a
>> t=diag(x) matriz con x en la diagonal

>> t=rot90(a) rote a 90 grados (sentido opuesto al reloj)


>> t=fliplr(a) voltee horizontalmente la matriz a
>> t=tril(a) obtenga la matriz triangular inferior de a
>> t=triu(a) obtenga la matriz triangular superior de a
>> b=[5,-1; 3, 4; 2, 7];
>> b=reshape(b, 2, 3) reconfigura la matriz b de 3x2 a 2x3
>> [t,s]=lu(a) descomposicin triangular de a en las matrices
>> t triangulares t y s tales que t*s es igual que a
>> s
>> t*s se obtiene la matriz a
>> t=cov(a) matriz de covarianza de a
>> e=eig(a) valores propios de a
>> p=poly(a) polinomio caracterstico de a
>> r=roots(ans) valores propios de a
>> help matfun liste las funciones para matrices
Ingreso de puntos desde la pantalla con el mouse
>> ezplot('sin(x)'); ejemplo para tomar puntos desde un grfico
>> grid on
>> [x,y]=ginput(5); ingrese 5 puntos desde la pantalla .
Presione el botn del mouse para
ingresar cada punto
>> x observe las abscisas
>> y y las ordenadas ingresadas
>> plot(x, y, 'o') grafique los puntos ingresados
Funciones adicionales para manejo de datos con vectores y matrices
>> x=[2, 5, 4]; un vector

>> a=[5,-1; 3, 4; 2, 7]; una matriz


>> t=max(x) el mayor valor del vector x
>> v=max(a) el mayor valor por columnas de la matriz a
>> t=sum(x) suma de componentes
>> v=sum(a) suma de componentes por columnas
>> t=prod(x) producto escalar
>> v=prod(a) producto escalar por columnas
>> t=cumsum(x) suma acumulada
>> v=cumsum(a) suma acumulada por columnas
>> t=cumprod(x) producto acumulado
>> v=cumprod(a)
>> t=mean(x) media aritmtica
>> v=mean(a)
>> t=median(x) mediana
>> v=median(a)
>> t=std(x) desviacin estndar
>> v=std(a)
>> t=sort(x) ordenamiento ascendente
>> v=sort(a)
>> t=dsort(x) ordenamiento descendente
>> bar(x) diagrama de barras
>> bar(a)
>> hist(x) histograma
>> stairs(x) dibuja x mediante escalones
>> pie(x) grfico tipo pastel
>> pie3(x) pastel en relieve

>> v=[0,1,0] vector para extraer sectores del pastel


>> pie3(x,v) grfico tipo pastel con un sector separado
Polinomios
>> a=[2, -3, 0, 5}, define el polinomio 2x3 3x2 + 5
>> y=polyval(a,4) evaluacin del polinomio con un valor
>> x=roots(a) obtenga un vector con races (reales y complejas)
>> t=polyval(a, x(1)) verifique una raz
>> p=poly(x) producto de todas las races
>> b=[3, 4, -2]; define el polinomio 3x2+ 4x - 2
>> c=conv(a,b) producto de polinomios
>> [c, r]=deconv(a,b); divisin de polinomios
>> c cociente
>> r residuo
>> x=[2 3 5 7 8]; abscisas de puntos (x,y)
>> y=[3.2 4.1 5.8 6.4 6.3]; ordenadas de los puntos
>> z=3.2; valor para interpolar, z puede ser un vector
>> u=interp1(x,y,z,linear) resultado de la interpolacin lineal
>> u=spline(x,y,z) interpolacin con un trazador cbico
>> a=polyfit(x, y, 2); polinomio de mnimos cuadrados de grado 2
>> a el vector a contiene los coeficientes
Practique: Obtenga y grafique el polinomio de interpolacin, la recta de
mnimos cuadrados y el trazador cbico para un conjunto de datos dados
>> x=[1 2 4 5 7]; cinco puntos (x, y) para el ejemplo
>> y=[5 3 6 7 4];
>> plot(x,y,'o') grafique los datos con crculos
>> grid on poner cuadrculas
>> hold on superponer los siguientes grficos

>> a=polyfit(x,y,4); polinomio de interpolacin, 5 puntos: grado 4


>> a coeficientes a(1)x^4 + a(2)x^3 + a(3)x^2 + ...
>> z=[1: 0.1: 7]; puntos para evaluar el polinomio
>> p=polyval(a,z); evale el polinomio con z obtenga puntos p
>> plot(z,p) grafique el polinomio de interpolacin
>> b=polyfit(x,y,1); recta de mnimos cuadrados (grado 1)
>> b coeficientes de la recta: b(1)x + b(2)
>> t=[1 7]; puntos extremos de la recta (abscisas)
>> q=polyval(b,t); obtenga las ordenadas respectivas de la recta
>> plot(t,q,'r') grafique la recta en color rojo
>> s=spline(x,y,z); evale con z el trazador cbico y obtenga s
>> plot(z,s,'g') grafique el trazador cbico con verde
>> hold off deshabilite la superposicin de grficos

Leer ms: http://www.monografias.com/trabajos36/matlabprogramacion/matlab-programacion2.shtml#ixzz3KeNXoOQV

También podría gustarte