Introducción a MATLAB



Documentos relacionados
Introducción a MATLAB

Introducción a MATLAB

UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN

Práctica 0: Introducción a Matlab. Matlab es un acrónimo: MATrix LABoratory

N = {1, 2, 3, 4, 5,...}

Sistemas de Ecuaciones Lineales

Fundamentos básicos de Matlab

Ejercicio 1: Realiza las siguientes divisiones por el método tradicional y por Ruffini: a)

Cálculo Numérico (521230)

Practica 2. Estructuras de Datos en MATLAB

Sistema de ecuaciones algebraicas

2 Operaciones de producto y división de polinomios

INSTRUCCIONES PARA EL USO DEL SOFTWARE (IS)

TUTORIAL INTRODUCTORIO DE MATLAB

Tema 1. Álgebra lineal. Matrices

CALCULO GRADO EN INGEN. INFORM. DEL SOFTWARE PRACTICA 1. INTRODUCCIÓN A MATLAB

Una matriz es una tabla ordenada (por filas y columnas) de escalares a i j de la forma: a

Vectores y Matrices. Tema 3: Repaso de Álgebra Lineal Parte I. Contenidos

UNIVERSIDAD TECNOLÓGICA DE PEREIRA Programa de tecnología Eléctrica. Introducción a Matlab Taller No. 1

Contenidos mínimos 4B ESO. 1. Contenidos. Bloque I: Aritmética y álgebra.

3.2 DIVIDIR UN POLINOMIO POR x a. REGLA DE RUFFINI

Algorítmica y Lenguajes de Programación. MATLAB (iii)

Tema 2: Uso de los comandos básicos

Introducción al MATLAB

Polinomios. 1.- Funciones cuadráticas

Anexo 1 ÁLGEBRA I.- Operaciones en las Expresiones Algebraicas II.- Factorización y Operaciones con las Fracciones III.- Funciones y Relaciones

Ing. Ramón Morales Higuera

CURSOSO. Aritmética: Númerosnaturalesyenteros. Númerosracionalesyfraciones. MATEMÁTICAS. AntonioF.CostaGonzález

Lección 1. Algoritmos y conceptos básicos.

Introducción a Matlab y Simulink

POTENCIAS. MÚLTIPLOS Y DIVISORES. MÁXIMO COMÚN DIVISOR Y MÍNIMO COMÚN MÚLTIPLO.

1.4 SISTEMAS HOMOGÉNEOS DE ECUACIONES. 36 CAPÍTULO 1 Sistemas de ecuaciones lineales y matrices

MENORES, COFACTORES Y DETERMINANTES

MODULO DE LOGARITMO. 1 log log N x b N N se llama antilogaritmo, b > 0 y b 1. Definición de Logaritmo. Liceo n 1 Javiera Carrera 2011

Clase 9 Sistemas de ecuaciones no lineales

Introducción a MATLAB

ES.N.3.2, (+)ES.N.4.2, (+)ES.G.38.2 Enfoque de contenido Operaciones con números complejos. Destreza Sumar, restar y multiplicar números complejos

Programación con Matlab

MATEMÁTICAS APLICADAS A LAS C.C. SOCIALES

1. Conocimientos previos. 1 Funciones exponenciales y logarítmicas.

Funciones Exponenciales y Logarítmicas

Breve introducción al OCTAVE

INFORMÁTICA MATLAB GUÍA 3 Operaciones con Matrices

Sistemas de Ecuaciones y Matrices

IES Fco Ayala de Granada Junio de 2011 (Específico 2 Modelo 1) Soluciones Germán-Jesús Rubio Luna

VOCABULARIO HABILIDADES Y CONCEPTOS

La ecuación de segundo grado para resolver problemas.

Determinante de una matriz

2.4. Números complejos

José A. Jiménez Nieto

FECHA OBJETIVO CONTENIDO 12 DE MARZO. Introducir el tema de funciones

GIMNASIO VIRTUAL SAN FRANCISCO JAVIER Valores y Tecnología para la Formación Integral del Ser Humano UNIDAD II EXCEL

Prácticas de Análisis Matricial con MATLAB

MICROSOFT EXCEL QUÉ ES MICROSOFT EXCEL?

Definición(2) La base (r) de un sistema de numeración especifica el número de dígitos o cardinal* de dicho conjunto ordenado. Las bases más utilizadas

Capitulo 6. Matrices y determinantes

Los números naturales

Ejemplo 1. Ejemplo introductorio

Cálculo científico y técnico con HP49g/49g+/48gII/50g Módulo 3: Aplicaciones Tema 3.2 Determinación aproximada de extremos: Método de Newton-Raphson

Curso de Álgebra Lineal

POLINOMIOS Y FRACCIONES ALGEBRAICAS

ESPACIO NULO DE A: RESOLUCIÓN DE AX = 0 3.2

Lección 10: Representación gráfica de algunas expresiones algebraicas

Cómo introducir funciones en Geogebra y desplazarte por ellas para explorar sus propiedades.

Herramientas digitales de auto-aprendizaje para Matemáticas

FECHA OBJETIVO CONTENIDO Semana. Introducir el tema de funciones ( tentativo)

Antes de iniciar el tema se deben de tener los siguientes conocimientos básicos:

CURSO BÁSICO DE MATEMÁTICAS PARA ESTUDIANTES DE ECONÓMICAS Y EMPRESARIALES. Unidad didáctica 4. Números reales y números complejos

3. Resolver triángulos rectángulos utilizando las definiciones de las razones trigonométricas.

GUIA PRACTICA PARA LA APLICACIÓN DE MS EXCEL TECNOLOGIA/ INFORMATICA

Los números enteros. > significa "mayor que". Ejemplo: 58 > 12 < significa "menor que". Ejemplo: 3 < 12 Cualquier número positivo siempre es mayor

Definición de vectores

LOGARITMOS. El logaritmo de un número es, entonces, el exponente a que debe elevarse otro número que llamado base, para que dé el primer número.

Cursada Segundo Cuatrimestre 2012 Guía de Trabajos Prácticos Nro. 1

Ecuaciones. 3º de ESO

ALGEBRA Y GEOMETRÍA II 2º semestre Año: Guía de Estudio y Ejercitación propuesta

FUNCIONES CUADRÁTICAS. PARÁBOLAS

SESIÓN 1 PRE-ALGEBRA, CONCEPTOS Y OPERACIONES ARITMÉTICAS BÁSICAS

Inducción a MATLAB. Álgebra Lineal. Escuela de Matemáticas. Facultad de Ciencias Universidad Nacional de Colombia Sede Medellín

Una primera sesión de trabajo con MATLAB

UNIDAD I. ALGORITMOS

SISTEMAS DE ECUACIONES LINEALES

Expresión, Operador, Operando, Asignación, Prioridad

Ejercicios de Excel. 2. Repetir el ejercicio anterior, pero suponiendo que los ingresos y los gastos están dados por trimestres.

>> % suma de dos números reales, el resultado se asigna a ans

BLOQUE DE ÁLGEBRA: TEMA 1: MATRICES.

Clase 9 Sistemas de ecuaciones no lineales

Objetivos: Al inalizar la unidad, el alumno:

Lección 8: Potencias con exponentes enteros

P. A. U. LAS PALMAS 2005

PROBLEMAS DE DIAMANTE 2.1.1

IES Francisco Ayala Modelo 1 (Septiembre) de 2007 Solución Germán Jesús Rubio Luna. Opción A

Expresiones algebraicas

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA DIVISIÓN DE CIENCIAS BÁSICAS COORDINACIÓN DE MATEMÁTICAS LOGARITMOS

Transcripción:

Introducción a MATLAB Gerardo Rodríguez Universidad de Salamanca MATLAB (MATrix LABoratory) es un sistema interactivo de software para gráficas y cálculos numéricos. Como su nombre indica, MATLAB está especialmente diseñado para cálculos con matrices: resolución de sistemas de ecuaciones lineales, factorización de matrices, etc. Además, tiene una gran variedad de capacidades gráficas, y puede ampliarse mediante programas escritos en su propio lenguaje de programación. MATLAB se construye en torno al lenguaje MATLAB. La forma de ejecutar este código es sencilla; basta con escribirlo en el prompt, >>, en la ventana de comandos, uno de los elementos del escritorio de MATLAB. Las secuencias de comandos pueden guardarse en un archivo de texto, normalmente utilizando el editor de MATLAB, como un script o encapsulado como una función, ampliando así los comandos disponibles. En las siguientes secciones, daremos una introducción a algunas de las características más útiles de MATLAB. Hay un montón de ejemplos. La mejor manera de aprender a utilizar MATLAB es leer este documento mientras se ejecuta MATLAB, experimentando e intentando realizar los ejemplos. Introduciendo vectores y matrices. El tipo de datos básico en MATLAB es una tabla n-dimensional de números de doble precisión. Los nuevos tipos de datos incluyen estructuras, clases, y "cell arrays", que son tablas (matrices) con la posibilidad de contener diferentes tipos de datos. Los siguientes comandos muestran cómo introducir números, vectores y matrices, y asignarlos a las variables >> a = 2 //scalar Si se pulsa enter, se verá: a = 2 >> x = [;2;3] //Vector Presionando enter, x = 2 3 >> A = [ 2 3;4 5 6;7 8 0] //Matrix Capítulo 2 pág.

Presionando enter, A = 2 3 4 5 6 7 8 0 Nótese que las filas de una matriz están separadas por punto y coma, mientras que las entradas de cada fila están separadas por espacios (o comas). Un comando útil es whos, que muestra los nombres de todas las variables definidas y sus tipos: >> whos Name Size Bytes Class A 3x3 72 double array a x 8 double array x 3x 24 double array Grand total is 3 elements using 04 bytes Hay que tener en cuenta que cada una de estas tres variables es una tabla, la "forma" de la tabla determina su tipo exacto. El escalar 'a' es una tabla, el vector 'x' es una tabla 3, y la matriz 'A' es una tabla 3 3 (véase el tamaño-size de entrada para cada variable). Una forma de introducir una tabla n-dimensional (n>2), consiste en concatenar dos o más tablas (n-)-dimensionales utilizando el comando cat. Por ejemplo, el siguiente comando concatena dos matrices 3 2 para crear una matriz 3 2 2: >> C = cat(3,[,2;3,4;5,6],[7,8;9,0;,2]) C(:,:,) = 2 3 4 5 6 C(:,:,2) = 7 8 9 0 2 >> whos Name Size Bytes Class A 3x3 72 double array C 3x2x2 96 double array a x 8 double array x 3x 24 double array Grand total is 25 elements using 200 bytes El argumento "3" en el comando cat indica que la concatenación resultante tendrá dimensión 3. Si D y E fueran matrices k m n, el comando >> cat(4,d,e) Capítulo 2 pág. 2

crearía una matriz k m n 2 (puedes intentarlo). MATLAB permite introducir matrices con números complejos. La unidad imaginaria i = está representada por cualquiera de las variables predefinidas i o j: >> sqrt(-) 0 +.0000i Este ejemplo muestra cómo aparecen los números complejos en MATLAB, y también pone de manifiesto que la raíz cuadrada es una función predefinida. El resultado del último cálculo no asignado a una variable se asigna automáticamente a la variable ans, que puede entonces ser utilizada como cualquier otra variable en los cálculos posteriores. He aquí un ejemplo: >> 00^2-4*2*3 //Press enter 9976 >> sqrt(ans) //Press enter 99.8799 >> (-00+ans)/4 //Press enter -0.0300 Los operadores aritméticos trabajan como se espera de los números. Una variable predefinida que se utiliza a menudo es p: >> pi //Press enter 3.46 Algunas de las funciones útiles, tales como seno, coseno, tangente, exponencial y logaritmo están predefinidas. Por ejemplo: >> cos(.5)^2+sin(.5)^2 //Press enter >> exp() //Press enter 2.783 >> log(ans) //Press enter Capítulo 2 pág. 3

Si se tiene alguna duda acerca de cualquier comando o función, se puede acceder a un amplio sistema de ayuda en línea mediante la expresión help <command-name>. Por ejemplo: >> help ans ANS The most recent answer. ANS is the variable created automatically when expressions are not assigned to anything else. ANSwer. >> help pi PI 3.45926535897... PI = 4*atan() = imag(log(-)) = 3.45926535897... Una buena forma de empezar a utilizar esta expresión es con el comando help help, que explica cómo trabaja el sistema de ayuda, así como algunos comandos relacionados. Si se escribe únicamente help, produce una lista de temas para los que hay ayuda disponible; Si observamos dicha lista nos encontramos con la entrada elfun-- elementary math functions ("elfun-- funciones matemáticas elementales"). Escribiendo help elfun se obtiene una lista de las funciones matemáticas disponibles. Operaciones aritméticas con matrices. MATLAB puede realizar las operaciones aritméticas estándar con matrices, vectores y escalares: suma, resta y multiplicación. Además, MATLAB define una noción de división de matrices, así como operaciones "vectorizadas". Todas las operaciones vectorizadas (en éstas se incluyen suma, resta, y multiplicación por un escalar, como se explica más adelante) se pueden aplicar a tablas n-dimensionales para cualquier valor de n, pero la multiplicación y la división se limitan a vectores y matrices (n 2). Operaciones estándar Si A y B son matrices, entonces MATLAB puede calcular A+B y A-B cuando estas operaciones están definidas. Por ejemplo, consideremos los siguientes comandos: >> A = [ 2 3;4 5 6;7 8 9]; >> B = [ ;2 2 2;3 3 3]; >> C = [ 2;3 4;5 6]; >> whos Name Size Bytes Class A 3x3 72 double array B 3x3 72 double array C 3x2 48 double array Grand total is 24 elements using 92 bytes >> A+B Capítulo 2 pág. 4

2 3 4 6 7 8 0 2 Pero si se escribe: >> A+C??? Error using ==> + because Matrix dimensions must agree. La multiplicación de matrices también se define: >> A*C 22 28 49 64 76 00 >> C*A??? Error using ==> * because Matrix dimensions must agree. Si A es una matriz cuadrada y m un entero positivo, entonces A^m es el producto de m factores de A. Sin embargo, no está definida ninguna noción de multiplicación para tablas multidimensionales con más de 2 dimensiones: >> C = cat(3,[ 2;3 4],[5 6;7 8]) C(:,:,) = 2 3 4 C(:,:,2) = 5 6 7 8 >> D = [;2] D = 2 >> whos Name Size Bytes Class C 2x2x2 64 double array D 2x 6 double array Grand total is 0 elements using 80 bytes >> C*D??? Error using ==> * No functional support for matrix inputs. Capítulo 2 pág. 5

De la misma manera, el operador exponencial ^ solamente está definido para tablas cuadradas de dimensión 2 (matrices). Resolviendo ecuaciones matriciales utilizando matrix division (división de matrices). Si A es una matriz cuadrada, no singular, entonces la solución de la ecuación Ax = b es x = A b. MATLAB lleva a cabo esta operación con el operador backslash (barra invertida) \: >> A = rand(3,3) A = 0.290 0.6793 0.594 0.0470 0.9347 0.830 0.6789 0.3835 0.0346 >> b = rand(3,) b = 0.0535 0.5297 0.67 >> x = A\b x = -59.3380 34.8625-344.5078 Nota: el uso de la función predefinida rand, crea una matriz con entradas de una distribución uniforme en el intervalo (0,). (Véase help rand para obtener más información). La expresión A\b es (matemáticamente) equivalente a multiplicar b por la izquierda por A (sin embargo, MATLAB no calcula la matriz inversa, sino que resuelve el sistema lineal directamente). Cuando se usa con una matriz no cuadrada, el operador backslash resuelve el sistema adecuado por el método de mínimos cuadrados; ver help slash para obtener más detalles. Por supuesto, como con los otros operadores aritméticos, las matrices deben ser compatibles en tamaño. El operador división no está definido para tablas n- dimensionales con n>2. Funciones y operadores "vectorizados" MATLAB tiene muchos comandos para crear matrices especiales; el siguiente comando crea un vector fila cuyos elementos aumentan aritméticamente: >> t = :5 t = 2 3 4 5 Capítulo 2 pág. 6

Los elementos pueden cambiar por pasos no unitarios: >> x = 0:.: x = Columns through 7 0 0.000 0.2000 0.3000 0.4000 0.5000 0.6000 Columns 8 through 0.7000 0.8000 0.9000.0000 También está permitido un paso negativo. El comando linspace produce resultados similares. Crea un vector con entradas con paso lineal. En concreto, linspace (a,b,n) crea un vector de longitud n con las b a 2( b a) entradas a, a +, a +,..., b : n n >> linspace(0,,) Columns through 7 0 0.000 0.2000 0.3000 0.4000 0.5000 0.6000 Columns 8 through 0.7000 0.8000 0.9000.0000 Existe un comando similar, logspace, para la creación de vectores con entradas con paso logarítmico: >> logspace(0,,) Columns through 7.0000.2589.5849.9953 2.59 3.623 3.98 Columns 8 through 5.09 6.3096 7.9433 0.0000 Véase help logspace para obtener más detalles. Un vector con entradas con paso lineal, puede considerarse como la definición de una red unidimensional, lo cual es útil para las gráficas de funciones. Para crear una gráfica de y = f(x) y conectarla con segmentos lineales, uno puede crear una red en el vector x y luego crear un vector y con los correspondientes valores de la función. Es fácil crear los vectores necesarios para representar gráficamente una función predefinida, ya que las funciones de MATLAB están vectorizadas. Esto significa que si una función predefinida como la función seno, se aplica sobre una tabla, el efecto que se consigue es crear una nueva tabla del mismo tamaño cuyas entradas son los valores de la función sobre las entradas de la tabla original. Por ejemplo (véase la Figura ): >> x = (0:.:2*pi); >> y = sin(x); >> plot(x,y) Capítulo 2 pág. 7

Figura : Gráfica de y = sin(x) MATLAB ofrece también operadores aritméticos vectorizados, que son los mismos que los operadores ordinarios, precedidos por ".". Por ejemplo, para representar x gráficamente y = : 2 + x >> x = (-5:.:5); >> y = x./(+x.^2); >> plot(x,y) 0.5 0.4 0.3 0.2 0. 0-0. -0.2-0.3-0.4-0.5-5 -4-3 -2-0 2 3 4 5 Figura 2: Gráfica de x y = + x 2 Capítulo 2 pág. 8

x.^2 eleva al cuadrado cada uno de los componentes de x, y x./z divide cada uno de los componentes de x por el correspondiente componente de z. La suma y la resta se realizan componente a componente por definición y no hay operadores".+" o ".-". Obsérvese la diferencia entre A^2 y A.^2. El primero está definido sólo si A es una matriz cuadrada, mientras que el segundo se define para cualquier lista n-dimensional A. Algunos comandos. Un importante operador en MATLAB es la comilla simple ', que representa la matriz traspuesta (conjugada). >> A = [ 2;3 4] A = 2 3 4 >> A' 3 2 4 >> B = A + i*.5*a B =.0000 + 0.5000i 2.0000 +.0000i 3.0000 +.5000i 4.0000 + 2.0000i >> B'.0000-0.5000i 3.0000 -.5000i 2.0000 -.0000i 4.0000-2.0000i En el caso de que haya que calcular la matriz traspuesta, en lugar de la conjugada traspuesta, se utiliza el operador.' : >> B.'.0000 + 0.5000i 3.0000 +.5000i 2.0000 +.0000i 4.0000 + 2.0000i (Obsérvese que ' y.' son equivalentes para matrices reales). Los siguientes comandos son de uso frecuente. Se puede obtener más información con el sistema de ayuda on-line. Creando matrices. zeros(m,n) crea una matriz m n de ceros; ones(m,n) crea una matriz m n de unos; Capítulo 2 pág. 9

eye(n) crea la matriz identidad n n ; diag(v) (v es un n-vector) crea una matriz diagonal n n con v en la diagonal. Por ejemplo: >> ones(3,4) >> v=[- 2 3.5] v = -.0000 2.0000 3.5000 >> diag (v) -.0000 0 0 0 2.0000 0 0 0 3.5000 Los comandos zeros y ones pueden usarse con cualquier par de números naturales como argumentos; con k argumentos proporcionan una lista k-dimensional del tamaño indicado. Formato de salida y gráficas. Los siguientes comandos proporcionan diferentes apariencias a las distintas salidas. format : Da el formato de salida >> format short, pi 3.46 >> format short e, pi 3.46e+000 >> format long, pi 3.459265358979 >> format long e, pi 3.4592653589793e+000 format compact suprime un retorno extra (todas las salidas de este artículo están dadas en este formato). format loose coloca un retorno al principio de la salida. >> format loose, pi 3.46 xlabel('string'), ylabel('string') pone una etiqueta en los ejes de abscisas y ordenadas, respectivamente, en la gráfica activa; title('string') añade un título a la gráfica activa; Capítulo 2 pág. 0

axis([a b c d]) cambia la representación de la gráfica activa al rectángulo a x b, c y d ; grid añade una malla rectangular a la gráfica active; hold on congela la gráfica active y presenta las gráficas siguientes con la gráfica actual; hold off presenta la gráfica activa. La gráfica siguiente se presenta después de borrar la anterior; subplot pone múltiples gráficas en una única ventana gráfica. Por ejemplo: >> xlabel('x-axis'); >> ylabel('y-axis'); >> title('example'); example 0.9 0.8 0.7 0.6 y-axis 0.5 0.4 0.3 0.2 0. >> axis([- - ]); 0 0 0. 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 x-axis 0.8 0.6 0.4 0.2 example y-axis 0-0.2-0.4-0.6-0.8 - - -0.8-0.6-0.4-0.2 0 0.2 0.4 0.6 0.8 x-axis Capítulo 2 pág.

>> grid on 0.8 example 0.6 0.4 0.2 y-axis 0-0.2-0.4-0.6-0.8 - - -0.8-0.6-0.4-0.2 0 0.2 0.4 0.6 0.8 x-axis Dibujaremos la función y= exp (-x^2) con malla, nombre y ejes. >> u=x.^2; >> y= exp(-u); >> plot (x,y); example 0.9 0.8 0.7 y-axis 0.6 0.5 0.4 - -0.8-0.6-0.4-0.2 0 0.2 0.4 0.6 0.8 x-axis Ahora usamos la función subplot para visualizar diferentes funciones al mismo tiempo. >> subplot(2,,); >> fplot('sin(x)',[0 2*pi]) >> subplot(2,,2); >> fplot('cos(x)',[0 2*pi]) Capítulo 2 pág. 2

0.5 0-0.5-0 2 3 4 5 6 0.5 0-0.5-0 2 3 4 5 6 Observaciones max(x) devuelve, si x es un vector, su coordenada máxima; ver help max para el resultado de este comando cuando x es una lista k-dimensional; min(x) funciona de manera análoga a max; abs(x) devuelve una lista del mismo tamaño que x cuyos elementos son los valores absolutos de los elementos de x; size(a) devuelve un vector k con el número de filas, columnas, etc. de la lista k-dimensional A; length(x) devuelve la longitud de x; save fname guarda las variables actuales en el fichero fname.mat; load fname carga las variables desde el fichero fname.mat; quit es la salida del sistema MATLAB Por ejemplo: >> x=[ 3-4 60-7 -3 2]; >> max(x) 60 >> min(x) -7 >> abs(x) 3 4 60 7 3 2 Un ejemplo: Integración numérica. La Integración Numérica consiste en calcular de manera aproximada una integral definida utilizando técnicas numéricas. Existe una amplia gama de métodos de Capítulo 2 pág. 3

integración numérica. En este ejemplo se muestran tres de ellos: la regla del rectángulo, la regla del trapecio y la regla de Simpson para calcular la integral:.- La regla del rectángulo. 2 ( x ) / dx 0 Un primer método, muy simple, de integración numérica consiste en aproximar la función f(x) sobre cada subintervalo por una constante y considerar el área del rectángulo de base h = x i+ - x i y altura f(x i ) para el i-ésimo intervalo. La integral se aproxima entonces por la suma de las áreas de los rectángulos así construidos. El intervalo de integración se dividirá en 2, 4, 8, 6, 32, 64 y 28 subintervalos. En primer lugar veremos el ejemplo con 2 subintervalos. Son necesarios, por tanto, tres puntos en el intervalo (0,). >> X=linspace(0,,3) X = 0 0.5000.0000 Los valores de la función x are se almacenan en la variable Y. >> Y=sqrt(-X) Y =.0000 0.707 0 La altura del primer rectángulo es f(0) por lo que guardamos la primera coordenada del vector Y. >> q=y() q = La altura del primer rectángulo es f() por lo que guardamos la segunda coordenada del vector Y. >> q=q+y(2) q =.707 Como la base de los rectángulos es 0.5, la suma de las áreas de los rectángulos se calcula multiplicando este valor por la suma de las alturas. >> q=q*/2 q = 0.8536 Con el fin de ampliar el número de subintervalos, gestionaremos los vectores a través de un bucle. Para dividir el intervalo en 28 subintervalos necesitamos 29 puntos. Capítulo 2 pág. 4

>> X=linspace(0,,29); Seguimos almacenando los valores de la función x en la variable Y. >> Y=sqrt(-X); >> q=y(); En este caso, la suma de las alturas va desde f(0) a f(27), es decir desde la primera coordenada Y() hasta Y(28). >> for j=:27 q=q+y(j+); end >> q=q*/28; Finalmente, el siguiente programa será utilizado para calcular la integral usando 2, 4, 8, 6, 32, 64 y 28 subintervalos: function rectanglerule=rectanglerule(y) q=zeros(7,); N=2; %Number of subintervals for i=:7 h=/n; q(i)=y(); for j=:n- q(i)=q(i)+y(j*(256/n)+); end q(i)=q(i)*h; N=N*2; end disp('approximations with the rectangle rule:') q La entrada de esta función es un vector cuyas coordenadas son los valores de la función a integrar en 256 puntos del intervalo [0,]. >> X=linspace(0,,257); >> Y=sqrt(-X); >> rectanglerule(y) Approximations with the rectangle rule: q = 0.85355339059327 0.76828304624275 0.7206302262445 0.694839687723 0.688393627894 0.67408333785 0.6704390729683 2. La regla del trapecio. En este ejemplo, hemos modificado el último programa para aproximar la integral por medio de la regla del trapecio. El programa modificado es el siguiente: function trapezoidalrule=trapezoidalrule(y) Capítulo 2 pág. 5

q=zeros(7,); N=2; %Number of subintervals for i=:7 h=/n; q(i)=0.5*y(); q(i)=q(i)+0.5*y(257); for j=:n- q(i)=q(i)+y(j*(256/n)+); end q(i)=q(i)*h; N=N*2; end disp('approximations with the trapezoidal rule:') q La entrada de esta función es un vector cuyas coordenadas son los valores de la función a integrar en 256 puntos del intervalo [0,]. >> X=linspace(0,,257); >> Y=sqrt(-X); >> trapezoidalrule(y) Approximations with the rectangle rule: q = 0.60355339059327 0.64328304624275 0.658302262445 0.663589687723 0.66555893627894 0.66627083785 0.66652565729683 3. La regla de Simpson. Finalmente, utilizaremos la regla de Simpson, modificando el programa anterior de la siguiente manera: function simpsonrule=simpsonrule(y) q=zeros(7,); N=2; %Number of subintervals for i=:7 h=/n; q(i)=y(); q(i)=q(i)+y(257); k=0; for j=:n- k=k+; q(i)=q(i)+4*y(k/2*(256/n)+); k=k+; q(i)=q(i)+2*y(k/2*(256/n)+); end k=k+; q(i)=q(i)+4*y(k/2*(256/n)+); %Last interval middle point. q(i)=q(i)*h/6; N=N*2; end disp('approximations with Simpson rule:') q Capítulo 2 pág. 6

La entrada de esta función es un vector cuyas coordenadas son los valores de la función a integrar en 256 puntos del intervalo [0,]. >> X=linspace(0,,257); >> Y=sqrt(-X); >> simpsonrule(y) Approximations with Simpson rule: q = 0.65652626479257 0.66307928008502 0.665398886285 0.66628827468 0.6665080307836 0.6666060593627 0.6666468462030 La siguiente tabla refleja los resultados de las tres aproximaciones realizadas: Número de subintervalos 2 4 8 6 32 64 28 Regla del Rectángulo 0.85355339059327 0.76828304624275 0.7206302262445 0.694839687723 0.688393627894 0.67408333785 0.6704390729683 Regla del Trapecio 0.60355339059327 0.64328304624275 0.658302262445 0.663589687723 0.66555893627894 0.66627083785 0.66652565729683 Regla de Simpson 0.65652626479257 0.66307928008502 0.665398886285 0.66628827468 0.6665080307836 0.6666060593627 0.6666468462030 Capítulo 2 pág. 7