{ "metadata": { "name": "", "signature": "sha256:84df6998966de8df1c5bae92a876ef876667f064e025a0f5a66a2d8c426ae344" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Integra\u00e7\u00e3o num\u00e9rica\n", "## F\u00f3rmulas de Newton_Cotes\n", "A id\u00e9ia do procedimento num\u00e9rica da integra\u00e7\u00e3o definida \u00e9 aproximar a fun\u00e7\u00e3o a ser integrada por um polin\u00f4mio interpolador, e aproveitar o car\u00e1ter alg\u00e9brico da integra\u00e7\u00e3o de polin\u00f4mios para obter uma f\u00f3rmula de integra\u00e7\u00e3o. Se $f:[a,b]\\to \\mathbb{R}$ \u00e9 integravel e $\\{x_0,\\dots,x_k\\}\\subset [a,b]$ \u00e9 uma parti\u00e7\u00e3o do dom\u00ednio, ent\u00e3o teremos\n", "$$ \\int_a^b f(x)dx \\approx \\int_a^b p_k(x)dx $$\n", "onde $p_k$ \u00e9 o polin\u00f4mio interpolador de $f$. Nas f\u00f3rmulas do tipo de Newton-Cotes, o intervalo da integra\u00e7\u00e3o \u00e9 dividido em partes iguais de comprimento $h$, veremos dois m\u00e9todos: *m\u00e9todo do trap\u00e9zio* e *m\u00e9todo de Simpson*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## F\u00f3rmula do Trap\u00e9zio simples:\n", "Neste caso $x_0=a,$ $x_1=b$ e $h= b-a$. O polin\u00f4mio interpolador pode se escrever como $p_1(x) = f_0 + (f_1-f_0)(x-x_0)/h$.\n", "Usamos a nota\u00e7\u00e3o $f_i=f(x_i)$ para abreviar a f\u00f3rmula.\n", "$$ \\int_a^b p_1(x)dx = \\frac{h}{2}(f_0+f_1) = \\mathcal{T}_a^bf$$" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def Trapezio(f,a,b):\n", " ''' Aplica o m\u00e9todo do trap\u00e9zio simples para aproximar a integral de f no intervalo [a,b]'''\n", " return (b-a)*(f(a)+f(b))/2" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## F\u00f3rmula de Simpson simples\n", "O caso em que escolhemos os n\u00f3s $x_0=a,$ $x_1 = (a+b)/2 $ e $x_3 = b$ com $h=(b-a)/2$ \u00e9 conhecido como m\u00e9todo de Simpson.\n", "Neste caso temos $p_2(x)= f_0 L_0(x) + f_1 L_1(x) + f_2L_2(x) $, na forma de Lagrange, e fazendo a integra\u00e7\u00e3o temos:\n", "$$ \\int_a^bp_2(x)dx = \\frac{h}{3}(f_0 + 4f_1 +f_2) = \\mathcal{S}_a^b(f)$$" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def Simpson(f,a,b):\n", " ''' Aplica o m\u00e9todo de Simpson para aproximar a integral de f no intervalo [a,b]'''\n", " return (b-a)*(f(a) + f(b) +4*f((a+b)/2))/6" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Os m\u00e9todos com repeti\u00e7\u00f5es\n", "\n", "Os dois m\u00e9todos anteriores podem ser aplicados repetidamente dividindo o intervalo $[a,b]$ em quantidades apropriadas.\n", "\n", "### O m\u00e9todo do trap\u00e9zio com $n$ repeti\u00e7\u00f5es\n", "Dividimos o intervalo em $n$ partes com os n\u00f3s em $x_i=a+ih$. Usamos o m\u00e9todo do trap\u00e9zio em cada subintervalo $[x_i,x_{i+1}]$ e somamos tudo. Fazendo $h =(b-a)/n$ obtemos\n", "$$ \\mathcal{T}_n(f) = \\frac{h}{2}(f_0 + 2\\sum_{i=1}^{n-1}f_i +f_n) $$ \n", "### O m\u00e9todo de Simpson com $n$ repeti\u00e7\u00f5es\n", "Dividimos intervalo em $2n$ partes e aplicamos o m\u00e9todo de Simpson simples em cada subintervalo $[x_{2i},x_{2i+2}]$, e somamos o resultado parcial. Com $h =(b-a)/2n$ o resultado \u00e9 a f\u00f3rmula\n", "$$ \\mathcal{S}_n(f)= \\frac{h}{3}(f_0 + 4\\sum_{k=0}^{n-1} f_{2k+1} + 2\\sum_{k=1}^{n-1}f_{2k} + f_{2n})$$" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Exercicio: definir as fun\u00e7\u00f5es que d\u00e3o a integral com repeti\u00e7\u00f5es, onde o n\u00famero de repeti\u00e7\u00f5es e um par\u00e2metro" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [] } ], "metadata": {} } ] }