• No se han encontrado resultados

MATLAB. Grado en Matemáticas Clases prácticas. Cálculo Numérico II. Introducción a. la sucesión. EJEMPLO: Calcular los primeros cinco términos de

N/A
N/A
Protected

Academic year: 2021

Share "MATLAB. Grado en Matemáticas Clases prácticas. Cálculo Numérico II. Introducción a. la sucesión. EJEMPLO: Calcular los primeros cinco términos de"

Copied!
10
0
0

Texto completo

(1)

Dpto

. Ecuaciones Diferenciales y Análisis Numérico

. Univ

ersidad de Sevilla

Cálculo Numérico II

Grado en Matemáticas

Clases prácticas

Introducción a

MATLAB

Bucles

Dpto

. Ecuaciones Diferenciales y Análisis Numérico

. Univ

ersidad de Sevilla

P

ermiten la repetición de un mismo tipo de cálculo

. Su estructur a gener al es: fo r k=n1:incremento:n2

(comandos a ejecutarse) end

EJEMPL

O:

Calcular los primeros cinco términos de

la sucesión

>> f o r k=1:5 >> a(k)=(k+1)^2/(k+3); >> end >> a a = 1.0000 1.8000 2.6667 3.5714 4 .5000

(2)

Estructur

a

s condicionadas

Dpto

. Ecuaciones Diferenciales y Análisis Numérico

. Univ

ersidad de Sevilla

P

ermiten controlar si una parte del progr

a

ma se ejecuta o no

dependiendo de una determinada condición. Existen v

a rias estructur a s: a)   If simple: Si (condición) es v e rdader

a, se ejecutan los comandos entre

if y end . Si (condición) es f a

lsa, se continua en la sentencia después

de

end

.

if (condición)

(comandos que deben ejecutarse)

end

Estructur

a

s condicionadas

Dpto

. Ecuaciones Diferenciales y Análisis Numérico

. Univ

ersidad de Sevilla

EJEMPL

O: Determinar cuando son reales las r

a

íces de la

ecuación de segundo gr

ado

>> v=input(‘Introduce a, b y c:’); >> a=v(1); b=v(2); c=v(3); >> discri=b^2-4*a*c; >> if (discri>=0) >>

disp(‘Las r

a

íces son reales’)

>> end Oper adores de relación y lógicos: Menor que <

Menor o igual que

<=

Mayor que

>

Mayor o igual que

>=

Igual a

==

Distinto de

(3)

Estructur

a

s condicionadas

Dpto

. Ecuaciones Diferenciales y Análisis Numérico

. Univ ersidad de Sevilla b) If -else if (condición)

(comandos que se ejecutan si

(condición) es v e rdader a) else

(comandos que se dan si

(condición) es f alsa) end Si (condición) es v e rdader

a, se ejecutan los comandos entre

if y else . Si (condición) es f a

lsa, se ejecutan los comandos entre

else y end . Estructur a s condicionadas Dpto

. Ecuaciones Diferenciales y Análisis Numérico

. Univ

ersidad de Sevilla

EJEMPL

O: Determinar cuando son reales y cuando no

, las

ra

íces de la ecuación de segundo gr

ado

>> v=input(‘Introduce a, b y c:’); >> a=v(1); b=v(2); c=v(3); >> discri=b^2-4*a*c; >> if (discri>=0) >>

disp(‘Las r

a

íces son reales’)

>> else >>

disp(‘Las r

a

íces no son reales’)

(4)

Estructur

a

s condicionadas

Dpto

. Ecuaciones Diferenciales y Análisis Numérico

. Univ

ersidad de Sevilla

c) If

-elseif

if (condición1)

(comandos que se ejecutan si

(condición1) es v e rdader a) elseif (condición2)

(comandos que se dan si

(condición2) es v e rdader a) end Si (condición1) es v e rdader

a, se ejecutan los comandos entre

if y elseif . Si (condición2) es v e rdader

a, se ejecutan los comandos

entre elseif y end . Pueden haber v a rios elseif Estructur a s condicionadas Dpto

. Ecuaciones Diferenciales y Análisis Numérico

. Univ ersidad de Sevilla EJEMPL O: Dada la ecuación Determinar cuando ha y una única r a íz real, cuando ha y dos ra

íces reales distintas o cuando no ha

y r

a

íces reales,

calculando las r

a

íces en los dos primeros casos.

>> v=input(‘Introduce a, b y c:’); >> a=v(1); b=v(2); c=v(3); >> discri=b^2-4*a*c; >> if (discri==0) >>

disp(‘Ha y una única r a iz real’) >> raiz=-b/(2*a) >> elseif (discri>0) >> disp(‘Las r a

ices son reales y distintas:’)

>> ra iz1=(-b+sqrt(disc))/(2*a) >> raiz2=(-b-sqrt(disc))/(2*a) >> else >> disp(‘Las r a

íces no son reales:’)

(5)

Estructur

a

s condicionadas

Dpto

. Ecuaciones Diferenciales y Análisis Numérico

. Univ

ersidad de Sevilla

d)

While

while (condición) (comandos que se ejecutan mientr

as

(condición)

sea cierta)

end Se ejecutan los comandos entre

while y end , mientr a s que (condición) sea v e rdader a. La estructur a es la de un bucle, pero en v e

z de un contador tenemos una condición

Estructur

a

s condicionadas

Dpto

. Ecuaciones Diferenciales y Análisis Numérico

. Univ

ersidad de Sevilla

EJEMPL

O:

Calcular la suma de todos los números

pares hasta 50

>> k=0; >> suma=0; >> while (k<=50) >> suma=suma+k; >> k=k+2; >> end >> suma

(6)

Funciones intrínsecas

Dpto

. Ecuaciones Diferenciales y Análisis Numérico

. Univ

ersidad de Sevilla

Son f

unciones que están pre-definidas en Matlab

.

Tienen nombres propios que no se pueden usar par

a

otr

a

s v

a

riables por el usuario

.

Ejemplos sin(x), cos(x), tan(x) asin(x), acos(x), atan(x)

(trigonométricas in v ersas) exp(x), log(x) (Logaritmo nepperiano), log10(x), log2(x) Funciones anónimas Dpto

. Ecuaciones Diferenciales y Análisis Numérico

. Univ

ersidad de Sevilla

Son f

unciones que se definen de f

o

rma analítica por

el usuario

.

En oposición a las f

unciones intrínsecas de Matlab

.

Función de una v

a

riable:

f=@(x) expresion(x) Función de dos v

a

riables:

(7)

Funciones anónimas

Dpto

. Ecuaciones Diferenciales y Análisis Numérico

. Univ

ersidad de Sevilla

Ejemplos. >> f=@(x) sin(x^2)*exp(x) >> f(1) ans = 1.924743106107930 Función de dos v

a

riables:

>>g=@(x,y) sin(x)*cos(x) >>g(3,4) ans = -0.139707749099463

Dibujo de curv

as Dpto

. Ecuaciones Diferenciales y Análisis Numérico

. Univ

ersidad de Sevilla

Se dibuja un conjunto de pares de puntos {(x_i,y_i)} Unidos por tr

azos o indicados por símbolos

plot(x,y

, ‘b’)

Donde: • x

es el tablero de abscisas, los x_i.

y

es el tablero de ordenadas, los y_i.

‘b’

indica que los tr

azos se dibujarán en azul

o

Se pueden usar otros colores:

‘r ’, ‘k’ , ‘y ’,… o símbolos: ‘*’ , ‘-’ ,... o  

Se pueden escribir ley

e

ndas, comentarios en los ejes, incluir

(8)

Dibujo de curv

as Dpto

. Ecuaciones Diferenciales y Análisis Numérico

. Univ

ersidad de Sevilla

Ejemplo >> x=linspace(0,2*pi,30) >> f=@(x) exp(x).*sin(x).^2 >> y=f(x) plot(x,y

, ‘b’)

M ficheros

Dpto

. Ecuaciones Diferenciales y Análisis Numérico

. Univ

ersidad de Sevilla

Son ficheros que contienen instrucciones Matlab

.

Son ejecutables desde la v

e

ntana de comandos escribiendo su

nombre. •  Su nombre termina en .m. •  Se pueden editar desde Matlab con la opción de menú “File>New>Script

”.

Ejemplo: Contenido del fichero “dibujo

.m”:

x=linspace(0,2*pi,30) f=@(x) exp(x).*sin(x).^2 y=f(x) plot(x,y

, ‘b’)

(9)

Funciones definidas mediante M ficheros

Dpto

. Ecuaciones Diferenciales y Análisis Numérico

. Univ

ersidad de Sevilla

Son f

unciones definidas por el usuario

. Se progr

a

man en

m-ficheros. •  Deben tener el mismo nombre que la f

unción que definen.

El fichero debe comenzar por [Args salida] = f

uncion(Args entr ada) En gener a l: [y1,…yn]=f uncion(x1,…,xn). •   T o

dos argumentos de salida (

y1,…,yn)

deben definirse dentro

de la f unción. •   Los v a

lores de los argumentos de entr

ada ( x1,…,xm) deben darse al llamar la f unción desde la v e ntana de comandos: >> [y1,…yn]=f uncion(v1,…,vm)

Funciones definidas mediante M ficheros

Dpto

. Ecuaciones Diferenciales y Análisis Numérico

. Univ

ersidad de Sevilla

Ejemplo: Función que calcula la norma euclídea de un v

ector

.

Function y = normaeu(x) %Cálculo de la norma euclÌdea de un v

ector

y=0; n=length(x); for

i=1:n

(10)

Funciones definidas mediante M ficheros

Dpto

. Ecuaciones Diferenciales y Análisis Numérico

. Univ

ersidad de Sevilla

Ejemplo: Función que calcula la norma euclídea y la media de un vector

.

function [y

,z] = normmed(x)

%Cálculo de la norma euclÌdea y la media de un v

ector

y=0; z=0; n=length(x); for

i=1:n

y=y+x(i)*x(i);

z=z+x(i);

Referencias

Documento similar