matlab funcion if

11
Deber de Matlab Karina Mej´ ıa June 26, 2015 Contents Abstract Realizare los ejercicios enviados como deber, para reforzar y au- mentar los conocimientos obtenidos en el laboratorio de matem´ aticas. 1

Upload: karina-mejia

Post on 05-Feb-2016

214 views

Category:

Documents


0 download

DESCRIPTION

funciones

TRANSCRIPT

Page 1: Matlab funcion if

Deber de Matlab

Karina Mejıa

June 26, 2015

Contents

Abstract

Realizare los ejercicios enviados como deber, para reforzar y au-mentar los conocimientos obtenidos en el laboratorio de matematicas.

1

Page 2: Matlab funcion if

1 Ejercicio 1

• Programa Matlab

function deber (A)t=s ize (A) ;i f t (2)==3

v=[sum(A( : , 1 ) ) / t (1 ) sum(A( : , 2 ) ) / t (1 ) sum(A( : , 3 ) ) / t ( 1 ) ]s =[A( : , 1 ) ∗ 0 . 2 A( : , 2 ) ∗ 0 . 3 A( : , 3 ) ∗ 0 . 5 ]n=[( s ( : , 1 ) ) + ( s ( : , 2 ) ) + ( s ( : , 3 ) ) ]

elsefpr intf ( ’ t i e n e mas de t r e s columnas ing r e sada s ’ )

end

• Explicacion

• Para saber de cuantas filas y columnas consta la matriz utilizamosvariable = size(matriz).

• IF significa SI (condicional) en espanol. Su funcionamiento es simple.Se evalua una condicion, si es verdadera ejecuta un codigo, si es falsa,ejecuta otro codigo (o continua con la ejecucion del programa).

Estructura IF en pseudocdigo:if (condicion)ejecuta esto si la condicion es verdaderaelseejecuta esto si la condicion es falsa.

• Para la realizacion del promedio de cada columna utilizaremos sum(A(:, 1))/t(1) lo cual este codigo realiza la suma de la columna 1 de la matrizy la divide para el numero de filas.

• Para el segundo vector utlizaremos A(:, 1) ∗ 0.2 lo cual nos dice que lacolumna 1 de la matriz se multiplicara por el porcentaje que se necesita.

• Para concluir el segundo vector (s(:, 1)) realizaremos la suma de la cadaposicion de las columnas

2

Page 3: Matlab funcion if

• Para validar ocupamos fprintf(′tienemasdetrescolumnasingresadas′)lo cual nos muestra este mensaje si no cumple con la condicion.

• Ejecucion

• primera parte

>> AA =

0.5383 0 .9619 0 .08440 .9961 0 .0046 0 .39980 .0782 0 .7749 0 .25990 .4427 0 .8173 0 .80010 .1067 0 .8687 0 .4314

>> deber (A)

v =0.4324 0 .6855 0 .3951

s =0.1077 0 .2886 0 .04220 .1992 0 .0014 0 .19990 .0156 0 .2325 0 .12990 .0885 0 .2452 0 .40000 .0213 0 .2606 0 .2157

n =0.43850 .40050 .37800 .73380 .4976

3

Page 4: Matlab funcion if

• segunda parte

>> A= rand (5)

A =

0.9106 0 .8693 0 .6221 0 .2399 0 .04970 .1818 0 .5797 0 .3510 0 .1233 0 .90270 .2638 0 .5499 0 .5132 0 .1839 0 .94480 .1455 0 .1450 0 .4018 0 .2400 0 .49090 .1361 0 .8530 0 .0760 0 .4173 0 .4893

>> deber (A)

t i e n e mas de t r e s columnas ingresadas>>

2 Ejercicio 2

• Programa Matlab

function deber 1 (A, f , c )t=s ize (A) ;i f t (1)==t (2 )

Q=A( 1 : f , 1 : c )else

fpr intf ( ’ no es una matr iz cuadrada ’ )end

• Explicacion

• Para saber de cuantas filas y columnas consta la matriz utilizamosvariable = size(matriz).

• IF significa SI (condicional) en espanol. Su funcionamiento es simple.Se evalua una condicion, si es verdadera ejecuta un codigo, si es falsa,ejecuta otro codigo (o continua con la ejecucion del programa).

4

Page 5: Matlab funcion if

• Colocamos ift(1) == t(2) esto significa que si las filas son iguales a lascolumnas realizar el siguiente procedimiento.

• Para extraer una submatriz Q = A(1 : f, 1 : c) decimos que nos muestrede la posicion 1 hasta la variable f (fila) y de una hasta la variable c(columna).

• Para validar ocupamos fprintf(′noesunamatrizcuadrada′) lo cual nosmuestra este mensaje si no cumple con la condicion.

• Ejecucion

• primera parte

>> A=rand (4)A =

0.8212 0 .6491 0 .5470 0 .68680 .0154 0 .7317 0 .2963 0 .18350 .0430 0 .6477 0 .7447 0 .36850 .1690 0 .4509 0 .1890 0 .6256

>> deber 1 (A, 2 , 2 )

Q =0.8212 0 .64910 .0154 0 .7317

• segunda parte

>> A=rand (4 , 3 )

A =

0.3507 0 .6225 0 .47090 .9390 0 .5870 0 .23050 .8759 0 .2077 0 .84430 .5502 0 .3012 0 .1948

>> deber 1 (A, 2 , 2 )

no es una matr iz cuadrada>>

5

Page 6: Matlab funcion if

3 Ejercicio 3

• Programa Matlab

function deber 2 (A)t=s ize (A) ;i f t (1)==t (2 )

b=diag (A) ;r=sum(b)

endi f t (1)> t (2 )

e=zeros ( t ( 1 ) , 1 ) ;Q=[A, e ]

endi f t (2)> t (1 )

A( : , t ( 2 ) ) = [ ]end

• Explicacion

• Para saber de cuantas filas y columnas consta la matriz utilizamosvariable = size(matriz).

• IF significa SI (condicional) en espanol. Su funcionamiento es simple.Se evalua una condicion, si es verdadera ejecuta un codigo, si es falsa,ejecuta otro codigo (o continua con la ejecucion del programa).

• Colocamos ift(1) == t(2) esto significa que si las filas son iguales a lascolumnas realizar el siguiente procedimiento.

• Para sacar la diagonal de la matriz utilizamos b = diag(A) despuesprocedemos a sumar los numeros de la diagonal con r = sum(b).

• Colocamos ift(1) > t(2) esto significa que si las filas son mayores a lascolumnas realizar el siguiente procedimiento.

• Procedemos ha realizar un columna de ceros e = zeros(t(1), 1) con laque utilizamos el comando Zeros para realizarla y le decimos que debese su dimension el numero de filas de la matriz y 1 como columna,despues aumentaremos la columna de ceros a la matriz con Q = [A, e].

6

Page 7: Matlab funcion if

• Colocamos ift(2) > t(1) esto significa que si las filas son menores a lascolumnas realizar el siguiente procedimiento.

• Procedemos eliminar la ultima columna de la matriz con A(:, t(2)) = []en el cual estamos diciendo que la columna es igual a vacio.

• Ejecucion

• primera parte

>> A=rand (3)

A =0.2259 0 .4357 0 .43020 .1707 0 .3111 0 .18480 .2277 0 .9234 0 .9049

>> deber 2 (A)

r =1.4419

• segunda parte

>> A=rand (4 , 2 )

A =0.9797 0 .40870 .4389 0 .59490 .1111 0 .26220 .2581 0 .6028

>> deber 2 (A)

Q =0.9797 0 .4087 00 .4389 0 .5949 00 .1111 0 .2622 00 .2581 0 .6028 0

7

Page 8: Matlab funcion if

• tercera parte

>> A=rand (2 , 4 )

A =0.7112 0 .1174 0 .3188 0 .50790 .2217 0 .2967 0 .4242 0 .0855

>> deber 2 (A)

A =0.7112 0 .1174 0 .31880 .2217 0 .2967 0 .4242

4 Ejercicio 4

• Programa Matlab

function deber 3 (A,V)r=s ize (A) ;t=s ize (V) ;u=t ( 2 ) ;i f r (1)==r (2 )

i=A( : , 1 ) ;h=i −1;A( : ,1 )= hj=diag (A) ;w=j ’ ;H=[A;w]

e l s e i f u==r (1)A( : , r ( 2 ) ) = [ ] ;A( : , r (2) −1)=[]n=V’ ;G=[n ,A]

end

8

Page 9: Matlab funcion if

• Explicacion

• Para saber de cuantas filas y columnas consta la matriz utilizamosvariable = size(matriz) el mismo procedimiento realizamos para elvector.

• Colocamos ifr(1) == r(2) esto significa que si las filas son iguales alas columnas realizar el siguiente procedimiento.

• Elegimos una columna i cualquiera i = A(:, 3) y luego re restamos unoh = i−1 despues decimos que la columna 3 sera igual a i-1 A(:, 3) = h.

• Para sacar la diagonal de la matriz utilizamos bj = diag(A) despuesprocedemos a realizar su transpuesta w = j′,H = [A;w] para pasosiguiente colocarla como una fila adicional de la matriz.

• Para validar ocupamos fprintf(′noesunamatrizcuadrada′) lo cual nosmuestra este mensaje si no cumple con la condicion.

• El u == r(1) si el numero de elementos del vector sea igual que elnumero de filas de la matriz realizar.

• Procedemos eliminar la ultima columna de la matriz con A(:, r(2)) = []en el cual estamos diciendo que la columna es igual a vacio lo mismorealizamos para eliminar la penultima columna.

• Finalmente transponemos el vector n = V ′ y lo aumentamos como laprimera columna de la matriz G = [n,A].

• Ejecucion

• primera parte

>> A=rand (4)

A =

0.4218 0 .6557 0 .6787 0 .65550 .9157 0 .0357 0 .7577 0 .17120 .7922 0 .8491 0 .7431 0 .70600 .9595 0 .9340 0 .3922 0 .0318

9

Page 10: Matlab funcion if

>> V=[1 2 3 ]

V =

1 2 3

>> deber 3 (A,V)

A =

−0.5782 0 .6557 0 .6787 0 .6555−0.0843 0 .0357 0 .7577 0 .1712−0.2078 0 .8491 0 .7431 0 .7060−0.0405 0 .9340 0 .3922 0 .0318

H =

−0.5782 0 .6557 0 .6787 0 .6555−0.0843 0 .0357 0 .7577 0 .1712−0.2078 0 .8491 0 .7431 0 .7060−0.0405 0 .9340 0 .3922 0 .0318−0.5782 0 .0357 0 .7431 0 .0318

• segunda parte

>> A=rand (3 , 4 )

A =0.1679 0 .5005 0 .6820 0 .52160 .9787 0 .4711 0 .0424 0 .09670 .7127 0 .0596 0 .0714 0 .8181

>> V=[1 2 3 ]

V =1 2 3

10

Page 11: Matlab funcion if

>> deber 3 (A,V)

A =0.1679 0 .50050 .9787 0 .47110 .7127 0 .0596

G =1.0000 0 .1679 0 .50052 .0000 0 .9787 0 .47113 .0000 0 .7127 0 .0596

11