Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

MATLAB: Conceptos Básicos y Programación (página 3)



Partes: 1, 2, 3

Partes: 1, , 3

 

MANEJO
SIMBÓLICO

>> syms x; definición de variable tipo simbólico

>> 2*x+3*x suma
algebraica

>> a=[x 5; 3*x 4]; matriz con elementos símbolos

>> t=inv(a) su inversa también contiene
símbolos

>> t=solve(2*x^2+3*x-2) solución de una ecuación

>> f=3*x^2+5*x; definición simbólica de una
función

>> t=factor(f) factorar la expresión

>> s=expand(t) expandirla

>> e=taylor(exp(x)) expansión con la serie de Taylor

>>
limit(sin(x)/x) obtencíon de límites de
funciones

>> syms
y;

>>
f=2*x^3+3*y^2 una función de
dos variables

>>
g=diff(f,x) derivada
parcial

>>
u=int(f,x) integrar en
x

Funciones adicionales con expresiones
simbólicas

>> f='2*t+1'; definición de una función en forma
literal

>> t=3;

>> y=eval(f) evaluación de la función

>> [a,b] =
solve('a^2 + a*b – b = 3','a^2 – 4*b – 5 =
0')

resuelve un sistema de dos
ecuaciones
no lineales

>> a=double(a) para expresarlas en forma
real

>> b=double(b)

>> f='exp(x)-pi*x';

>> x=solve(f)

>> x=double(x) cambia la solución
simbólica a real

x =

0.5538 resultados de MATLAB

1.6385

>> x=fzero(f,2) solución de una ecuación con un valor
inicial

x =

1.6385 resultado de MATLAB

>> x=fzero(f,[1,2]) solución usando un rango para la raiz

x =

1.6385 resultado de MATLAB

>> u=diff(f) diferenciación

>> v=int(f) integración analítica

>> r=int(f, 0, 2) integración entre límites

>>
g='x*exp(-x)';

>> r=int(g, 0,
Inf); integral
impropia

solución analítica y
gráfico de una EDO de primer orden con una
condición en el inicio

>>
y=dsolve('Dy=(x-y)/x','y(0)=0','x')

>> ezplot(y,0,2);

>> grid on

EDO de segundo orden con
condiciones

en el inicio y gráfico de la
solución

>>
y=dsolve('D2y+Dy+2*y-x-3=0','y(0)=0,Dy(0)=1','x')

>> ezplot(y,0,2);

>> grid on;

EDO de segundo orden con
condiciones

en los bordes

>>
y=dsolve('D2y-Dy+2*y-5*x-3=0','y(0)=0,y(1)=2','x')

>> ezplot(y,0,2);

>> grid on

>> f=’2*sin(x)*exp(x)’;

>> [x,y]=fminbnd(f,-2,2)
encuentra un mínimo local
de f en 1 £ x £ 4

>> ezplot(f,-2,2)

Ejercicio: Escriba directamente las instrucciones
necesarias para encontrar el valor del radio x de un
cilindro de 1000 cc de capacidad, de tal manera que el valor del
área sea el mínimo:

Primer enfoque:

  1. Escriba una función f en términos del
    radio x
  2. Grafique f con ezplot. Localice el intervalo para el
    mínimo de f(x)
  3. Use la función fminbnd para obtener el
    mínimo

x: radio, h: altura

>> f='2*pi*x*1000/(pi*x^2)+2*pi*x^2';

>> ezplot(f,0,10)

>> grid

>> x=fminbnd(f,4,6)

x =

5.4193

>> area=eval(f)

area =

553.5810

Segundo enfoque

  1. Derive f y obtenga la función a minimizar
    g.
  2. Grafique g con ezplot. Localice el intervalo de la
    raíz de g(x)=0
  3. Use la función fzero para obtener la
    raíz
  4. Use la funcion solve para obtener la
    raíz

x: radio, h: altura

>> g=diff(f)

g =

-2000/x^2+4*pi*x

>> x=fzero(char(g),[4,6])

x =

5.4193

>> x=solve(g)

x =

[ 5/pi*4^(1/3)*(pi^2)^(1/3)]

[
-5/2/pi*4^(1/3)*(pi^2)^(1/3)+5/2*i*3^(1/2)/pi*4^(1/3)*(pi^2)^(1/3)]

[
-5/2/pi*4^(1/3)*(pi^2)^(1/3)-5/2*i*3^(1/2)/pi*4^(1/3)*(pi^2)^(1/3)]

>> x=double(x)

x =

5.4193

-2.7096 + 4.6932i

-2.7096 – 4.6932i

Funciones especiales para medir eficiencia de
algoritmos

>> tic; Inicia cronómetro

>>
toc; muestra el
tiempo
transcurrido

>> tic; a=inv(rand(500,
500)); toc

tiempo utilizado en invertir una
matriz
500×500

GRAFICACIÓN

Gráfico de funciones de una
variable

>>
f='exp(x)-3*x'; función para el ejemplo (use comillas
simples)

>> ezplot(f) función básica para graficar f en
[-2p , 2p
]

>> ezplot(f, [0, 2]) función básica para graficar f en un
dominio
dado

>> grid on colocar cuadrículas en el dibujo

>> x=[0: 0.1:
2*pi]; puntos para evaluar alguna
función

>> y=sin(x); puntos
de la función seno

>> plot(x,y); función para graficar la función con
línea contínua

>> plot(x,y,'o') gráfico con puntos. Puede elegir: o
. * + x —

>> plot(x,y,'r') cambiar a color rojo. Puede
elegir r,b,y,m,g,w,k

>> plot(x,y,'og') grafique con círculos verdes.

>> grid on colocar cuadrículas en el dibujo

>> title('seno de x') incluya un título
en el gráfico

>> gtext('seno de x') posicione el texto en el
gráfico con el mouse

>> xlabel('X') rotule el eje horizontal

>> ylabel('Y') rotule el eje vertical

>> c=[0, 2*pi, -2,
2] defina la región para el
gráfico

>> axis(c)

>> hold on superponer siguientes gráficos

>> hold off deshabilitar opción anterior

>> clf borrar el
gráfico

>> figure(1) puede tener varias figuras abiertas

cada una en una ventana rotulada con 1,
2, …

>> subplot(2,3,1) puede dividir una figura en
subgráficos.

Ej. en 2 filas y 3 columnas. Activando
el gráfico 1

>> clf(1) borra el gráfico 1

>> clf borre
todos los gráficos

>>
x=[0:0.1:10};

>> y=exp(x);

>> semilogx(x,y) graficar en escalas logarítmicas

>> semilogy(x,y)

>> loglog(x,y) doble logarítmica

>> grid on

>> a=0:0.01:2*pi;

>> r=sin(3*a); 'rosa' de 3 pétalos

>> polar(a, r); grafique en coordenadas polares

Gráfico de funciones implícitas y
ecuaciones con dos variables

>> f='(x-2)^2+(y-3)^2-5';

>> ezplot(f); Graficar la circunferencia (x – 2)2 + (y
– 3)2 = 5

en el dominio -2p £ x£ 2p ,
-2p £
y£ 2p

>> ezplot(f,[-1,5,0,6]) Graficar f en el dominio -1£ x£ 5,
0£ y£ 6

>> grid on; Colocar
cuadrículas

>> hold on; Superponer el siguiente gráfico:

>>
g=’y-2*(x-3)^2-3’; una
parábola y=2(x-3)2-3 en el mismo dominio

>> ezplot(g,[-1,5,0,6])

Gráfico de funciones definidas en forma
paramétrica

>>
ezplot('sin(t)','cos(t)',[-pi,pi]); Graficar x=x(t), y=y(t) en -p £ t£ p

>>
ezplot('sin(3*t)*cos(t)','sin(3*t)*sin(t)',[0,pi]); Una
rosa de 3 pétalos

Editor de gráficos

Después que el gráfico ha sido realizado
puede utilizar las facilidades del editor de gráficos para cambiar las propiedades de
las figuras: color, tipo, etc. También puede realizar
estadísticas básicas y ajuste de
curvas. Adicionalmente puede insertar directamente en el
gráfico texto, líneas, flechas, rótulos,
etc.

Para habilitar el editor de gráficos seleccione
el botón tools en la barra de opciones del
gráfico y luego elija edit plot. Para realizar
estadísticas básicas y ajuste de curvas, elija
respectivamente Data Statistics y Basic
Fitting

Gráfico de funciones de dos
variables

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

>> mesh(a); graficar los elementos como puntos sobre el
plano.

El siguiente ejemplo es una referencia
para

graficar funciones de dos
variables

Graficar z = x2 –
y2, -2£
x£ 2, -3£ y£
3

>>
x=-2:0.1:2; dominio de la función para el ejemplo

>>
y=-3:0.1:3;

>> [u,v]=meshgrid(x,y); u, v: matrices q'
contienen cada par ordenado x,y

>> z=u.^2 –
v.^2; puntos de la
función z = x2 – y2

>> mesh(x, y, z) gráfico de malla

>> contour(x, y, z) gráfico de contorno

>> surfc(x, y, z) gráfico de superficie y contorno

>> surf(x, y, z) gráfico de superficie

>> xlabel('X') rotulación de eje x; también con
ylabel, zlabel

>> title('Silla de
montar') título para
el gráfico

>> colormap(copper); color del gráfico; también:
gray, jet, pink

>> shading interp; suavizado del gráfico (¡ tiene que
verlo !)

Adicionalmente puede usar las opciones del editor de
gráficos para editar la figura, rotar, cambiar la
perspectiva, insertar títulos, etc.

Insertar el gráfico en un
documento

Si desea insertar el gráfico elaborado con
MATLAB en un documento, usualmente escrito en WORD,
puede seguir el siguiente procedimiento:

Elija en la barra de opciones del gráfico el
botón File y luego la opción
Export

Elija una carpeta para almacenar el gráfico y un
nombre para el gráfico.

Guarde el gráfico con tipo .jpg

Copie el gráfico almacenado y péguelo en
el documento, en el lugar elegido.

PROGRAMACIÓN CON MATLAB

Archivos de comandos

Para crear un archivo de
comandos (programa, o
script), seleccione en la barra de herramientas
de MATLAB la opción: File ® New ®
M-file

o presione en el ícono respectivo. Se abre una
ventana de edición

En la ventana de edición escriba los comandos y
almacénelos en un archivo con algún nombre. Puede
incluir comentarios con el símbolo %

Ej. Escriba en la ventana de edición las
instrucciones para graficar sen(x) entre 0 y 2p

x=0:0.1:2*pi;

y=sin(x);

plot(x,y);

grid on

Guarde el archivo con algún nombre, ejemplo:
prueba

Para ejecutar el programa escriba en la ventana de
comandos

>>
prueba

Para editar un archivo de comandos, seleccione en la
barra de herramientas de MATLAB la opción: File
® Open
o seleccione el
ícono respectivo.

En el archivo abierto en la ventana de edición
haga los cambios y guárdelo nuevamente con el mismo
nombre.

Estructuras de control de flujo
en MATLAB

Instrucciones de Entrada y Salida

Ingreso de un dato desde el teclado: variable=input(‘mensaje’);

Ej.

x = input('ingrese un dato ');

Salida de un resultado a la
pantalla: disp(valor)

Ej.

x=exp(2);

disp(x);

Salida de mas de un resultado a pantalla: disp([valor,
valor, …]);

Ej.

x=2^7;

y=sqrt(pi);

disk([x, y]);

Salida de resultados formateados a
pantalla: fprintf(‘formatos’,variables)

Ej.

x=2^7;

y=sqrt(pi);

fprintf('%d %f’',x,y);

Puede especificar cantidad de columnas y
decimales:

Ej.

x=2^7;

y=sqrt(pi);

fprintf('%5d %8.3f’',x,y);

Otras especificaciones de formato puede verlas con
help fprintf

Decisiones (instrucción
if)

if
condición if condición

instrucciones instrucciones

end else

instrucciones

end

Ej. Escriba y almacene el siguiente programa para
mostrar el mayor entre

dos datos:

a=input('ingrese el primer dato ');

b=input('ingrese el segundo dato ');

if
a>b

m=a;

else

m=b;

end

disp(m);

Guárdelo con el nombre prueba y
úselo desde la ventana de comandos:

>> prueba

ingrese el primer dato 5 interacción con MATLAB

ingrese el segundo dato 8

8

Decisiones múltiples
(instrucción
switch)

Ej. Escriba el siguiente programa para
instrumentar la definición:

y =

x=input('dato ');

switch
x

case
1,

y=3;

case
{2,3,4},

y=2*x+1;

otherwise

y=exp(x);

end

disp(y);

Almacénelo con algún
nombre. Ejemplo prueba2

Para usarlo escriba en la ventana de comandos

>>
prueba2

Repetición condicionada al inicio
(instrucción while)

while
condición

instrucciones

end

Ej. Sume los n primeros
términos de la serie armónica:

n=input('cantidad de terminos ');

s=0;

while
n>0

s=s+1/n;

n=n-1;

end

disp(s);

Almacénelo con algún nombre. Ejemplo
prueba3

Para usarlo escriba en la ventana de comandos

>> prueba3

Repetición condicionada a una secuencia
(instrucción
for)

for
variable=inicio: incremento: final

instrucciones

end

Ej. Sume los n primeros términos de la serie
armónica:

n=input('cantidad de terminos ');

s=0;

for
i=1:n

s=s+1/i;

end

disp(s);

Almacénelo con algún nombre. Ejemplo
prueba4

Para usarlo escriba en la ventana de comandos

>>
prueba4

Puede interrumpir una repetición
(instrucción break)

Ej. Lea n datos. Calcule y muestre
la raíz cuadrada. Pero si entra un valor negativo, muestre
un mensaje y termine

n=input(‘cantidad de datos
‘);

for
i=1:n

x=input(‘ingrese siguiente dato
‘);

if
x<0

disp(‘Error’);

break;

else

r=sqrt(x);

disp([x,r]);

end

end

Para ver la descripción de las estructuras
del lenguaje de
MATLAB, escriba

>> help lang

Funciones en
MATLAB

En general una función en los lenguajes de
programación es un conjunto de instrucciones que se
escriben separadamente del programa y que realizan alguna tarea
especificada. Los usuarios pueden definir funciones y
agregarlas a las funciones propias de MATLAB.

El mecanismo usual para trasmitir datos a las
funciones es mediante una lista de variables que se denominan
parámetros. Sin embargo, a diferencia de los programas, las
variables que se usan dentro de una función, no
están disponibles fuera de ella, a menos que se use una
declaración explícita y que se verá mas
adelante.

Declaración de una función en
MATLAB

function
variable = nombre (parámetros)

instrucciones

variable contendrá el
resultado que entrega la función

parámetros son variable que reciben los
datos que entran a la función

nombre identifica a la función

instrucciones se incluyen en la función
según la tarea especificada

Las funciones se escriben en la ventana de
edición de Matlab y se las almacena en alguna carpeta.
Es conveniente que el nombre asignado sea igual al nombre usado
en la declaración de la función.

El uso de una función es similar al uso de las
funciones comunes de MATLAB. El nombre debe coincidir con el
nombre asignado, aunque los parámetros pueden tener
nombres diferentes, pero su uso debe ser coherente.

Ej. Escriba una función para elegir el mayor
entre dos números

Abra un documento nuevo en la ventana de edición
y escriba:

function m
= mayor(a, b)

if
a>b

m = a;

else

m = b;

end

m es la variable que entrega el
resultado

mayor es el nombre de la
función

a, b son los parámetros que ingresan los
datos a la función

Almacene esta función en el disco con el nombre
mayor

Suponer que quiere escoger el mayor entre ep y p
e.

Escriba en la ventana de comandos:

>> a = exp(pi);

>> b = pi^exp(1);

>> m = mayor(a, b)

23.1407 (respuesta que muestra MATLAB)

Los nombres de las variables pueden ser
diferentes:

>> x = exp(pi);

>> y = pi^exp(1);

>> t = mayor(x, y)

  1. (respuesta que muestra MATLAB)

Ej. Escriba una función que reciba un
número y determine si es un número primo. El
resultado que entrega la función será 1 o 0
según corresponda;

function p
= primo( x )

c = 0;

for d = 1:
x

if mod(x,
d) == 0

c = c + 1;

end

end

if c >
2

p = 0;

else

p = 1;

end

Guarde la función en el disco con el nombre
primo

Pruebe la función desde la ventana de
comandos

>> x = 25;

>> p = primo(x)

  1. (resultado que muestra MATLAB)
  2. >> x = 43;

    >> p = primo(x)

  3. (resultado que muestra MATLAB)

Escriba en una nueva ventana de edición un
programa que use la función primo para encontrar
todos los números primos menores a 20:

for x = 1:
20

if
primo(x) == 1

disp(x);

end

end

Almacene su programa en el disco con el nombre
prueba

En la ventana de comandos pruebe su
programa:

>> prueba

1 (resultados mostrados por MATLAB)

2

3

5

7

11

13

17

19

Ejercicios.-

  1. Escriba una función que reciba 3
    números y entregue como resultado el mayor con el
    siguiente encabezado:
  2. function m=mayor(a,b,c)

    Escriba un programa que lea las tres dimensiones de
    un bloque, calcule el valor de las diagonales de sus caras y
    use la función anterior para encontrar el valor de la
    mayor diagonal

  3. Escriba una función que muestre cual es el
    valor de la suma de los cubos de los primeros n números
    naturales con el siguiente encabezado:

function s=suma(n)

Escriba n programa que use la función suma y la
función primo anterior para determinar si las suma de
los cubos de los 7 primeros números naturales es un
número primo

Una función puede entregar más de un
resultado

Las variables que entregan los resultados deben
definirse entre [ ]

Ej. Escriba una función que entregue el
área y el volumen de un
cilindro dados su radio (r) y su altura (h)

function
[area, vol] = cilindro(r, h)

area = 2*pi*r*h + 2*pi*r^2;

vol = pi*r^2*h;

Escriba y almacene la función con el nombre
cilindro.

Use la función para calcular el área y
el volumen de una lata de cilíndrica que tiene un
diámetro de 10cm y una altura de 12cm

Escriba en la ventana de comandos:

>> r = 5;

>> h = 12;

>> [a, v] = cilindro(r,h);

>> a

>> v

MATLAB mostrará los resultados almacenados en a y
en v

Las variables definidas dentro de una función
son locales, es decir que a diferencia de los programas, no son
visibles fuera de la función

Ej. Escriba la función:

function
x=fn(a, b)

c = a + b;

x = 2*c;

Almacene con el nombre fn y úsela desde la
ventana de comandos:

>> a = 3;

>> b = 5;

>> t = fn(a, b)

t = 16(resultado que muestra MATLAB)

>> c(intentamos conocer el valor de c en
la función)

??? Undefined function or variable
'c'.
(mensaje de error de MATLAB)

Compare con lo que ocurre si escribe un programa en vez
de la función;

a = input(‘ingrese dato
‘);

b = input(‘ingrese dato
‘);

c = a + b;

x = 2*c;

disp(x);

Almacene con el nombre prueba y active el
programa:

>> prueba

ingrese dato 3(interacción para ingreso de
datos)

ingrese dato 5

16(resultado que muestra MATLAB)

>> c

c = 8(la variable c puede ser
utilizada)

Es posible hacer que las variables de una
función sean visibles fuera de su ámbito, mediante
la declaración
global

Ej. Modifique la función fn para que la
variable c sea visible:

function
x=fn(a, b)

global
c;

c = a + b;

x = 2*c;

Almacene con el nombre fn y use la
función:

>> a = 3;

>> b = 5;

>> t = fn(a, b)

t = 16 (resultado que muestra
MATLAB)

>> c(intentamos conocer el valor de c en
la función)

c=8(la variable c está disponible
ahora)

Una función puede no necesitar
parámetros

Ej. Escriba una función que lea y valide un
entero entre 1 y 5

function
n=entero

x=0;

while
x==0

n=input(‘ingrese un entero entre 1 y 5
‘);

if n>0
& n<6

x=1;

end

end

Una función puede no entregar resultados ni
usar parámetros

Ej. Escriba una
función que imprima un menú

function
menú

disp(‘1) ingresar’);

disp(‘2) borrar’);

disp(‘3) salir’);

para usa esta función
escriba

>> menu

Una función puede recibir como
parámetros vectores o
matrices.

Ej. Escriba una función que reciba un vector y
entregue el promedio del valor de sus elementos.

function
p=prom(x)

n=length(x);

s=0;

for i=1:n

s=s+x(i);

end

p=s/n;

Para usar esta función debe definir el vector
antes de llamar a la función.

La función determina la longitud del vector con
la función length

>> x=[2 7 3 5 4 7 6];

>> t=prom(x)

t =
4.8571
(es el resultado que
muestra MATLAB)

Una función puede entregar como resultado un
vector o una matriz

Ej. Escriba una función que entregue un vector
de longitud n conteniendo números aleatorios enteros con
valor entre 1 y 6:

function
d=dados(n)

for i=1:n

d(i)=fix(rand*6+1);

end

Para usar esta función debe enviar un valor para
el parámetro n:

>> t=dados(5)

t = 6 3 4 3
2
(es el vector resultante que
entrega MATLAB)

Una función puede recibir y entregar vectores
o matrices

Ej. Escriba una función que reciba dos vectores
A, B y entregue un tercer vector que contenga los elementos que
están en ambos vectores:

function
C=interseccion(A,B)

n=length(A);

m=length(B);

k=1;

for i=1:n

for j=1:m

if A(i) ==
B(j)

C(k) = A(i);

k = k + 1;

end

end

end

Para usar esta función debe definir los
vectores que entran. Recuerde que pueden tener nombres
diferentes a los que usa la función:

>> A=[2 7 5 4 3 8];

>> B=[7 1 3 9 0];

>> C=interseccion(A,B)

C = 7
3
(Es el vector resultante que
entrega MATLAB)

Si la salida de una función es antes del
final, puede usar el comando return

Ej. Escriba una función para determinar si los
elementos de un vector están en orden
creciente:

function
t=orden(x)

t=0;

n=length(x);

for
i=1:n-1

if x(i)
> x(i+1)

return;

end

end

t=1;

Un programa puede llamar a funciones

Ej. Escriba una función para eliminar espacios
intermedios de una frase:

function
x=compactar(f)

n=length(f);

x='';

for i=1:n

if f(i) ~= '
'

x = strcat(x, f(i));

end

end

Ahora escriba un programa que lea una frase, use la
función compactar para eliminar los espacios
intermedios, y luego muestre un mensaje en caso de que sea
simétrica: sus caracteres opuestos son
iguales

f=input('ingrese una frase ');

f=compactar(f);

n=length(f);

sim=1;

for
i=1:n/2

if f(i) ~=
f(n-i+1)

sim=0;

end

end

if sim ==
1

disp('la frase es simetrica');

else

disp('la frase no es simetrica');

end

Probamos este programa suponiendo que lo hemos
almacenado con el nombre prueba:

>> prueba

ingrese una frase 'anita lava la
tina';
(dato que
ingresamos)

la frase es
simetrica
(resultado de MATLAB)

Una función puede llamarse a si
misma

Estas funciones de denominan recursivas

Ej. Use la siguiente definición recursiva para
calcular el máximo común divisor entre dos
números enteros:

Escriba y almacene una función para instrumentar
esta definición:

function
c=mcd(a, b)

if
a>b

c=mcd(a-b, b);

else

if
b>a

c=mcd(a, b-a);

else

c=a;

end

end

Use la función:

>> x=mcd(36, 48)

Para desplegar un mensaje de error y terminar la
ejecución use error

Ej.

if
d<0

error('valor incorrecto');

end

———————————————————————————-

Practique: Funciones del Módulo de
Estadística

normpdf: distribución de probabilidad
normal

>> x=4:0.1:10;

>> p=normpdf(x,7,1);

>> plot(x,p)

normcdf: Distribución de
probabilidad normal acumulada

Calcule la probabilidad que una variable aleatoria
distribuida normalmente, con media 10 y desviación
estándar 2, tenga un valor entre 11.4 y
13.5

>> p=normcdf(13.5, 10, 2) – normcdf(11.4, 10,
2);

p =

0.2019

norminv: Inversa de la
distribución normal acumulada

Encuentre un intervalo de 99% de probabilidad para
una variable con distribución normal con media 2 y
desviación estándar 1

>> p=[0.005 0.995];

>> x=norminv(p,2,0.5)

x =

0.7121 3.2879

Para chequear

>>
p=normcdf(3.2879,2,0.5)-normcdf(0.7121,2,0.5)

p =

0.9900

Prueba de Hipótesis

[h,p,c]=ztest(x,u,sn);

>> [h,p,c]=ztest(2,2.05,0.04)

h =

0

p =

0.2113

c =

1.9216 2.0784

Practique: Una función que entrega un
resultado analítico

Escriba y almacene una función para obtener el
polinomio de interpolación en forma analítica con
la fórmula de Lagrange:

function p=Lagrange(x,y)

p=0;

syms t;

n=length(x);

for i=1:n

L=1;

for j=1:n

if i~=j

L=L*(t-x(j))/(x(i)-x(j));

end

end

p=p+L*y(i);

p=simplify(p);

end

Use la función desde la línea de
comandos

>> x=[3, 5, 6, 8, 9];

>> y=[3.5, 4.7, 4.9, 5.2, 6.8];

>> p=Lagrange(x,y)

>> plot(x,y,'o'), grid, hold

>> ezplot(p,x(1),x(5))

Manejo de
archivos en
MATLAB

El siguiente ejemplo completo es una referencia para
conocer las instrucciones de MATLAB para manejo de
archivos

Una aplicación de manejo de un archivo con
datos de estudiantes.

Los datos que se almacenan en el archivo
incluyen:

código
del estudiante (entero de 5 dígitos)

código de la materia
(entero de 5 dígitos)

calificación obtenida por el estudiante en
la materia (entero de 3 dígitos)

El programa debe pedir un nombre para el archivo,
abrirlo para agregar datos y ofrecer las siguientes opciones
mediante un menú:

1) Ingreso de un nuevo dato

2) Dado el código de un estudiante, mostrar
sus materias y calificaciones

3) Dado el código de una materia, mostrar los
estudiantes y su calificación

4) Salir

Variables que son usadas en el
programa

e codigo de
estudiante

m codigo de materia

c calificacion

arch nombre del archivo dado por el
usuario

function
control

global
arch;

clc;

arch=input('ingrese el nombre del archivo
');

op=0;

while
op~=4

op=menu;

switch op

case 1,
ingresar;

case 2,
consultae;

case 3,
consultam;

end

end

function
op=menu

clc;

disp('1) ingreso');

disp('2) consulta por estudiante');

disp('3) consulta por materia');

disp('4) salir');

op=input('ingrese una opcion ');

function
ingresar

global
arch;

f=fopen(arch,'a+');

e=input('codigo de estudiante ');

m=input('codigo de materia ');

c=input('calificacion ');

fprintf(f,'%5d%5d%3d',e,m,c);

fclose(f);

function
consultae

global
arch;

f=fopen(arch,'r');

if f<0

disp('archivo no existe ');

pause;

return;

end

x=input('codigo de estudiante ');

while
~feof(f)

e=fscanf(f,'%d',1);

m=fscanf(f,'%d',1);

c=fscanf(f,'%d',1);

if e==x

fprintf('n codigo de materia %5d',m);

fprintf('n calificacion %3d',c);

end

end

pause;

fclose(f);

function
consultam

global
arch;

f=fopen(arch,'r');

if f<0

disp('archivo no existe ');

pause;

return;

end

x=input('codigo de materia ');

while
~feof(f)

e=fscanf(f,'%d',1);

m=fscanf(f,'%d',1);

c=fscanf(f,'%d',1);

if m==x

fprintf('n codigo de estudiante
%5d',e);

fprintf('n calificacion %3d',c);

end

end

pause;

fclose(f);

INTERACCIÓN CON OTROS
ENTORNOS

Interacción con EXCEL

1) Importar una tabla de datos desde Excel a una
matriz en MATLAB

  1. En Excel cree la tabla y almacénela con
    formato tipo texto delimitado con tabulaciones. Elija
    algún nombre. Ejemplo T.txt
  2. En MATLAB cargue la tabla T y
    úsela como una matriz:

>> load T.txt;

>> A=T

2) Exportar una matriz de datos desde MATLAB a una
tabla en Excel

  1. A: nombre de la matriz en MATLAB

    T: nombre para la tabla
    almacenada

    >> save T A -ascii

  2. En MATLAB cree una matriz y almacénela
    con el comando save con el siguiente formato. Elija los
    nombres. Ejemplo
  3. En Excel abra el archivo T y
    úselo como una tabla de datos

Bibliografía

Using Matlab, Version 6, Computation, Visualization,
Programming,

The Math Works Inc.

 

Autor

Luis Rodríguez Ojeda

Instituto de Ciencias
Matemáticas

Escuela Superior Politécnica del
Litoral

Guayaquil, Ecuador

2004

Partes: 1, 2, 3

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter