1-método computacional 280309

786
Métodos Computacionais Prof. Jason

Upload: wellentc

Post on 03-Jul-2015

350 views

Category:

Documents


15 download

TRANSCRIPT

Page 1: 1-Método Computacional 280309

Métodos Computacionais

Prof. Jason

Page 2: 1-Método Computacional 280309

1. Séries de potência. 1.1. Séries de Taylor e Mac Laurin. 1.2. Raio de convergência. 1.3. Erro de truncamento.

2. Propagação de Erros. 2.1. Números aproximados. Algarismos significativos. Teoremas sobre algarismos significativos. 2.2. Arredondamento. 2.3. Tipos de erros. 2.4. Propagação de erros em operações elementares. 2.5. Propagação de erros em funções de uma variável. 2.6. Propagação de erros em funções de várias variáveis.

3. Resolução numérica de equações algébricas e transcendentes. 3.1. Métodos gráficos. 3.2. Localização do intervalo onde se encontra uma raiz. 3.3. Método da bisecção. 3.4. Método de Newton-Raphson. 3.5. Método de partes proporcionais. 3.6. Convergência dos métodos.

4. Solução numérica de sistemas lineares. 4.1. Métodos exatos. 4.2. Método de eliminação de Gauss. 4.3. Pivotamento. 4.4. Fatoração LU. 4.5. Métodos iterativos. 4.6. Norma de um vetor. 4.7. Método de Jacobi. 4.8. Método de Gauss-Seidel. 4.9. Convergência dos métodos iterativos.

5. Interpolação. 5.1. Interpolação linear. 5.2. Interpolação de Lagrange. Grau do polinômio interpolador. 5.3. Fenômeno de Runge. 5.4. Spline.

Diferenciação numérica.6.1. Conceitos básicos de diferenciação.6.2. Diferenciação com dois pontos.6.3. Diferenciação com três e cinco pontos.6.4. Erros.

Integração numérica.7.1. Conceitos básicos de integração.7.2. Fórmulas de Newton-Cotes.7.3. Regra dos trapézios.7.4. Regra de Simpson.7.5. Erros.

Ajuste de Curvas pelo Método dos Mínimos Quadrados8.1. Caso Discreto8.2. Caso Contínuo8.3. Caso Não-linear, teste de alinhamento.

Equações Diferenciais ordinárias9.1. Equações de Primeira Ordem9.1.1. Derivada Numérica9.1.2. Erro na Derivação Numérica9.1.3. Sistema de Equações9.2. Equações Diferenciais de Segunda Ordem9.2.1. Algoritmo de Verlet9.2.2. Algoritmo Leap-Frog9.2.3. Algoritmo Velocity-Verlet9.2.4. Método Runge-Kutta9.2.5. Incrementos Adaptativos

Equações Diferenciais a Derivadas Parciais10.1. Equações Unidimensionais no Espaço10.1.1. Equação da Difusão10.1.2. Equação da Convexão10.1.3. Defeitos por Radiação10.1.4. Solução Estacionária10.1.5. Procedimento Explícito, Implícito e Crank-Nicholson10.1.6. Equação de Schrödinger10.2. Método de Relaxação em Duas ou Mais Dimensões Espaciais10.2.1. Algoritmo de Jacobi10.2.2. Algoritmo de Gauss-Seidel10.2.3. Algoritmo Super-Relaxação

Page 3: 1-Método Computacional 280309

BIBLIOGRAFIA SUGERIDA

[1] Ruggiero, M. A. G. e Lopes, V. L. R., Cálculo Numérico, aspectos teóricos e computacionais,Pearson, São Paulo, 1997.[2] Sperandio, D., Mendes, J. T. e Silva, L. H. M., Cálculo Numérico, características matemáticas ecomputacionais dos métodos numéricos, Pearson, São Paulo, 2003.[3] Press, W. H. et al., Numerical Recipes in Fortran, Cambridge, Cambridge, 1996.[4] Scherer, C., Métodos Computacionais da Física, Editora Livraria da Física, 2005.[5] DORN, Willian S. , McCRACKEN. Cálculo Numérico com Estudos de Casos em FORTRAN IV. Riode Janeiro, Campus, 1981.[6] MIRSHAWKA, Victor. Cálculo Numérico 4a ed. São Paulo Nobel, 1984.[7] PACITTI, Tercio & ATKINSON, Cyril P. Programação e Métodos Computacionais. 4a ed. Rio deJaneiro, LTC, 1983.[8] STARK, Peter. Introdução aos Métodos Numéricos. Rio de Janeiro, Interciência, 1979.

Page 4: 1-Método Computacional 280309

Apresentação

• Prof. Jason Paulo Tavares• Mestrado IME – 1997• Doutorado PUC-RJ – 2003

• E-mail: [email protected]• Celular: (024) 99025150• Site: www.ProfessorJason.cjb.net

Page 5: 1-Método Computacional 280309
Page 6: 1-Método Computacional 280309
Page 7: 1-Método Computacional 280309
Page 8: 1-Método Computacional 280309

Conteúdo Programático

7 – BIBLIOGRAFIA BÁSICA:

1. Cálculo Numérico, Márcia A Gomes Ruggiero, McGraw Hill

Interpolação Integração Numérica

VBimestre 2

Sistemas Lineares- Cramer Zero de Funções- Isolamento de raízes e BisseçãoInterpolação

IVBimestre 1

Estruturas de repetição, vetores, matrizes( FORTRAN)

IIIBimestre 1

Conceitos - Comandos de Entrada, Desvio condicional,simples,....

IIBimestre 1

Interpretação lógica de problemas clássicos- forma seqüencial, repetitiva e seleção, Tipos de Dados, Operadores aritméticos.

IBimestre 1

ConteúdoUnidadeCronograma

Page 9: 1-Método Computacional 280309

Conteúdo Programático

7 – BIBLIOGRAFIA BÁSICA:

1. Cálculo Numérico, Márcia A Gomes Ruggiero, McGraw Hill

IVBimestre 2

3- Soluções numéricas de Equações Diferenciais Ordinárias 3. 1 Problema de Valor de Contorno 3.2 Método das Diferenças Finitas

IIIBimestre 2

2- Polinômios de Interpolação, Formas do Polinômio Interpolante, Forma de Lagrange e Forma de Newton

IIBimestre 1

1-Sistemas Lineares. Método de eliminação de Gauss

IBimestre 1

ConteúdoUnidadeCronograma

Page 10: 1-Método Computacional 280309

7 – BIBLIOGRAFIA BÁSICA:

•WIRTH, Niklaus. Algoritmos e estruturas de dados. Rio de Janeiro. 1999. 255p.   •GUIMARÃES, Angelo de Moura. Algoritmos e estruturas de dados. Rio de Janeiro. 1994. 216p.

Programação para S.O Windows - Visual BasicVBimestre 2

Aplicações na Engenharia (Funções,Integrais e Derivadas)-SubprogramaçãoProgramação estruturada -FORTRAN

IVBimestre 2

Comandos de uma Linguagem Procedimental -FORTRAN, Variáveis indexadasDecisões e estruturas de repetição,

IIIBimestre 2

IIBimestre 1

Histórico da Computação;Introdução à Lógica;

Algoritmos, Fluxogramas e Diagrama de Blocos; -Interpretação lógica de problemas clássicos- forma seqüencial,

repetitiva e seleção, Tipos de Dados, Operadores aritméticos.

IBimestre 1

ConteúdoUnidadeCronograma

Page 11: 1-Método Computacional 280309

3- Formas de Avaliação

• Nota =

• 100% : Prova (Individual)

Page 12: 1-Método Computacional 280309

4- RECURSOS INSTITUCIONAIS

• Data Show

• Quadro

• Projetor

• Laboratório de Informática

Page 13: 1-Método Computacional 280309

Horário

• Terças Feiras de 18:45h - 21:00h (aula)

• Sábados de 08:30h - 15:20h (dúvidas)

Page 14: 1-Método Computacional 280309

Componentes Básicos

• Interface

• Processador

• Unidade de Armazenamento

Page 15: 1-Método Computacional 280309

Êxodo 18

21 Além disto procurarás dentre todo o povo homens de capacidade, tementes a Deus, homens verazes, que aborreçam a avareza, e os porás sobre eles

por chefes de mil, chefes de cem, chefes de cinqüenta e chefes de dez;

22 e julguem eles o povo em todo o tempo. Que a ti tragam toda causa grave, mas toda causa pequena eles mesmos a julguem; assim a ti mesmo te aliviarás da carga,

e eles a levarão contigo.

Page 16: 1-Método Computacional 280309

• A Interface do Computador (Entrada e Saída)

• BITS (do inglês "BInary digiTS").

• ASCII

Page 17: 1-Método Computacional 280309

• 8 BITS usados dessa forma denomina-se BYTE.

Page 18: 1-Método Computacional 280309

Equipamentos de Entrada:

• - Equipamentos de teclado• - Cartões perfurados (leitora e

perfuradora de cartões)• - Modem• - Fitas perfuradas (perfuradora e leitora)• - Leitoras de meios magnéticos (cartões,

fitas ou discos)• - Equipamentos de varredura ótica

Page 19: 1-Método Computacional 280309

Equipamentos de Saída:• Monitor de Vídeo (tubo de raios

catódicos - CRT)• - Impressoras de impacto

(matriciais, tipos, rolos)• - Impressoras laser• - Impressoras de jato de tinta

Page 20: 1-Método Computacional 280309

Impressoras

Page 21: 1-Método Computacional 280309

A Unidade Central de Processamento

(CPU)

Page 22: 1-Método Computacional 280309

386 - 1985 (COMPAQ)

• Mais rápidos que a RAM

• Surge as cache

• 25MHZ

Page 23: 1-Método Computacional 280309

486

• 40 MHZ

• Pipeline

• cache e coprocessador matemático internos

Page 24: 1-Método Computacional 280309

Pentium

• 32 bits

• coprocessador - pipeline

• cache interno de 8 p/ 16 KB

• Arquitetura SuperEscalar

• 100 MHZ

Page 25: 1-Método Computacional 280309

Pentium MMX

• 57 novas instruções - Microcódigo

• Avanço nas Aplicações Multimídia

• Cache L1 interno p/ 32 KB

• 233 MHZ

Page 26: 1-Método Computacional 280309

Pentium II

• Cache L2 de 512 KB

• MMX

• Defeitos - Caro

• a partir 333 MHZ - Arquitetura Deschutes

Page 27: 1-Método Computacional 280309

Celeron

• Baixo Custo

• Sem cache L2

• 30 % do desempenho do Pentium II

Page 28: 1-Método Computacional 280309

Pentium III

• SIMD - 70 Novas Instruções

• 800 MHZ

• Transistores 0,18 Mícron (10^-6 m)

• ChipSet Camino de 133 MHZ

Page 29: 1-Método Computacional 280309

Pentium IV

• 3000 MHZ

• SIMD2 - 128 Novas Instruções

• Placa mãe 400 MHZ

• Pipeline 20 Níveis

Page 30: 1-Método Computacional 280309

Memórias

Page 31: 1-Método Computacional 280309

HD

Page 32: 1-Método Computacional 280309

Redes

Page 33: 1-Método Computacional 280309

Novas Tecnologias

Prof. Jason

Page 34: 1-Método Computacional 280309

Novas Tecnologias

• Aparecimento nos últimos anos:

• CAD

• CASE

• POO

Page 35: 1-Método Computacional 280309

Introdução

• CAD Computer Aided Design

• facilitam o desenvolvimento em aplicações computacionais para – Engenheiros, matemáticos, Físicos, Químicos,

professores, programadores, ...

• EX: AUTOCAD, MathCAD, ORCAD,....

Page 36: 1-Método Computacional 280309

AUTOCAD• Desenvolvido p/ aplicações em Engenharia, civil, mecânica,eletrônica,...

• Para aplicações em Eng. Civil, cria relatórios de custo por materiais (cimento, madeira,...) e permite visualização 3D.

• Para aplicações em Eng. Mecânica desenvolve-se as peças no computador e um sistema ligado a tornos e outras máquinas permitem a confecção destes objetos.

Page 37: 1-Método Computacional 280309

MATHCAD

• Usado para criação de Fórmulas matemáticas e o estudo destas formulações.

Page 38: 1-Método Computacional 280309

TUTORIAL

• Caminho: Menu Iniciar, MathSoft Apps, MathCad Tutorial

Page 39: 1-Método Computacional 280309

Exercício

• Crie um Gráfico contendo as funções sin(x),Cos(x) e Cos(x)+Sin(x) visualizadas ao mesmo tempo.

Page 40: 1-Método Computacional 280309

Hardware: Futuro

• Amadurecimento CISC e RISC (SUN)

• Processamento Paralelo

• Processadores ópticos

• Redes Neurais

• Computador Quântico

Page 41: 1-Método Computacional 280309
Page 42: 1-Método Computacional 280309
Page 43: 1-Método Computacional 280309

• Evolução do Hardware -> Evolução do Software

• Exigências sobre os Programadores

Page 44: 1-Método Computacional 280309

Computador Quântico

• Armazena as informações em elétrons Partículas Nucleares ou fótons.

• 10 bits = 20 Estados

• 10 qubits = 1,21 Setilhão estados = 1.210.000.000.000.000.000.000.000 Estados

• Modifica a Programação Tradicional (if,then,...) -> facilita os algoritmos de IA.

Page 45: 1-Método Computacional 280309

Quantum Bit (QUBIT)

Page 46: 1-Método Computacional 280309

Sistemas opercionais e SUN MICROSYSTEMS

DOS, Windows, Linux, Looking Glass

Page 47: 1-Método Computacional 280309
Page 48: 1-Método Computacional 280309
Page 49: 1-Método Computacional 280309

PROGRAMAÇÃO ORIENTADA A OBJETO

• Objeto - é uma estrutura que une código e uma interface gráfica juntos.

• Atributos - São as características do objeto, como cor e tamanho,

• Ação - é a operação efetuada pelo objeto.

• Polimorfismo (Métodos)- é a capacidade de objetos diferentes reagirem segundo a sua função a uma ordem padrão. O comando “abre”, por exemplo, faz um objeto entrar em ação

Page 50: 1-Método Computacional 280309

• Classe - Objetos de estrutura e comportamento idênticos são descritos como pertencendo a uma classe (Class Wizard)

Page 51: 1-Método Computacional 280309

POO Vantagens :

• insere-se menos código, robustez e facilidade de Manutenção

• windows

• IDE

Page 52: 1-Método Computacional 280309

Programação Orientada à Objetos

• vamos compará-la com a programação procedural.

– Na programação baseada em procedimentos o fluxo lógico de execução do programa segue continuamente, isto é, uma linha de código é executada a cada momento.

Page 53: 1-Método Computacional 280309

Programação Orientada a Objetos

• Na programação orientada à Objeto o código (geralmente associado a um objeto) somente é executado quando tal objeto é acionado.

Page 54: 1-Método Computacional 280309

Programação Orientada a Objetos

• Tais ações podem ser entradas via teclado, ações do mouse, ETC. .

Page 55: 1-Método Computacional 280309

1.3 Propriedades dos Objetos

• Definem a aparência e as características de um objeto tais como: tamanho, cor, caption (legenda), posição, etc.

Page 56: 1-Método Computacional 280309

1.4 -Métodos dos Objetos (Poliformismo)

• Indicam as operações que os objetos podem realizar e que já estão incorporadas a ele. Cada objeto possui diversos métodos, sendo alguns deles praticamente padrão.

• Drag: operação de arrastar e soltar.

• Move: mudança de posição (mover).

• SetFocus: entrega o foco ao objeto.

Page 57: 1-Método Computacional 280309

Mostrar Ponteiro do Mouse Picture Box

LabelTextBox

Frame CommandButton

CheckBox OptionButton

ComboBox ListBox

ScrollBar

TimerDriveListBox

DirListBoxFileListBox

Shape

Controle DataImage

Objeto OLE

Line

ScrollBar

Utilize a barra de controle para adicionar cada um dos controles.

Page 58: 1-Método Computacional 280309

• Compiladores(C++, Delphi,...)

Page 59: 1-Método Computacional 280309

Conclusão

• Exigências sobre os Programadores

• CAD

• CASE

• POO

• Computadores Portáteis ( Vídeo IBM)

Page 60: 1-Método Computacional 280309

5- O PRODUTO

• Software são programas executados em computadores, porém com a finalidade de serem comercializados.

Page 61: 1-Método Computacional 280309

CARACTERÍSTICAS DO SOFTWARE

• O software é desenvolvido, mas não é manufaturado no sentido clássico.

• O Software não se desgasta (Curvas de Falhas)

• O Software é desenvolvido por encomenda

Page 62: 1-Método Computacional 280309

APLICAÇÕES DO SOFTWARE

• O software pode ser dividido nas seguintes aplicações:

Page 63: 1-Método Computacional 280309

Software de sistemas• É uma coleção de programas desenvolvidos

para servir outros programas.• Ex. Compiladores(C++, Delphi,...) ,

protocolos para Internet, etc.

Page 64: 1-Método Computacional 280309

• Software de tempo real

• Monitora, analisa e controla eventos do mundo real à medida que eles ocorrem.

• Ex. Softwares de automação para auto forno e laminadores.

Page 65: 1-Método Computacional 280309

• Software Comercial• As aplicações desta área

reestruturam dados existentes de modo a facilitar operações comerciais e de gestão de negócios.

• Ex. software para folha de pagamento , controle de estoque, etc.

Page 66: 1-Método Computacional 280309

• Software Embutido

• Reside nas memórias ROM e é usado para controlar sistemas eletrônicos.

• Ex. Controle de teclado para fornos de microondas, Controle de teclado para celulares, etc.

Page 67: 1-Método Computacional 280309

• Software para computadores pessoais

• São desenvolvidos para atuarem como ferramentas adicionais nos PC´s.

• Ex. Processadores de texto• Software para criação de planilhas,• Software para multimídia etc.

Page 68: 1-Método Computacional 280309

• Software para Web

• Utiliza instruções executáveis (código em Java, html,etc.) para criação de páginas na Internet.

Page 69: 1-Método Computacional 280309

• Software com inteligência artificial

• desenvolvidos para resolver problemas complexos que não são possíveis de computação ou análises convencionais.

• Ex. Softwares• meteorológicos, • sondas espaciais.

Page 70: 1-Método Computacional 280309

Softwares científicos e para engenharia• caracterizados por algoritmos que

possuem matemática mais complexa.• Ex. Softwares para predição de sinal

de telefonia celular (Software Ray-Tracing).

• AUTOCAD

Page 71: 1-Método Computacional 280309

SOFTWARE: UMA CRISE NO HORIZONTE

• Muitos observadores da indústria do software caracterizam os problemas

• (bugs e falhas espetaculares)• crise.

• causa desta crise - aumento da complexidade do software.

Page 72: 1-Método Computacional 280309

COMPLEXIDADE DO SOFTWARE

• À medida que os computadores se tornaram mais sofisticados- softwares passaram a ser mais complexos.

• para vencer esta complexidade - • 1) programação estruturada

• 2) modelos de desenvolvimento de softwares

Page 73: 1-Método Computacional 280309

Êxodo 18

21 Além disto procurarás dentre todo o povo homens de capacidade, tementes a Deus, homens verazes, que aborreçam a avareza, e os porás sobre eles

por chefes de mil, chefes de cem, chefes de cinqüenta e chefes de dez;

22 e julguem eles o povo em todo o tempo. Que a ti tragam toda causa grave, mas toda causa pequena eles mesmos a julguem; assim a ti mesmo te aliviarás da carga,

e eles a levarão contigo.

Page 74: 1-Método Computacional 280309

• Outra estratégia para vencer a complexidade é utilizar modelos para o desenvolvimento dos softwares

Page 75: 1-Método Computacional 280309

•CICLO DE VIDA DO SOFTWARE

• é um gráfico que contém várias etapas que devem ser seguidas para gerar um produto final melhor.

Muitos aplicam esse modelo de forma estritamente linear:

Engenharia de Sistemas / Informação

AnáliseAnálise Projeto Projeto Codifica

ção

Codifica

ção

Testes Testes

Page 76: 1-Método Computacional 280309

Análise Projeto

Codificação Testes

Manutenção

Nesta fase defina-se a melhor maneira de executar a tarefa e que recursos serão necessários.

Ex. Números de programadores, linguagem de programação, hardware, etc.

Page 77: 1-Método Computacional 280309

PROJETO• Nesta fase determinam-se os Lay-outs das telas e características do

software. • reuniões com o cliente para

eventuais críticas e sugestões ao projeto.

AnáliseProjeto

Codificação Testes

Manutenção

Page 78: 1-Método Computacional 280309

CODIFICAÇÃO

•Existe por todo o resto do ciclo de desenvolvimento e continua quando se faz

alterações no código após a entrega.

•Antes de Iniciar -> AlgoritmosAnálise

Projeto Codificação

Testes Manutenção

Page 79: 1-Método Computacional 280309

Algoritmos

• Definição

• (Construção passo a passo da solução de um problema)

• Tipos:

• Gráficos (Fluxograma,DFD)

• Linguagem Estruturada - Português Estruturado

Page 80: 1-Método Computacional 280309

TESTES

AnáliseProjeto

Codificação Testes

Manutenção

• O objetivo desta fase é testar o produto em relação aos requisitos concordados na especificação (Fase de projeto).

Page 81: 1-Método Computacional 280309

MANUTENÇÃO Software deverá sofrer mudanças depois que for entregue ao cliente;

O objetivo é realizar a evolução do sistema para corrigir buggs, acrescentar novas funcionalidades, adaptá-lo às novas tecnologias, etc.

AnáliseProjeto

Codificação Testes

Manutenção

Page 82: 1-Método Computacional 280309

CRÍTICAS AO CICLO DE VIDA DO SOFTWARE

• Este modelo é o mais antigo e usado, existem críticas:

• 1-Os projetos reais raramente seguem o fluxo seqüencial que o modelo propõe.

• 2- Em geral é difícil para o cliente estabelecer todos os requisitos na fase inicial(Segunda etapa :Projeto).

• 3- Uma versão executável do projeto só vai ficar disponível no final do projeto.

Page 83: 1-Método Computacional 280309

Alguns modelos de processo:

Ciclo de Vida do Software ou

Modelo Seqüencial Linear

Modelo em Cascata

Modelo de processo da UML

Modelo RAD

Modelos de Prototipação

Modelo Incremental

Modelo Espiral

Page 84: 1-Método Computacional 280309

Embora o Modelo Seqüencial

Linear ou

Ciclo de Vida Clássico tenha

fragilidades,

ele é significativamente melhor do

que

uma abordagem casual ao

desenvolvimento de software

Page 85: 1-Método Computacional 280309

•MODELO DA PROTOTIPAGEM

• É usado quando o cliente e o desenvolvedor não possuem noção dos detalhes do software que será produzido. Estes detalhes são:

• Interface do software (Telas)• Adaptabilidade ao sistema operacional (Windows,

Linux,...)• Insegurança em relação ao algoritmo

Page 86: 1-Método Computacional 280309

ETAPAS

• 1) O cliente e o desenvolvedor encontram-se e definem os objetivos gerais do projeto.

Ouvir Cliente Construir Protótipo

O Clinte testa o protótipo

Page 87: 1-Método Computacional 280309

• 2) Um “software rápido” é então desenvolvido.

• 3) O protótipo é avaliado pelo cliente

• 4) Interações ocorrem à medida que o protótipo é ajustado para satisfazer a necessidade do cliente.

Page 88: 1-Método Computacional 280309

CRÍTICAS A PROTOTIPAGEM

• O protótipo funciona precariamente, – portanto um questionamento rigoroso por parte do

cliente poderá ser realizado.

• Um sistema operacional ou uma linguagem de programação poderá ser usada para demonstrar uma possibilidade

– porém se não houver cuidado pode se tornar parte integral do sistema.

Page 89: 1-Método Computacional 280309

•MODELO RAD (Rapid Application Development)

• O modelo RAD é uma adaptação de alta velocidade do modelo seqüencial linear

• O desenvolvimento acelerado é conseguido – uso de componentes e código reusáveis – programas existentes

Page 90: 1-Método Computacional 280309

Equipe 2Equipe 3Equipe 1

Tempo

Page 91: 1-Método Computacional 280309

VANTAGENS

• Na fase de teste– como uma grande parte dos componentes já foi

testada, obtém-se um tempo total de teste reduzido.

• Cada segmento do aplicativo pode ser desenvolvido por uma equipe RAD distinta

– e depois integrada para formar um todo.

Page 92: 1-Método Computacional 280309

DESVANTAGEM

• Não é adequado quando o software faz uso de uma nova tecnologia

• Quando exige um alto grau de interoperabilidade com o aplicativo.

Page 93: 1-Método Computacional 280309

Observação

• RAD pode ser desenvolvido por Delphi e VB

Page 94: 1-Método Computacional 280309

• MODELO INCREMENTAL

• os primeiros incrementos seguem como base o modelo seqüencial

• são versões simplificadas do produto final. • Na fase de projeto, um plano é desenvolvido para o

próximo incremento.

• Ao contrário do modelo RAD, este não necessita que o software seja desenvolvido com objetos (componentes). – Possuindo um uso mais geral.

Page 95: 1-Método Computacional 280309

Engenharia de Sistemas / Informação

AnáliseAnálise Projeto

Projeto

Codifica

ção

Codifica

ção

Testes Testes

AnáliseAnálise Projeto

Projeto

Codifica

ção

Codifica

ção

Testes Testes

AnáliseAnálise Projeto

Projeto

Codifica

ção

Codifica

ção

Testes Testes

AnáliseAnálise Projeto

Projeto

Codifica

ção

Codifica

ção

Testes Testes

incremento 1

incremento 2

incremento 3

incremento 4

produto liberadodo incremento 1

produto liberadodo incremento 2

produto liberadodo incremento 3

produto liberado

do incremento 4tempo

A cada iteração são realizadas as A cada iteração são realizadas as seguintes tarefas:seguintes tarefas:

Análise (refinamento de requisitos, refinamento do modelo conceitual)

Projeto (refinamento do projeto arquitetural, projeto de baixo nível)

Implementação (codificação)

Implementação (testes)

Page 96: 1-Método Computacional 280309

• É útil quando não há mão de obra disponível para uma implementação completa– visando o prazo comercial de entrega ou o sistema

exigir um hardware novo, ainda em desenvolvimento.

• O Primeiro incremento pode ser desenvolvido com menos pessoal, – se o produto for bem recebido, então pessoal extra

pode ser adicionado.

Page 97: 1-Método Computacional 280309

Exemplo 1

• software de processamento de texto • 1) no primeiro incremento

– efetuar as funções de gestão de arquivos e edição de texto.

• 2) No segundo incremento – verificação gramatical e no terceiro incremento,

capacidade avançada de disposição de páginas.

Page 98: 1-Método Computacional 280309

• Sistema Tutor Inteligente (STI)

• são programas de computador com propósitos educacionais e que incorporam técnicas de Inteligência Artificial.

• Especificam ‘que’ ensinar, e estratégias de ensino que especificam ‘como’ ensinar”

Exemplo 2

Page 99: 1-Método Computacional 280309

Características de um STI• Sistema deve ser capaz de avaliar a

aquisição do conhecimento pelo aluno.

• As estratégias tutoriais devem ser projetadas para reduzir a discrepância entre o conhecimento do especialista e o conhecimento do aluno.

• A seqüência do ensino não esta predeterminada pelo designer instrucional.

Page 100: 1-Método Computacional 280309

•MODELO ESPIRAL

• Apresentado em 1988 em um congresso internacional por Boehm, B. ,

• é utilizado para sistemas de grande porte.

• mantém a abordagem sugerida pelo ciclo de vida do software clássico, mas incorpora uma estrutura interativa.

Page 101: 1-Método Computacional 280309

• O primeiro circuito em torno da espiral gera versões mais simples do software.

• Na extremidade da espiral obtém-se versões mais sofisticadas.

Page 102: 1-Método Computacional 280309
Page 103: 1-Método Computacional 280309

• As linhas de uma espiral são sempre contínuas• O desenvolvimento (versões), também não sofre

descontinuidade (interativo)• • “não para” mais de ser desenvolvido.

• Por ser um modelo novo, é necessário que este seja mais testado para verificar sua eficácia.

Page 104: 1-Método Computacional 280309

Modelo Espiral

Engloba a natureza iterativa da Prototipação com os aspectos sistemáticos do Modelo Linear

Fornece o potencial para o desenvolvimento rápido de versões incrementais do software

Cada Loop da espira é uma fase do desenvolvimento que sempre passa por 4 aspectos

Em cada ciclo, o processo é finalizado com uma versão do software executável.

Page 105: 1-Método Computacional 280309

Cada loop da espira é uma fase de desenvolvimento do software;

Planejamento (ativação)Definição de Objetivos

(Análise)

Avaliação e redução de risco

Desenvolvimento e Validação(Operação)

Page 106: 1-Método Computacional 280309

Vantagens

Estimativas ( cronogramas) tornam-se mais realísticas com o progresso do trabalho.

É mais versátil para lidar com mudanças

É, atualmente, a abordagem mais realística para o desenvolvimento de software em grande escala

Usa uma abordagem que capacita o desenvolvedor e o cliente a entender e reagir aos riscos em cada etapa evolutiva

Page 107: 1-Método Computacional 280309

Desvantagens

Pode ser difícil convencer grandes clientes ( particularmente em situações de contrato) de que a abordagem evolutiva é controlável.

Este tipo de modelo é relativamente novo e não tem sido amplamente usado.

Page 108: 1-Método Computacional 280309

CONCEITOS DE GESTÃO DE PRODUTOS

• É o termo que envolve

• o planejamento,

• controle de pessoal,

• controle de processo (modelos de desenvolvimento)

• e controle do produto (eventos que ocorrem à medida que o software evolui de um conceito preliminar para uma implementação operacional).

Page 109: 1-Método Computacional 280309

PESSOAL

• o item de maior importância para um projeto bem sucedido é obter um Pessoal competente.

• Curtis, B. et al., “A Field Study of the Software Design Process for Large Systems” , para a revista científica IEEE Trans. Software Engineering, vol. SC-31, em November 1988

Page 110: 1-Método Computacional 280309

OS PARTICIPANTES

• 1- Gerente Seniors

• Definem o aspecto do negócio como empresa, legalmente estabelecida.

• 2-Gerente de Projetos

• Planejam, motivam, organizam e controlam os profissionais que desenvolvem o software.

Page 111: 1-Método Computacional 280309

• Profissionais– Fornecem as aptidões técnicas que são

necessárias para o projeto.

• Clientes – Especificam os requisitos para o

software

• Usuários Finais– Interagem com o software depois que

este é liberado para o uso.

Page 112: 1-Método Computacional 280309

A EQUIPE DO SOFTWAREMantei em 1981 ( Mantei M., “The effect of programming team structures on programming

tasks”, CACM, vol.24) • Democrática Descentralizada

• Não possui líder permanente, sendo substituídos periodicamente. A comunicação entre os membros da equipe é horizontal

Page 113: 1-Método Computacional 280309

Controlada Descentralizada• Possui um líder definido e líderes secundários

(responsáveis por sub tarefas)

Page 114: 1-Método Computacional 280309

Controlada Centralizada

• Possui um engenheiro sênior que planeja e revê todas as atividades técnicas das equipes.

• Um engenheiro de retaguarda que apóia o engenheiro sênior nas suas atividades e pode substituí-lo , com perda mínima da continuidade do projeto

Page 115: 1-Método Computacional 280309

CONCLUSÃO

• 1- A estrutura Democrática Descentralizada resulta em moral elevada e satisfação no trabalho.

• 2- A estrutura Democrática Descentralizada é adequada para tratar problemas mais difíceis.

• 3- Quando a modularização é alta, a estrutura Controlada Centralizada ou a Controlada Descentralizada funcionarão bem

Page 116: 1-Método Computacional 280309

PROGRAMAÇÃO ORIENTADA A OBJETO

• Objeto - é uma estrutura que une código e uma interface gráfica juntos.

• Atributos - São as características do objeto, como cor e tamanho,

• Ação - é a operação efetuada pelo objeto.

• Polimorfismo (Métodos)- é a capacidade de objetos diferentes reagirem segundo a sua função a uma ordem padrão. O comando “abre”, por exemplo, faz um objeto entrar em ação

Page 117: 1-Método Computacional 280309

• Classe - Objetos de estrutura e comportamento idênticos são descritos como pertencendo a uma classe (Class Wizard)

Page 118: 1-Método Computacional 280309

POO Vantagens :

• insere-se menos código, robustez e facilidade de Manutenção

• windows

• IDE

Page 119: 1-Método Computacional 280309

Programação Orientada à Objetos

• vamos compará-la com a programação procedural.

– Na programação baseada em procedimentos o fluxo lógico de execução do programa segue continuamente, isto é, uma linha de código é executada a cada momento.

Page 120: 1-Método Computacional 280309

Programação Orientada a Objetos

• Na programação orientada à Objeto o código (geralmente associado a um objeto) somente é executado quando tal objeto é acionado.

Page 121: 1-Método Computacional 280309

Programação Orientada a Objetos

• Tais ações podem ser entradas via teclado, ações do mouse, ETC. .

Page 122: 1-Método Computacional 280309

1.3 Propriedades dos Objetos

• Definem a aparência e as características de um objeto tais como: tamanho, cor, caption (legenda), posição, etc.

Page 123: 1-Método Computacional 280309

1.4 -Métodos dos Objetos (Poliformismo)

• Indicam as operações que os objetos podem realizar e que já estão incorporadas a ele. Cada objeto possui diversos métodos, sendo alguns deles praticamente padrão.

• Drag: operação de arrastar e soltar.

• Move: mudança de posição (mover).

• SetFocus: entrega o foco ao objeto.

Page 124: 1-Método Computacional 280309

Mostrar Ponteiro do Mouse Picture Box

LabelTextBox

Frame CommandButton

CheckBox OptionButton

ComboBox ListBox

ScrollBar

TimerDriveListBox

DirListBoxFileListBox

Shape

Controle DataImage

Objeto OLE

Line

ScrollBar

Utilize a barra de controle para adicionar cada um dos controles.

Page 125: 1-Método Computacional 280309

• Compiladores(C++, Delphi,...)

Page 126: 1-Método Computacional 280309

• “Bem-aventurados os misericordiosos, porque eles alcançarão misericórdia; Bem-aventurados os limpos de coração, porque eles verão a Deus;”

• Mateus 5: 7 e 8

Page 127: 1-Método Computacional 280309

Aula 2 - Algoritmos (Conceitos)

Prof. Jason

Page 128: 1-Método Computacional 280309

Algoritmos

• Definição – (Construção passo a passo da solução de um

problema)

• Tipos:– Gráficos (Fluxograma,DFD)– Linguagem Estruturada - Português Estruturado

Page 129: 1-Método Computacional 280309

Definições

• SISTEMA OPERACIONAL– Conjunto de programas responsáveis

pela execução das tarefas que facilitam a interação entre o usuário e o equipamento.

• Programa:– Conjunto de declarações, instruções e/ou comandos

correspondente a um processamento sequêncial a ser executado pelo computador.

Page 130: 1-Método Computacional 280309

• Linguagem de Alto Nível:– Estrutura parecida com a linguagem humana (Cobol, Pascal e

C).

• Linguagem de Baixo Nível:– próxima da linguagem entendida pela máquina, denominada

de assembler.

• Vantagens e Desvantagens

Page 131: 1-Método Computacional 280309

Interpretador

Depuração de programas é mais simples Consome menos memória execução do programa é lenta Estrutura de dados é simples Necessário fornecer o programa fonte ao usuário

Page 132: 1-Método Computacional 280309

Compilador

Execução mais rápida Permite estruturas de programação mais

simples Não necessita de do programa fonte para

executar o programa objeto Programa final necessita de mais memória

Page 133: 1-Método Computacional 280309

2 - LÓGICA de programação

• conjunto de ações que resultam numa sucessão finita de passos , atingindo objetivo.

Page 134: 1-Método Computacional 280309

Estrutura Sequêncial:

• conjunto de ações que deveriam ser executadas , todas, passo a passo, uma após a outra , compondo uma ordem sequêncial de execução.

– Pegue uma escada;

– Posicione -a embaixo da lâmpada;

– Busque a lâmpada;

– Ligue interruptor; suba na escada; retire lâmpada velha; coloque lâmpada nova;

Page 135: 1-Método Computacional 280309

Estrutura Seletiva:

• Através de um teste condicional , permite ou não que o fluxo de execução passe por um determinado conjunto de ações.

– ligue o interruptor ;

– Se lâmpada não acender , então: pegue uma escada; posicione-a embaixo da lâmpada ; busque uma lâmpada nova ; suba na escada ; retire a lâmpada velha; coloque a lâmpada nova;

Page 136: 1-Método Computacional 280309

Desvio Condicional

Desvio Condicional SimplesDesvio Condicional CompostoDesvio Condicional Encadeado

Page 137: 1-Método Computacional 280309

Desvio Condicional SimplesNÃO

CONDIÇÃO

INSTRUÇÕESEXECUTADASSE CONDIÇÃOVERDADEIRA

Connect

SIM

INSTRUÇÕES EXECUTADASSE CONDIÇÃO FALSA OU

APÓS CONDIÇÃO VERDADEIRATER SIDO EXECUTADA

ligue o interruptor ;Se lâmpada não acender , então:

pegue uma escada;posicione-a embaixo da lâmpada ;

busque uma lâmpada nova ;suba na escada ;

retire a lâmpada velha;coloque a lâmpada nova;

Page 138: 1-Método Computacional 280309

Desvio Condional Composto

CONDIÇÃO

NSTRUÇÕESEXECUTADAS

QUANDO CONDIÇÃOVERDADEIRA

INSTRUÇÕESEXECUTADAS

QUANDO CONDIÇÃOFALSA

Connect

SIMNÃO

Page 139: 1-Método Computacional 280309

Desvio Condicional EncadeadoCONDIÇÃO 1

INSTRUÇÕESEXECUTADAS

SE CONDIÇÃO 1VERDADEIRA

Connect

SIMNÃO

INSTRUÇÕES EXECUTADASSE CONDIÇÃO 1 FALSA,

MAS CONDIÇÃO 2 VERDADEIRA

INSTRUÇÕES EXECUTADASSE CONDIÇÃO 1 FALSA,

MAS CONDIÇÃO 2 FALSA

CONDIÇÃO 2

Connect

NÃO SIM

Page 140: 1-Método Computacional 280309

Estrutura de Repetição:

• Quando for necessário repetir um mesmo trecho do algoritmo

• é feito alterando-se o fluxo de execução de modo que passe pelo mesmo trecho diversas vezes, enquanto condição não for satisfeita.

Page 141: 1-Método Computacional 280309

• Ligue o interruptor;• Se lâmpada não acender, então;

pegue uma escada; posicione-a embaixo da lâmpada; busque uma lâmpada nova; suba na escada; retire a lâmpada velha; coloque a lâmpada nova;– Enquanto a lâmpada não acender, faça: retire a lâmpada; coloque outra lâmpada; ligue o interruptor; se lâmpada não acender, então:

Page 142: 1-Método Computacional 280309

Como será desenvolvida a Programação ?

• 1- Apresenta-se os algoritmos

• 2- Aprender a sintaxe do FORTRAN destas lógicas

• 3- Abandonar o Fluxograma pelo FORTRAN

Page 143: 1-Método Computacional 280309

Convenções do Fluxograma

A,B,C

Início e Final

Entrada de Dados

Saída

Decisão

Conectores

Atribuição de Valores

Repetição

Page 144: 1-Método Computacional 280309

Início

Entrada de dadosa,b,c

Cálculo da Equação

Saída Realr1 e Realr2

Fim

((b**2)- 4*a*c) ) ) Não

>0

Page 145: 1-Método Computacional 280309
Page 146: 1-Método Computacional 280309

COMANDOS DE ENTRADA E SAÍDA

• LER– Lê uma entrada do teclado colocando-a

em uma variável.

– Sintaxe: ler variável

Page 147: 1-Método Computacional 280309

COMANDOS DE ENTRADA E SAÍDA

• ESCREVER– Imprimir no vídeo um texto qualquer ou

uma variável

– Sintaxe: escrever variável,"texto"

Page 148: 1-Método Computacional 280309

Exemplo:

variaveis

caracter nome

numerico numero

inicio

ler nome

ler numero

escrever "Nome = ",nome," Numero = ",numero

fim

Page 149: 1-Método Computacional 280309

SE - Expressão condicional

• Sintaxe: - 1º caso:

se <expressão> entao

<bloco-de-comandos1...>

fim_se

Page 150: 1-Método Computacional 280309

// Algoritmo que lê um número e imprime se este é maior do que 10. //

variaveis

numerico val

inicio

ler val

se val > 10 entao

escrever "este numero é maior do 10 => ",val

fim_se

fim

Page 151: 1-Método Computacional 280309

var

Caracter:RESULTADO

Real: N1, N2, N3, N4,

Real: SOMA, MÉDIA

Início

Leia N1, N2, N3, N4

SOMA= N1 + N2+ N3+ N4

MÉDIA = SOMA/4

Se (MÉDIA >= 7)

Então

RESULTADO= APROVADO

Senão

RESULTADO= REPROVADO

Fim_se

Escreva “MÉDIA: “, MÉDIA

Escreva “RESULTADO : “,RESULTADO

Fim

Page 152: 1-Método Computacional 280309

Exercícios de fixação:

• 1)Ler dois números inteiros e imprimir a soma. Antes do resultado, imprimir a mensagem : SOMA.

• 2)Entrar com um número e imprimir a seguinte saída:

NUMERO:QUADRADO:RAIZ QUADRADA:

Page 153: 1-Método Computacional 280309

Exercícios de fixação:– 3)Entrar com um ângulo em graus e imprimir : seno, co-seno

e tangente deste ângulo.

– 4)Ler uma temperatura em graus Centígrados e apresentá-la convertida em graus Fahrenheit. A fórmula de conversão é: F (9*C+160)/5. Onde F é a temperatura em Fahrenheit e C é a temperatura em Centígrados.

– 5)Faça um algoritmo que leia o valor do salário mínimo e o valor do salário de um funcionário. Calcule e imprima quantos salários mínimos ganha o funcionário.

Page 154: 1-Método Computacional 280309

SE - Expressão condicional;

Sintaxe: - 2º caso:

se <expressão> entao

<bloco-de-comandos1...>

senao

<bloco-de-comandos2...>

fim_se

Page 155: 1-Método Computacional 280309
Page 156: 1-Método Computacional 280309

1) Construir um programa que leia dois valores numéricos e efetue a adição,caso o resultado seja maior que 10 apresentá-lo.

2) Entrar com nome, nota da PR1 e nota da PR2 de 1 aluno. Imprimir: nome,nota da PR1, nota da PR2, a média e uma das mensagens: AP , RP ou PF(a média é 7 para aprovação, menor que 3 para reprovação e as demais emprova final).

3) Entrar com dois números e imprimir o maior número (suponha númerosdiferentes).

Exercícios de fixação:

4) Construir um programa que leia dois números e efetue a adição. Caso o valor somadoseja maior ou igual a 10, este deverá ser apresentado somando-se a ele mais 5, caso ovalor somado não seja maior ou igual a 10,este deverá ser apresentado subtraindo-se 7.

Page 157: 1-Método Computacional 280309

OPERADORES LÓGICOS

• São usados em conjunto com as estruturas condicionais permitindo um número maior de expressões a serem testadas

• E – ex: (Funcionários que ganham acima de 5000 e não possuem

dependentes)

• ou– ex: (Funcionários que ganham acima de 5000 ou possuem

aplicações acima 10000)

Page 158: 1-Método Computacional 280309

// Algoritmo que lê um número e imprime se este é maior ou igual a 10

usando a instrução “Ou” . //

variaveis numerico val inicio ler val se (val > 10) ou (val=10) entao escrever "este numero é maior do 10 => ",val fim_se fim

Page 159: 1-Método Computacional 280309

Exercício

• Desenvolva um algoritmo capaz de resolver uma eq. de segundo grau

Page 160: 1-Método Computacional 280309

Início

Entrada de dadosa,b,c

Cálculo da Equação

Saída Realr1 e Realr2

read (*,'(f5)') a,b,c

realr1= ((-b) + ( sqrt ((b**2)- 4*a*c) ) ) /(2*a)

realr2= ((-b) - ( sqrt ((b**2)- 4*a*c) ) ) /(2*a)

print *,realr1,realr2

program Ler

real a,b,c,realr1,realr2 read (*,'(f5)') a,b,c !Read (*,6)r !Format (a)

If ( ((b**2)- (4*a*c)) >= 0) Then

realr1= ((-b) + ( sqrt ((b**2)- 4*a*c) ) ) /(2*a)

realr2= ((-b) - ( sqrt ((b**2)- 4*a*c) ) ) /(2*a) print *,realr1,realr2

End If

stop end

FIM

Page 161: 1-Método Computacional 280309

Início

Entrada de dadosa,b,c

Cálculo da Equação

Saída Realr1 e Realr2

read (*,*) a,b,c

realr1= ((-b) + ( sqrt ((b**2)- 4*a*c) ) ) /(2*a)

realr2= ((-b) - ( sqrt ((b**2)- 4*a*c) ) ) /(2*a)

Write (*,*)realr1,realr2

Fim

((b**2)- 4*a*c) ) ) /(2*a)<0

>0

program Ler real a,b,c,realr1,realr2,Imag1,Imag2

print *,'Digite o valor das vari veis A,B e C '

read (*,*)a,b,c

If ( ((b**2)- (4*a*c)) >= 0) Then

realr1= ((-b) + ( sqrt ((b**2)- 4*a*c) ) ) /(2*a)

realr2= ((-b) - ( sqrt ((b**2)- 4*a*c) ) ) /(2*a) print *,'A Resposta ‚ ' print *,realr1,realr2 Else Imag1 = sqrt( -((b**2)- 4*a*c))/ (2*a) Imag2 = - sqrt( -((b**2)- 4*a*c))/ (2*a) realr1 =-( b/2*a) print *,'A Resposta ‚ ' PRINT 29,realr1,Imag1

29 FORMAT(3X,'Valor real = ', f9.3, 5X,'Valor Imaginario = ', f6.2)

PRINT 32,realr1,Imag232 FORMAT(3X,'Valor real = ', f9.3, 5X,'Valor Imaginario = ', f6.2)

End If stop end

Page 162: 1-Método Computacional 280309

35) Faça um programa que leia a idade de uma pessoa e informe a sua classeeleitoral:

- não eleitor (abaixo de 16 anos)- eleitor obrigatório ( entre 18 e 65 anos)- eleitor facultativo ( entre 16 e 18 anos e maior de 65 anos)

Page 163: 1-Método Computacional 280309

41) 42) .Faça um algoritmo que possa imprimir o menu abaixo:

1 – solteiro(a)2 – desquitado(a)3 – casado(a)4 – divorciado(a)5 – viúvo(a)OPCAO:

O usuário deverá selecionar uma das opções, digitandoum número e este deverá escrever o estado civil dapessoa. Emitir mensagem de erro caso seja escolhidauma opção inexistente.

Page 164: 1-Método Computacional 280309

REPETIÇÃO COM VARIÁVEL DE CONTROLE

permite que um bloco ou ação seja repetida até queuma determinada condição seja verdadeira (Dentrode um limite ,exemplo: 1 até 10).

: para <variável> = <expressäo1> ate <expressäo2> <bloco-de-comandos1...> proximo ou para <variável> = <expressäo1> ate <expressäo2> passo <expressäo3> <bloco-de-comandos1...> proximo

Fluxograma

Page 165: 1-Método Computacional 280309

Exemplo: // Algoritmo para gerar a frase : “Jesus, Rei dos Reis”, 10 vezes // --------------------------------------------- variaveis numerico i

inicio para i=1 ate 10 escrever "Jesus, Rei dos Reis" proximo fim

Page 166: 1-Método Computacional 280309

// Algoritmo para gerar todos os números pares entre 1 e 25. // --------------------------------------------------------- variaveis numerico i

inicio para i=2 ate 24 passo 2 escrever "numero gerado = ", i proximo fim

Page 167: 1-Método Computacional 280309

Exemplo: // Algoritmo para gerar a frase : “Jesus, Rei dos Reis”, 10 vezes // --------------------------------------------- variaveis numerico i

inicio para i=1 ate 10 escrever "Jesus, Rei dos Reis" proximo fim

Page 168: 1-Método Computacional 280309

// Algoritmo para gerar todos os números pares entre 1 e 25. // --------------------------------------------------------- variaveis numerico i

inicio para i=2 ate 24 passo 2 escrever "numero gerado = ", i proximo fim

Page 169: 1-Método Computacional 280309

1. Entrar com 20 números e imprimir a somadesses números.

2 .Entrar com a idade de várias pessoas e imprimir: total de pessoas com menos de 21 anos total de pessoas com mais de 50 anos.

Page 170: 1-Método Computacional 280309

• VARIÁVEL:Uma informação é classificada como variável quando tem a possibilidade de ser alterada em algum instante no decorrer do tempo.

Page 171: 1-Método Computacional 280309

• Inteiro:toda e qualquer informação numérica que pertença ao conjunto dos números inteiros relativos (negativo, nulo ou positivo).

• 15, -2 graus centigrados

• REAL:Toda e qualquer informação numérica que pertença ao conjunto dos números reais(negativo, nulo e positivo).

• 1,73 de altura , C$121, 90

Page 172: 1-Método Computacional 280309

• CARACTER: Toda qualquer informação composta por um conjunto de caracteres alfanuméricos ( 0, ...,9) e/ou especiais (#,$,%,&, *)

• “use somente caneta preta”• “Não pise na Grama”

• LÓGICO:Toda e qualquer informação que pode apenas assumir duas situações (biestável)

• A porta está aberta ou fechada.• A lâmpada pode estar acesa ou apagada.

• CONSTANTES:Entende-se que uma informação é constante quando não sofre nenhuma variação no decorrer do tempo.

• 5, 2527, -0.58, “Não Fume”, Falso.

Page 173: 1-Método Computacional 280309

Regras básicas para formação de variáveis e ctes

• 1)Devem começar por um caracter alfabético;

• 2)Podem ser seguidos por mais caracteres alfabéticos e/ou numéricos;

• 3)Não é permitido o uso de caracteres especiais;

Page 174: 1-Método Computacional 280309

• IDENTIFICADORES INVÁLIDOS• 5X, E(13),A:B,X-Y,NOTA/2, AWQ*,P&AA

• identificadores válidos• ALPHA, X, BJ153,K7, NOTAS, ABC, INPS, FGTS

Page 175: 1-Método Computacional 280309

Fortran

• Engenharia

• Fórmulas Matemáticas

• Métodos Numéricos

• Microsoft ou Force 2.0 (www.projetoforce.hpg.com.br)

Page 176: 1-Método Computacional 280309
Page 177: 1-Método Computacional 280309
Page 178: 1-Método Computacional 280309

Conceitos Básicos

• Comentário– o ponto de exclamação ‘!’ indica que o que vem

após ele é comentário – ele pode ser localizado em qualquer posição,

inclusive após comandos.

Page 179: 1-Método Computacional 280309

Constantes

• Maiúsculas e Minúsculas: – Não faz distinção letras maiúsculas e minúsculas. – É permitido usar variáveis como: – EX.: VAR = var = Var. No mesmo programa

Page 180: 1-Método Computacional 280309

Início do programa

• Os programas devem conter no início o seu nome (program nome_do_programa)

• deve terminar com a palavra ‘end’.• Ex:program Ler

real a,b,c,realr1,realr2

read (*,'(f5)') a,b,c

!Read (*,6)r

!Format (a)

....

End

Page 181: 1-Método Computacional 280309

Comando Stop

• Outra forma de parar o programa, é usando a palavra ‘stop’.

• O programa terminará independentemente de haver mais comandos na seqüência.

Ex:

...

print *,realr1,realr2

End If

stop

end

Page 182: 1-Método Computacional 280309

Declaração de Variáveis • As variáveis podem ser inteiras, reais ou literais. • A declaração de uma variável deve ocorrer antes que ela

seja usada,• Ex:program Ler

real a,b,c,realr1,realr2

integer raio,imet

character data*8

COMPLEX*16

LOGICAL NOME

read (*,'(f5)') a,b,c

!Read (*,6)r

!Format (a)

...

Page 183: 1-Método Computacional 280309

Operadores Aritméticos

• Significado

• + + Soma

• - - Subtração

• * x Multiplicação

• / ÷ Divisão

• ** ap Potenciação

• obs:Quando uma variável inteira recebe o resultado de uma divisão com resto, este resto é desprezado ou seja o valor é truncado.

• Potenciação:

• C = A**2 + B**2

• D = E**(1/2)

FortranMatemática

Page 184: 1-Método Computacional 280309

Operadores Relacionais

• Comparam variáveis, constantes ou expressões e retornam ‘.TRUE.’ ou ‘1’ se a comparação for verdadeira, ‘.FALSE.’ ou ‘0’ se a comparação for falsa.

• FORTRAN MatemáticaTradicional Significado• .LT. < MENOR QUE• .LE. MENOR OU IGUAL QUE• .EQ. = IGUAL A• .NE. DIFERENTE DE• .GT. > MAIOR QUE• .GE. MAIOR OU IGUAL QUE

Exemplo

20.NE.30 => verdadeiro

1000.LT.500 => falso

Page 185: 1-Método Computacional 280309

Lógicos

• São usados quando é necessária mais de uma condição relacional ou quando é preciso inverter seu resultado.

• .AND . Junção

• .OR. Disjunção

• .NOT. Negação

• Exemplo

• 10.GT.5.AND.20.GT.25 => .FALSE.

• 10.GT.5.OR.20.GT.25 => .TRUE.

• .NOT.20.GT.25 => .TRUE.

Page 186: 1-Método Computacional 280309

Funções Trigonométricas

• Nome Definição

• SIN(x) seno (radianos)

• ASIN(x) Arcoseno (radianos).

• COS(x) Coseno (radianos)

• ACOS(x) Arcocoseno (radianos).

• TAN(x) Tangente (radianos)

• ATAN(x) Arcotangente (radianos)

• SINH(x) Seno Hiperbólico

• COSH(x) Coseno Hiperbólico

• TANH(x) Tangente Hiperbólica

Page 187: 1-Método Computacional 280309

Outras Funções

• Nome Definição Tipo de Argumento Tipo da Função

• ALOG10(x) logaritmo de x na base 10 real real

• ALOG(x) logaritmo neperiano de x (x > 0) real real

• EXP(x) exponencial real real

• ABS(x) valor absoluto de x real real

• IABS(x) valor absoluto de x inteiro inteiro

• IFIX(x) conversão de real para inteiro, truncando real inteiro

• FLOAT(x) conversão de inteiro para real inteiro real

• DBLE(x) converte para dupla precisão real real (dupla precisão)

• CMPLX(x) converte para o tipo complexo real complexo

• SIGN(x,y) fornece valor positivo de x se y real real

• MOD(x,y) resto da divisão de x por y inteiro inteiro

• AMOD(x,y) resto da divisão de x por y real real

• SQRT(x) raiz quadrada de x (x ³ 0) real real

Page 188: 1-Método Computacional 280309

E/S• Leitura:

– read (unidade, formato) lista_de_parâmetros

• Impressão:

– write (unidade, formato) lista_de_parâmetros

– print formato, lista_de_parâmetros

– EX:

– read (*,*) a,b,c– Write (*,*)realr1,realr2– OBS: * (teclado ou Monitor)

Page 189: 1-Método Computacional 280309

Programa Alô Mundo

Write (*,*)'Alô Mundo!'

STOP

END

Page 190: 1-Método Computacional 280309

Exercício

• Desenvolva um programa em Fortran capaz de realizar a soma de 3 números inseridos pelo usuário.

Page 191: 1-Método Computacional 280309

Início

Entrada de dadosa,b,c

Cálculo da Equação

Saída

read (*,*) a,b,c

s=a+b+c

Write (*,*)s

Fim

Page 192: 1-Método Computacional 280309

program Ler real a,b,c,s

read (*,*) a,b,c

s=a+b+c

Write (*,*)

end program ler

Page 193: 1-Método Computacional 280309

Aula 2

Exercício

Page 194: 1-Método Computacional 280309

Exercício

• Desenvolva um programa em Fortran capaz de resolver uma eq. de segundo grau

Page 195: 1-Método Computacional 280309

Início

Entrada de dadosa,b,c

Cálculo da Equação

Saída Realr1 e Realr2

read (*,*) a,b,c

realr1= ((-b) + ( sqrt ((b**2)- 4*a*c) ) ) /(2*a)

realr2= ((-b) - ( sqrt ((b**2)- 4*a*c) ) ) /(2*a)

Write (*,*)realr1,realr2

FIM

Page 196: 1-Método Computacional 280309

Exercício

• Para evitar raizes complexas, insira instruções para correção de

Erros.

Page 197: 1-Método Computacional 280309

Início

Entrada de dadosa,b,c

Cálculo da Equação

Saída Realr1 e Realr2

read (*,*) a,b,c

realr1= ((-b) + ( sqrt ((b**2)- 4*a*c) ) ) /(2*a)

realr2= ((-b) - ( sqrt ((b**2)- 4*a*c) ) ) /(2*a)

Write (*,*)realr1,realr2

Fim

((b**2)- 4*a*c) <0

>0

Page 198: 1-Método Computacional 280309

SE - Expressão condicional;Sintaxe:

se <expressão> entao

<bloco-de-comandos1...>

fim_se

• FORTRAN

If (Delta > 0) Thenrealr1= ((-b) + ( sqrt ((b**2)- 4*a*c) ) ) /(2*a)

realr2= ((-b) - ( sqrt ((b**2)- 4*a*c) ) ) /(2*a)

Write (*,*)realr1,realr2

end if

Page 199: 1-Método Computacional 280309

Início

Entrada de dadosa,b,c

Cálculo da Equação

Saída Realr1 e Realr2

read (*,*) a,b,c

realr1= ((-b) + ( sqrt ((b**2)- 4*a*c) ) ) /(2*a)

realr2= ((-b) - ( sqrt ((b**2)- 4*a*c) ) ) /(2*a)

Write (*,*)realr1,realr2

Fim

((b**2)- 4*a*c) ) ) <0

>0

program Ler real a,b,c,realr1,realr2,Imag1,Imag2

print *,'Digite o valor das vari veis A,B e C '

read (*,*)a,b,c

If ( ((b**2)- (4*a*c)) >= 0) Then

realr1= ((-b) + ( sqrt ((b**2)- 4*a*c) ) ) /(2*a)

realr2= ((-b) - ( sqrt ((b**2)- 4*a*c) ) ) /(2*a)

print *,'A Resposta ‚ ' print *,realr1,realr2

Else

Imag1 = sqrt( -((b**2)- 4*a*c))/ (2*a) Imag2 = - sqrt( -((b**2)- 4*a*c))/ (2*a)

realr1 =-( b/2*a) print *,'A Resposta ‚ '

PRINT 29,realr1,Imag129 FORMAT(3X,'Valor real = ', f9.3, 5X,'Valor Imaginario = ', f6.2)

PRINT 32,realr1,Imag232 FORMAT(3X,'Valor real = ', f9.3, 5X,'Valor Imaginario = ', f6.2)

End If stop end

Page 200: 1-Método Computacional 280309

Zero de Funções

Page 201: 1-Método Computacional 280309

3. Resolução numérica de equações algébricas e

transcendentes1. (Zero de Funções)

Prof. Jason

Page 202: 1-Método Computacional 280309

Produção em toneladas, Sinal de celular, Temperatura no pólo sul

Page 203: 1-Método Computacional 280309
Page 204: 1-Método Computacional 280309

Exercício

Page 205: 1-Método Computacional 280309

Isolamento de Raízes Localização do intervalo onde se encontra uma raiz.

• P/ Funções de grau elevado

Page 206: 1-Método Computacional 280309

• Se f(a)*f(b) < 0 Então existe Raiz neste Intervalo

Page 207: 1-Método Computacional 280309

Exemplo

• X -5 -4 -3 -1

• F(x) -9 -8 +2 +3

Page 208: 1-Método Computacional 280309

REPETIÇÃO COM VARIÁVEL DE CONTROLE

permite que um bloco ou ação seja repetida até queuma determinada condição seja verdadeira (Dentrode um limite ,exemplo: 1 até 10).

: para <variável> = <expressäo1> ate <expressäo2> <bloco-de-comandos1...> proximo ou para <variável> = <expressäo1> ate <expressäo2> passo <expressäo3> <bloco-de-comandos1...> proximo

Fluxograma

Do x= a,b,Intervalo <Bloco de Comandos....>

End Do

Fortran

Page 209: 1-Método Computacional 280309

Program IsolamentoInteger a,bReal fx,x

Write(*,*)'insira o valor inicial do Intervalo' Read(*,*)aWrite(*,*)'insira o valor Final do Intervalo'Read(*,*)b

Write(*,*)'insira o valor do Intervalo'

Read(*,*)Intervalo

Do x= a,b,Intervalo fx=(x*Log(x))-(1) Write(*,*)x,fx End Do

End Program Isolamento

Page 210: 1-Método Computacional 280309

INTERPOLAÇÃO

• Consiste em substituir uma

função f(x) por outra g(x) mais simples

– Calcular a função em um ponto não tabelado

– Derivar ou integrar uma função complexa

Page 211: 1-Método Computacional 280309

Exemplo :RAIOS DIFRATADOS

• Obter uma função mais simples de ser integrada

21

2

2)2,1(.

)(

)(

0

0

)2(

)2(jks

ii

i

h

s

d

d

essADE

DE

D

D

sE

sE

}))(()((

})(()((({sen

1

1,

kLgFdkLgFd

kLgFdkLgFdD hs

djejF jx 2exp2)(

Page 212: 1-Método Computacional 280309

X0 X1 X2x -1 0 2F(x) 4 1 -1

Como obter o polinômio Interpolador ?

nnx xaxaxaaxP ....)( 2

210

Page 213: 1-Método Computacional 280309

)()(

)()(

)()(

2222

22210

1122

12110

0022

02010

xfxPxaxaa

xfxPxaxaa

xfxPxaxaa

Substitui-se os pontos x0,x1,x2, f(x1), f(x2) e f(x3), obtém-se

1)4()2(

1)0()0(

4

210

210

210

aaa

aaa

aaa

X0X1X2x-102F(x)41-1

3/2 ,3/7 ,1 210 aaa

nnx xaxaxaaxP ....)( 2

210

Page 214: 1-Método Computacional 280309

nnx xaxaxaaxP ....)( 2

210

2 )3/2( )3/7(1)( xxxPx

Ache a função no ponto x=1

Page 215: 1-Método Computacional 280309

Início

Entrada de dadosx

Cálculo da Equação

Saída

FIM

2 )3/2( )3/7(1 xxxP

xP

Page 216: 1-Método Computacional 280309

X1 =det(A1)/det(A)X2 =det(A2)/det(A)X3 =det(A3)/det(A)

833221

30362413

6321

xxx

xxx

xx

321

643

21

A

328

6430

206

1

A

381

6303

261

2

A

821

3043

601

3

A

X1=det(A1)/det(A)= -40/44 =-10/11

X2=det(A2)/det(A)= 72/44 =18/11

X3=det(A3)/det(A)= 152/44 = 38/11

Regra de Cramer

Page 217: 1-Método Computacional 280309

R66

+

-

Vs330v

R54

+

-

Vs220V

R45

R33

R22

R11

+

-

Vs110V

03630352434

0342423122220

02022121110

iiii

iiiii

iii

3031524

20342912

102213

ii

iii

iiI1=-2.795A i2 = 0.808 A i3= -1.78 A

Page 218: 1-Método Computacional 280309
Page 219: 1-Método Computacional 280309

Integração Numérica

• Algumas Integrais são difíceis para calcular analíticamente

• Para resolver estes problemas - Métodos Numéricos

• Substitui-se Integrais complexas por outras mais simples

Page 220: 1-Método Computacional 280309

Regra do Trapézio• Substitui a área que representa a integral pela

área do trapézio.

Page 221: 1-Método Computacional 280309

Regra do Trapézio• O erro deste método é grande quando o intervalo de

integração é grande

)]()([2 10 xfxfh

IT

f(xo)

f(x1)

h= b-a

Page 222: 1-Método Computacional 280309

Regra dos trapézios Repetidos• Usa-se uma subdivisão no intervalo de integração,

aplicando a regra do trapézio repetidas vezes

)(...])()([2)([2 210

'

nT xfxfxfxfh

I

'h

Page 223: 1-Método Computacional 280309

Exercício

• Calcule a Integral

• Usando 5 subintervalos

dxeI x1

0

Page 224: 1-Método Computacional 280309

program trapezio !.....Integração numérica

!..........Entrada de variáveis.....

implicit nonedouble precision:: a,a1,a2,a3,a4,b,h,h_linha,ya,

ya1,ya2,ya3,ya4,ybdouble precision:: s,erro,solution_analitica

integer::sub_intervalo

!..........Dados de variáveis............

a=0.d0a1=0.2d0a2=0.4d0a3=0.6d0a4=0.8d0b=1.d0

solution_analitica=1.7182d0

!..........Cálculos...................h=b-a

sub_intervalo=5h_linha=(h/sub_intervalo)

ya=exp(a)ya1=exp(a1)ya2=exp(a2)ya3=exp(a3)ya4=exp(a4)yb=exp(b)

s=(h_linha/2)*(ya+2*ya1+2*ya2+2*ya3+2*ya4+yb)erro=1.d0-(s/solution_analitica)

write(*,*)'s=',swrite(*,*)'erro=',100*abs(erro)

end program

Page 225: 1-Método Computacional 280309

DECLARAÇÃO DE VARIÁVEIS

• Todas as variáveis devem ser declaradas (em um bloco) denominado VARIAVEIS.

• Duas classes distintas:

• variáveis simples

• compostas

Page 226: 1-Método Computacional 280309

Variáveis Simples

• Sintaxe: variaveis •

• numerico <expr1>,

<expr2>, ... , <exprN>•

• variaveis

• numerico valor, i

• matriz numerico vet[100]

• inicio

• limpar

• para i = 1 ate 100

• posicionar 10,10

• escrever "Entre com um numero = "

• posicionar 10,40

• ler valor

• vet[i] = valor

• proximo

• para i = 1 ate 100

• escrever vet[i]

• proximo

• fim

Page 227: 1-Método Computacional 280309

Variáveis Simples

• logico <expr1>, <expr2>, ... , <exprN>

• •

• // mostra o valor de uma constante lógica falsa.

• variaveis

• logico f

• inicio

• f = falso

• escrever "constante f = ", f

• fim

Page 228: 1-Método Computacional 280309

Variáveis Simples

• caracter <expr1>, <expr2>, ... , <exprN>

• // ler um nome usando uma função para imprimi-lo.• variaveis• caracter nome

• funcao imprime(nome)• // parametro = nome• inicio• posicionar 10,10• escrever "nome = " , nome• fim• //-------- INICIO DO ALGORITMO PRINCIPAL

-------------• inicio• limpar• posicionar 5, 10• escrever "Digite um nome: "• ler nome• imprime(nome)• fim

Page 229: 1-Método Computacional 280309

Variáveis compostas• Sintaxe

• Vetor• matriz numerico

<expr1[ <expr2> ] • matriz numerico

<expr3[ <expr4> ]

• Matriz• matriz numerico

<expr1[ <expr2>, expr3 ]

variaveis

numerico valor, i

matriz numerico vet[100]

inicio

limpar

para i = 1 ate 100

posicionar 10,10

escrever "Entre com um numero = "

posicionar 10,40

ler valor

vet[i] = valor

proximo

para i = 1 ate 100

escrever vet[i]

proximo

fim

Page 230: 1-Método Computacional 280309

Matrizes

2221

1211

aa

aaA =

Page 231: 1-Método Computacional 280309

ILUMINAÇÃO DE AMBIENTES

TRIDIMENSIONAIS VIRTUAIS COM RAY

TRACINGProf. Jason

[email protected]

Page 232: 1-Método Computacional 280309

1- Introdução

• Windows ,Delphi, OpenGL,...

Page 233: 1-Método Computacional 280309

2- Ambientes 3D

• 3D• Aplicações: (Procedimento Automatizado)• Engenharia Civil • Engenharia Ambiental• Telecomunicações• Arquitetura

Page 234: 1-Método Computacional 280309

2- Ambientes 3D

• Objeto Image -> Matriz 2D • Varredura pixel a pixel• Cor -> 3D

Page 235: 1-Método Computacional 280309

TRANFORMAÇÕES LINEARES

RotaçãoZ

y

x

vT(v)

100

0cossen

0sencos

T

Page 236: 1-Método Computacional 280309
Page 237: 1-Método Computacional 280309

for x := 0 to 127 do begin

for y := 0 to 127 do begin

map[x,y] := bmp.Canvas.Pixels[x,y] ; end; end;

Page 238: 1-Método Computacional 280309
Page 239: 1-Método Computacional 280309
Page 240: 1-Método Computacional 280309

3-(Ray Tracing)

• Esta Nova versão  do Software usa a técnica de traçado de raios

• Com o trabalho de Keller (TGD-1962),  a técnica de traçado de raios recebeu um grande impulso

Page 241: 1-Método Computacional 280309

3-Ray Tracing

Page 242: 1-Método Computacional 280309

Física Eletromagnética

– Esta fórmula representa a fonte em linha direta com o objeto em uma posição s qualquer.

s

eEsE

sj

d

)(

),(2

),( 0

EGP

E ttd

),(E0 - diagrama de irradiação da antena transmissora, normalizado.

Gt - ganho da antena transmissora - impedância do espaço livre: = 120 [] Pt - potência de transmissão [W]

com, = 2 /

Page 243: 1-Método Computacional 280309

RAIOS REFLETIDOS

– Quando a fonte antes de atingir o objeto é interceptada por uma superfície.

),,( ),,( zyxERzyxE iR

rR

)cos()cos(

)cos()cos(

)cos()cos(

)cos()cos(

21

21

12

12

ti

tip

ti

tis

nn

nnR

nn

nnR

Coeficientes de reflexão de Fresnel para polarização perpendicular (horizontal) e paralela(vertical) são dadas por

Page 244: 1-Método Computacional 280309

RAIOS DIFRATADOS

• Quando os raios atingem quinas dos obstaculos antes de atingir o objeto.

21

2

2)2,1(.

)(

)(

0

0

)2(

)2(jks

ii

i

h

s

d

d

essADE

DE

D

D

sE

sE

}))(()((

})(()((({sen

1

1,

kLgFdkLgFd

kLgFdkLgFdD hs

djejF jx 2exp2)(

Page 245: 1-Método Computacional 280309

UNIDADE MÓVEL

Comprovação da teoria com a prática.

Page 246: 1-Método Computacional 280309

OpenGL

• É uma biblioteca 3D para Delphi baseada em OpenGL

• desenvolvida por Mike Lischke e Eric Grange

• oferece objetos, que permitem a descrição de cenários 3D.

Page 247: 1-Método Computacional 280309

OpenGL e Delphi

Page 248: 1-Método Computacional 280309

VETORES e Matrizes

Page 249: 1-Método Computacional 280309

Variáveis Compostas

• Vetor

• matriz numerico <expr1[ <expr2> ], ...

Page 250: 1-Método Computacional 280309

Vetor - Exemplo// Algoritmo para criar e imprimir um vetor de 100 posições. // --------------------------------------------------------- variaveis numerico valor, i matriz numerico vet[100]

inicio limpar para i = 1 ate 100 posicionar 10,10 escrever "Entre com um numero = " posicionar 10,40 ler valor vet[i] = valor proximo para i = 1 ate 100 escrever vet[i] proximo fim

Page 251: 1-Método Computacional 280309

Matriz

• matriz numerico <expr1[<expr2>,expr3 ], ...

Page 252: 1-Método Computacional 280309

Matrizes - Exemplo// Algorítmo para criar e imprimir uma matriz mat(3,3).// -------------------------------------------------------------------- variaveis numerico val, i, j matriz numerico mat[3,3]

inicio para i = 1 ate 3 para j = 1 ate 3 posicionar 10,10 escrever "Digite um valor" posicionar 10,40 ler val mat[i,j] = val proximo proximo

// impressao da matriz - nao formatada para i = 1 ate 3 para j = 1 ate 3 escrever mat[i,j] proximo proximo fim

Page 253: 1-Método Computacional 280309

Matrizes - Exemplo

Page 254: 1-Método Computacional 280309

Exercício

• Crie um algoritmo que some dois vetores.

• Crie um algoritmo que some duas matrizes.

Page 255: 1-Método Computacional 280309

Resposta do ex 1variaveis

numerico val, i

matriz numerico vet1[2]

matriz numerico vet2[2]

matriz numerico vet3[2]

inicio

limpar

para i = 1 ate 2

posicionar 10,10

escrever "Entre com Vet 1 = "

posicionar 10,40

ler val

vet1[i] = val

proximo

limpar

para i = 1 ate 2

posicionar 10,10

escrever "Entre com Vet 2 = "

posicionar 10,40

ler val

vet2[i] = val

proximo

limpar

para i = 1 ate 2

posicionar 10,10

vet3[i] = vet1[i]+vet2[i]

proximo

para i = 1 ate 2

escrever vet3[i]

proximo

fim

Page 256: 1-Método Computacional 280309

Resposta do ex 2

variaveis numerico val, i, j

matriz numerico mat1[2,2] matriz numerico mat2[2,2]

// matriz numerico mat3[2,2]

inicio para i = 1 ate 2

para j = 1 ate 2 posicionar 10,10

escrever "Digite um valor para Mat1" posicionar 10,40

ler val mat1[i,j] = val

proximo proximo

para i = 1 ate 2 para j = 1 ate 2

posicionar 10,10 escrever "Digite um valor para mat2"

posicionar 10,40 ler val

mat2[i,j] = val proximo proximo

// impressao da matriz - nao formatada para i = 1 ate 2

para j = 1 ate 2 escrever mat1[i,j]+ mat2[i,j]

proximo proximo

fim

Page 257: 1-Método Computacional 280309

Resposta do ex 2

Page 258: 1-Método Computacional 280309

1- Séries de Potências

Page 259: 1-Método Computacional 280309

A aproximação de funções

• ocorrência um grande número de problemas matemáticos

• envolvendo funções, cuja solução não é possível (ou é muito difícil) determinar por métodos analíticos.

• exemplos – o cálculo do valor de um integral ou derivada– Calcular a função em um ponto não tabelado

Page 260: 1-Método Computacional 280309

Exemplo :RAIOS DIFRATADOS

• Obter uma função mais simples de ser integrada

21

2

2)2,1(.

)(

)(

0

0

)2(

)2(jks

ii

i

h

s

d

d

essADE

DE

D

D

sE

sE

}))(()((

})(()((({sen

1

1,

kLgFdkLgFd

kLgFdkLgFdD hs

djejF jx 2exp2)(

Page 261: 1-Método Computacional 280309

Teorema de Weierstrass• Estabelece que toda a função contínua num intervalo

fechado pode ser aproximada nesse intervalo por um polinómio.

Page 262: 1-Método Computacional 280309
Page 263: 1-Método Computacional 280309
Page 264: 1-Método Computacional 280309
Page 265: 1-Método Computacional 280309
Page 266: 1-Método Computacional 280309
Page 267: 1-Método Computacional 280309
Page 268: 1-Método Computacional 280309
Page 269: 1-Método Computacional 280309
Page 270: 1-Método Computacional 280309
Page 271: 1-Método Computacional 280309
Page 272: 1-Método Computacional 280309
Page 273: 1-Método Computacional 280309
Page 274: 1-Método Computacional 280309
Page 275: 1-Método Computacional 280309

2. Propagação de Erros

Prof. Jason

Page 276: 1-Método Computacional 280309

Introdução

• A diferença entre o valor obtido (aproximado) e o valor exato é designado por erro.

Page 277: 1-Método Computacional 280309

Fonte e tipo de erros

• A resolução de um problema físico utilizando um método numérico produz, em geral, uma solução aproximada do problema.

Page 278: 1-Método Computacional 280309

tipos de erros:

• erros iniciais do problema (são exteriores ao processo de cálculo)

• erros inerentes ao modelo matemático• erros inerentes aos dados

•erros associados ao uso de métodos numéricos (ocorrem no processo de cálculo)

• erros de arredondamento• erros de truncatura

Page 279: 1-Método Computacional 280309
Page 280: 1-Método Computacional 280309

Erros inerentes ao modelo:

• Um modelo matemático raramente oferece uma representação exata dos fenômenos reais.

• são apenas modelos idealizados• ao estudar os fenómenos da natureza

vemo-nos forçados,regra geral, a aceitar certas condições que simplificam o problema por forma a torná-lo tratável.

Page 281: 1-Método Computacional 280309

Erros inerentes aos dados• Um modelo matemático não contém

apenas equações e relações, também contém dados e parâmetros que, frequentemente, são medidos experimentalmente, e portanto, aproximados.

• As aproximações nos dados podem ter grande repercussão no resultado final.

Page 282: 1-Método Computacional 280309

UNIDADE MÓVELComprovação da teoria com a prática.

Page 283: 1-Método Computacional 280309

Erros de truncatura

• A solução exata de muitos problemas matemáticos não pode ser obtida executando um número finito de operações aritméticas(algoritmo numérico)

• Desta substituição de um processo infinito por um processo finito, resultam os erros de truncatura.

• Em muitos casos, o erro de truncatura é precisamente a diferença entre o modelo matemático e o modelo numérico.

Page 284: 1-Método Computacional 280309

Erros de arredondamento

• somos conduzidos a utilizar uma aritmética de precisão finita

• O erro devido a desprezar os outros e arredondar o número é designado por erro de arredondamento.

Page 285: 1-Método Computacional 280309
Page 286: 1-Método Computacional 280309
Page 287: 1-Método Computacional 280309
Page 288: 1-Método Computacional 280309
Page 289: 1-Método Computacional 280309
Page 290: 1-Método Computacional 280309
Page 291: 1-Método Computacional 280309
Page 292: 1-Método Computacional 280309
Page 293: 1-Método Computacional 280309
Page 294: 1-Método Computacional 280309
Page 295: 1-Método Computacional 280309

Erros de Truncatura

• Há problemas que não podem ser resolvidos exactamente realizando apenas um número finito de operações aritméticas,

• mas cujas soluções podem ser aproximadas com uma sequência finita de operações aritméticas.

• São assim gerados os erros de truncatura.

Page 296: 1-Método Computacional 280309
Page 297: 1-Método Computacional 280309

Propagação de erros

Condicionamento e Estabilidade

Prof. Jason

Page 298: 1-Método Computacional 280309

Erros iniciais

• Há problemas cuja solução é muito sensível a variações nos dados

• para certos problemas erros nos dados quase desprezáveis, podem originar variações muito grandes

Page 299: 1-Método Computacional 280309
Page 300: 1-Método Computacional 280309
Page 301: 1-Método Computacional 280309
Page 302: 1-Método Computacional 280309
Page 303: 1-Método Computacional 280309
Page 304: 1-Método Computacional 280309

Condicionamento (de um problema)

• Descreve a “sensibilidade” do problema a variações nos dados.

• Não depende do método usado para resolver o problema.

• Um problema matemático cuja solução pode ser muito sensível a variações nos dados e parâmetros diz-se mal condicionado.

Page 305: 1-Método Computacional 280309

Estabilidade (de um método)

• Descreve a “sensibilidade” do método relativamente à acumulação dos erros gerados durante o cálculo.

• Um método numérico diz-se instável se a acumulação de erros durante o cálculo pode ter grande influência na precisão dos resultados.

Page 306: 1-Método Computacional 280309

3. Resolução numérica de equações algébricas e

transcendentes1. (Zero de Funções)

Prof. Jason

Page 307: 1-Método Computacional 280309
Page 308: 1-Método Computacional 280309
Page 309: 1-Método Computacional 280309

Exercício

Page 310: 1-Método Computacional 280309

Isolamento de Raízes Localização do intervalo onde se encontra uma raiz.

• P/ Funções de grau elevado

Page 311: 1-Método Computacional 280309

• Se f(a)*f(b) < 0 Então existe Raiz neste Intervalo

Page 312: 1-Método Computacional 280309

Exemplo

• X -5 -4 -3 -1

• F(x) -9 -8 +2 +3

Page 313: 1-Método Computacional 280309

Program IsolamentoInteger a,bReal fx,x

Write(*,*)'insira o valor inicial do Intervalo' Read(*,*)aWrite(*,*)'insira o valor Final do Intervalo'Read(*,*)b

Write(*,*)'insira o valor do Intervalo'

Read(*,*)Intervalo

Do x= a,b,Intervalo fx=(x*Log(x))-(1) Write(*,*)x,fx End Do

End Program Isolamento

Page 314: 1-Método Computacional 280309

Método da Bisseção

Prof. Jason

Page 315: 1-Método Computacional 280309
Page 316: 1-Método Computacional 280309
Page 317: 1-Método Computacional 280309

program bissecao

Implicit None

Double Precision ::a,b,epslon,x,M,y1

Integer ::k

!Passo 1

a= 0;

b=1;

epslon = 1.d-05

!Passo 2

if ((b-a) < epslon) Then

x=b

Write (*,*)' x=' ,x

stop

end if

! Passo 3

k=1

! Passo 4

M = (a**3) - (9*a) + 3

! Passo 5

5 x = (a+b)/2

! Passo 6

y1 = (x**3)-(9*x) + 3

if (m * y1 > 0) Then

a=x

go to 8

End if

! Passo 7

b = x

!passo 8

8 if ((b-a) < epslon) Then

x = a

Write (*,*)'x=' ,x

stop

endif

! Passo 9

k = k+1

write (*,*) ' x=' ,x,' ', 'k=' ,k

goto 5

end program bissecao

Exercício: Verifique a equação(4.3), estimativa de número de interações, para o programa abaixo:

K > 16.68

Page 318: 1-Método Computacional 280309
Page 319: 1-Método Computacional 280309
Page 320: 1-Método Computacional 280309
Page 321: 1-Método Computacional 280309
Page 322: 1-Método Computacional 280309

Seja f(x) contínua em [a,b] e tal que f(a) f(b) < 0

1) Dados Iniciais

a) Intervalo Inicial

b) Precisão e

2) Se (a-b) < e, Então escolha para x qq x [a,b]

FIM

3) k = 1

4) m = f(a)

5) x = (a+b)/2

6) Se M F(x) > 0, Faça a = x. Vá para o passo 8.

7) b = x

8) Se (b-a) < e, escolha para x qualquer x [a,b] FIM

9) K = K+1. Volte para o Passo 5.

program bissecao

Implicit None

Double Precision ::a,b,epslon,x,M,y1

Integer ::k

!Passo 1

a= 0;

b=1;

epslon = 1.d-05

!Passo 2

if ((b-a) < epslon) Then

x=b

Write (*,*)' x=' ,x

stop

end if

! Passo 3

k=1

! Passo 4

M = (a**3) - (9*a) + 3

! Passo 5

5 x = (a+b)/2

! Passo 6

y1 = (x**3)-(9*x) + 3

if (m * y1 > 0) Then

a=x

go to 8

End if

! Passo 7

b = x

!passo 8

8 if ((b-a) < epslon) Then

x = a

Write (*,*)'x=' ,x

stop

endif

! Passo 9

k = k+1

write (*,*) ' x=' ,x,' ', 'k=' ,k

goto 5

end program bissecao

Pode-se usar o método de isolamento de raízes primeiro

para determinar se existe no intervalo a raíz

Page 323: 1-Método Computacional 280309

Método de Newton-Raphson

Prof. Jason

Page 324: 1-Método Computacional 280309

Sir Isaac Newton (1643-1727) e Joseph Raphson (1648-1715)

Page 325: 1-Método Computacional 280309
Page 326: 1-Método Computacional 280309

Program NewtonImplicit NoneReal:: x0,e,y0,xm,x1,ylinha_0,y1integer::k!passo 1x0=0.5e=1.d-05!passo 2y0=(x0**3)-9*x0+3if (abs(y0)<e)Thenxm=x0Write(*,*)'xm=',x0stopend if!passo 3k=1!passo 44 y0=(x0**3)-9*x0+3ylinha_0=3*(x0**2)-9x1=x0-y0/ylinha_0!passo 5y1=(x1**3)-9*x1+3if((abs(y1)<e).or.(abs(x1-x0)<e))Thenxm=x1Write(*,*)'xm=',xmstopend if!passo 6x0=x1Write(*,*)'xm=',x1,'','k=',kk=k+1goto 4end program newton

Seja f(x) contínua em [a,b] e tal que f(a) f(b) < 0

1) Dados Iniciais

a) Valor x0

b) Precisão e

2) Se (y0) < e, Então escolha para xm=x0]

FIM

3) k = 1

4) y’=y0’

x1=x0-y0/y’

5) Se (y1) < e ou (x1-x0) < e , Então xm=x1 FIM

6) x0=x1 , k=k+1 , Vá para o passo 4.

Page 327: 1-Método Computacional 280309

! Passo 3

k=1

! Passo 4

M = ya

! Passo 5

5 x = (a*yb - b*ya)/(yb-ya)

! Passo 6

yx= (x**3)-(9*x) + 3

if (abs (yx) < epslon2) Then

xmedio = x

Write (*,*)' xmedio =' ,x

stop

end if

! Passo 7

if ((M * yx) > 0) Then

a = x

goto 9

end if

!passo 8

b=x

!passo 9

9 if ((b-a) < epslon1) Then

xmedio = b

Write (*,*)'xmedio =' ,x

stop

endif

1) Dados Iniciais

a) Intervalo Inicial : [a,b]

b) Precisões epslon 1 e epslon 2

2) Se (b-a) < Epsoln 1 , então escolha x como qq x

que pertença [a,b] . FIM

Se f(a) < Epsoln 2 ou se f(b) < Epslon 2, Então escolha qq x

pertencente [a,b]. FIM

3) k =1

4) M = f(a)

5) x = ( a f(b) – b f(a) ) / f(b) – f(a)

6) Se o Módulo de f(x) < Epslon 2, Faça x = x . FIM

7) Se M= f(x) > 0 Faça a=x . Vá para o passo 9

8) b = x

9) Se (b-a) < Epslon 1, Faça

x qq x pertencente [a,b]. FIM

10) k = k+1. Volte ao passo 5

program False_Posicion

Implicit None

Double Precision :: a,b,epslon1,epslon2,

x,M,y1,ya, yb,yx,xmedio

Integer ::k

!Passo 1

a= 0;

b=1;

epslon1 = 5.d-04

epslon2 = 5.d-04

!Passo 2

if ((b-a) < epslon1) Then

x=b

Write (*,*)' x=' ,x

stop

end if

ya= (a**3)-(9*a) + 3

yb= (b**3)-(9*b) + 3

if ((abs (ya) < epslon2).or.(abs (yb) < epslon2) )Then

x=b

Write (*,*)' x=' ,x

Stop

end if

! Passo 10

k = k+1

write (*,*) ' x=' ,x,' ', 'k=' ,k

goto 5

end program False_Posicion

Page 328: 1-Método Computacional 280309

Método da Interação Linear

Page 329: 1-Método Computacional 280309
Page 330: 1-Método Computacional 280309
Page 331: 1-Método Computacional 280309
Page 332: 1-Método Computacional 280309

program MILimplicit noneDouble Precision:: x0,e1,y0,xm,x1,y1integer:: k!=====passo 1=====x0=0.5e1=5.d-04 !======passo 2====y0=(x0**3)-(9*x0)+3if (abs(y0)<e1)thenxm=x0write(*,*)'xm=',x0stopend if !===passo 3=====k=0 !====passo 4====4 x1=((x0**3)/9)+(0.333333333) !======passo 5===========y1=(x1**3)-9*x1+3if((abs(y1)<e1).or.(abs(x1-x0)<e1))thenxm=x1write(*,*)'xm=',xmstopend if!======passo 6=======x0=x1!=====passo 7===== k=k+1write(*,*)'xm=',x1,' ','k=',k go to 4 end program MIL

Seja f(x)=0 e fi(x) a eq. Equivalente

1) Dados Iniciais

a) Valor x0

b) Precisão e

2) Se abs (y0) < e, Então escolha para xm=x0]

FIM

3) k = 0

4)

x1=fi(x0)

5) Se abs(y1) < e ou abs(x1-x0) < e , Entãoxm=x1 FIM

6) x0=x1,

7) k=k+1 , Vá para o passo 4.

Page 333: 1-Método Computacional 280309

4. Solução numérica de sistemas lineares.

Page 334: 1-Método Computacional 280309
Page 335: 1-Método Computacional 280309
Page 336: 1-Método Computacional 280309

Encanamento de uma estação de tratamento (ambiental)Fluxo de automóveis numa via (Produção e transportes)

Corrente Elétrica em um circuito ( Elétrica)Tensões em Ligas e Vigas (Mecânica e Civil)

Page 337: 1-Método Computacional 280309
Page 338: 1-Método Computacional 280309

Program System1Implicit NoneReal a,x1,b,x2,b1,c,d,b2,NumX2,DenX2!------Entrada de dados a=1b=2b1=3c=1d=-2b2=-1!-------FormulaNumX2= ( (b2/d) - ((c*b1)/(d*a)) )DenX2= 1-((c*b)/(d*a)) Write (*,*)NumX2Write (*,*)DenX2x2=( (b2/d) - ((c*b1)/(d*a)) ) / ( 1-((c*b)/(d*a)) ) x1=((b1-(b*x2)))/aWrite (*,*)x1Write (*,*)x2End Program System1

Para Sistemas de 2 equações e duas Variáveis

Page 339: 1-Método Computacional 280309

Regra de Cramer

Prof. Jason

Page 340: 1-Método Computacional 280309

Regra de Cramer

•Gabriel Cramer (1704 - 1752)

•nasceu em Genebra, Suiça

•Aos 18 anos- Doutor Universidade de Genebra

•1724 - nomeado professor–abordou os sistemas de equações lineares com múltiplas incógnitas

Page 341: 1-Método Computacional 280309

833221

30362413

6321

xxx

xxx

xx

321

643

21

A

328

6430

206

1

A

381

6303

261

2

A

821

3043

601

3

A

X1=det(A1)/det(A)= -40/44 =-10/11

X2=det(A2)/det(A)= 72/44 =18/11

X3=det(A3)/det(A)= 152/44 = 38/11

2) A n-ésima matriz (An) é obtida substituindo a n-ésima coluna pelo vetor das

constantes

1) substitui-se o sistema original pela matriz dos coeficientes

3) As variáveis são obtidas através das fórmulas

Page 342: 1-Método Computacional 280309

R66

+

-

Vs330v

R54

+

-

Vs220V

R45

R33

R22

R11

+

-

Vs110V

03630352434

0342423122220

02022121110

iiii

iiiii

iii

3031524

20342912

102213

ii

iii

iii1=-2.795A i2 = 0.808 A i3= -1.78 A

i1 i3i2

Page 343: 1-Método Computacional 280309
Page 344: 1-Método Computacional 280309

program cramerreal a1,a2,a3,a4,a5,a6,a7,a8,a9,b1,b2,b3,i1,i2,i3a1=-3a2=2a3=0a4=2a5=-9a6=4a7=0a8=4a9=-15b1=10b2=-20b3=30deta=(a7*a5*a3)+(a8*a6*a1)+(a9*a4*a2)-(a1*a5*a9)-(a2*a6*a7)-(a3*a4*a8)det1=(b3*a5*a3)+(a8*a6*b1)+(a9*b2*a2)-(b1*a5*a9)-(a2*a6*b3)-(a3*b2*a8)det2=(a7*b2*a3)+(b3*a6*a1)+(a9*a4*b1)-(a1*b2*a9)-(b1*a6*a7)-(a3*a4*b3)det3=(a7*a5*b1)+(a8*b2*a1)+(b3*a4*a2)-(a1*a5*b3)-(a2*b2*a7)-(b1*a4*a8)i1=det1/detai2=det2/detai3=det3/detawrite (*,*) i1,i2,i3end program cramer

Page 345: 1-Método Computacional 280309

Método de Gauss

Prof. Jason

Page 346: 1-Método Computacional 280309

A matemática de Gauss forneceu o ponto de partida para algumas das principais áreasde pesquisa da matemática moderna.

Estudando na universidade de Gottingen escreveu sua dissertação de doutoramento, as Disquisitiones arithmeticae constituem um dosgrandes clássicos da literatura matemática.

Page 347: 1-Método Computacional 280309
Page 348: 1-Método Computacional 280309

Método de Gauss

• Consiste em transformar um sistema linear em um sistema equivalente com uma matriz triangular, de solução imediata.

833221

30362413

732211

xxx

xxx

xxx

83300

3036240

63221

x

xx

xxx

Page 349: 1-Método Computacional 280309
Page 350: 1-Método Computacional 280309
Page 351: 1-Método Computacional 280309

Para k = 1, ..., n-1Para I = k+1, ...,n

kk

ik

a

am

ki

kjij

ik

bmb

ama

a

*b

*a

n1,...,k J Para

0

i

ij

Program triaGaussImplicit NoneInteger I,IC,J,K,L,N1Real MULT,MREAL A(3,3),DET,X(3),b(3) a(1,1)=3; a(1,2)=2; a(1,3)=4; b(1)=1 a(2,1)=1; a(2,2)=1; a(2,3)=2; b(2)=2 a(3,1)=4; a(3,2)=3; a(3,3)=-2; b(3)=3 N=3! Metodo de gauss TriangulaçãoDO K=1,N-1 DO I = k+1,N M = A(I,K)/A(K,K)

A(I,K)=0 DO J = K+1,N A(I,J)= A(I,J)-(M*A(K,J)) END DO B(I)=B(I)-(M*B(K))END DO

END DO!Impressão da matriz TriangularWrite (*,*)'Matriz A' DO I = 1,N DO J = 1,N write(*,*)'a(',i,',',j,')=',a(i,j) end doend doWrite (*,*)'Vetor B' DO J = 1,N write(*,*)'B(',J,')=',B(j) end doend program triaGauss

Page 352: 1-Método Computacional 280309

Método de Gauss (2º Passo)

• Após a triangulação das matrizes (passo 1) utiliza-se um algoritmo para calcular automaticamente as variáveis.

Page 353: 1-Método Computacional 280309
Page 354: 1-Método Computacional 280309

Program SystTri Integer k,n,j,Saida Parameter (n=3) Integer b(n),a(n,n) Real x(n),Serie(n),SerieTotala(1,1)=1; a(1,2)= 1; a(1,3)=1; b(1)=3a(2,1)=0; a(2,2)= 2; a(2,3)=2; b(2)=4a(3,1)=0; a(3,2)= 0; a(3,3)=1; b(3)=1 !Fórmulas x(n) = b(n)/a(n,n) Do k = n-1,1,-1

x(k)=b(k)/a(k,k) j=K+1 Serie (j) = (a(k,j)*x(j))/(a(k,k))

x(k) = (x(k) - Serie(j)) End Do

if (k==0)then x(k+1) = x(k+1) - (a(k+1,j+1)*x(j+1))/a(k+1,k+1)End If

Do Saida = 1,3 Write (*,*)x(Saida)End Do

End Program SystTri

1k 111j 111k

1k

/)*(x

0 k

/)*(x

1,1,-1-n k

/

kjkk

n

kjkkjkjk

nnnn

axax

Se

axab

Para

abx

jkk

kkjkjj

kkkk

Seriexx

axaSerie

kj

abx

/*

1

/

O laço p/ k decresce até 1.Porém a série é j=k+1, portantonecessita-se calcular a variávelX1

Page 355: 1-Método Computacional 280309
Page 356: 1-Método Computacional 280309

Program Gauss2Implicit NoneInteger I,IC,J,K,L,N,N1Real MULT,MREAL A(3,3),DET,X(3),b(3) a(1,1)=3; a(1,2)=2; a(1,3)=4; b(1)=1 a(2,1)=1; a(2,2)=1; a(2,3)=2; b(2)=2 a(3,1)=4; a(3,2)=3; a(3,3)=-2; b(3)=3 N=3! Metodo de gaussDO K=1,N-1 DO I = k+1,N M = A(I,K)/A(K,K)

A(I,K)=0 DO J = K+1,N A(I,J)= A(I,J)-(M*A(K,J)) END DO B(I)=B(I)-(M*B(K))END DO

END DO

!Fim do processo de triangulação,Inicio da! solucao da matriz Tringular X(N)=B(N)/A(N,N)

DO I = 1,K L=N-1 X(L)=A(L,N1) M=L+1 DO J=M,N X(L)=X(L)-A(L,J)*X(J)

END DO X(L)=X(L)/A(L,L)

END DO

DO I=1,N WRITE(*,*)X(I),I END DO

END PROGRAM GAUSS2

Page 357: 1-Método Computacional 280309
Page 358: 1-Método Computacional 280309
Page 359: 1-Método Computacional 280309

para K=1,N-1! Escolha do Pivô, de maior módulo Pivo = abs(A(k,k)) LI =K

Para I = k+1,NMAX = abs(a(i,k)) Se (MAX > Pivo) Então Faça Pivo = MAX e LI = I

! Troca de LinhasPara J = K,N EL=A(k,j) A(k,j)=A(LI,J) A(LI,J)=EL EL = B(k)B(k)=B(LI)B(LI)=EL Para I = k+1,NM = A(I,K)/A(K,K)A(I,K)=0 Para J = K+1,N A(I,J)= A(I,J)-(M*A(K,J)) B(I)=B(I)-(M*B(K))

Page 360: 1-Método Computacional 280309

Program GaussPivoParcialImplicit NoneInteger I,J,K,N,Saida,LIReal M,Pivo,MAX,ELREAL A(3,3),X(3),b(3),Serie(3)a(1,1)=0; a(1,2)= -1;a(1,3)=1; b(1)=0a(2,1)=1; a(2,2)=7; a(2,3)=1; b(2)=9 a(3,1)=1; a(3,2)=1; a(3,3)=0; b(3)=2 N=3! Metodo de gaussDO K=1,N-1! Escolha do Pivô, de maior módulo Pivo = abs(A(k,k)) LI =K

DO I = k+1,NMAX = abs(a(i,k)) if (MAX > Pivo) Then Pivo = MAX

LI = IEnd If

End DO

If (Pivo < 1.e-4) Then Write(*,*)'Matriz Singular' Stop End If ! Troca de LinhasDO J = K,N EL=A(k,j) A(k,j)=A(LI,J) A(LI,J)=EL End DoEL = B(k)B(k)=B(LI)B(LI)=EL DO I = k+1,NM = A(I,K)/A(K,K)A(I,K)=0DO J = K+1,NA(I,J)= A(I,J)-(M*A(K,J))END DOB(I)=B(I)-(M*B(K))END DO END DO

!Impressão da matriz TriangularWrite (*,*)'Matriz A' DO I = 1,N DO J = 1,N write(*,*)'a(',i,',',j,')=',a(i,j) end doend doWrite (*,*)'Vetor B' DO J = 1,N write(*,*)'B(',J,')=',B(j) end do !Solucao do Sist Linear x(n) = b(n)/a(n,n) Do k = n-1,1,-1

x(k)=b(k)/a(k,k) j=K+1

Serie (j) = (a(k,j)*x(j))/(a(k,k)) x(k) = (x(k) - Serie(j))

End Do if (k==0)then

x(k+1) = x(k+1) - (a(k+1,j+1)*x(j+1))/a(k+1,k+1)

End IfDo Saida = 1,3 Write (*,*)x(Saida)End Do

End Program GaussPivoParcial

Page 361: 1-Método Computacional 280309

Cálculo do Resíduo

BXAsíduo

o

BXABXA

Re

:log

0ou

Page 362: 1-Método Computacional 280309

Algoritmo - Resíduo

Residuo = 0Para I = 1,NSoma = 0 Para J = 1,N Soma = Soma + A(I,J)*X(J) Erro = abs(B(I)-Soma)Se (Erro > Residuo) Então Residuo = Erro

O resíduo é o maior erro encontrado em cada linha do Sistema Linear

Page 363: 1-Método Computacional 280309

Program GaussPivoResiduoImplicit NoneInteger I,J,K,N,Saida,LIReal M,Pivo,MAX,EL,Residuo,Soma,ErroREAL A(3,3),X(3),b(3),D(3),Serie(3) a(1,1)=0; a(1,2)= -1; a(1,3)=1; b(1)=0 a(2,1)=1; a(2,2)=7; a(2,3)=1; b(2)=9 a(3,1)=1; a(3,2)=1; a(3,3)=0; b(3)=2 N=3! Metodo de gaussDO K=1,N-1! Escolha do Pivô, de maior módulo Pivo = abs(A(k,k)) LI =K

DO I = k+1,NMAX = abs(a(i,k)) if (MAX > Pivo) Then Pivo = MAX

LI = IEnd If

End DO If (Pivo < 1.e-4) Then Write(*,*)'Matriz Singular' Stop End If

! Troca de LinhasDO J = K,N EL=A(k,j) A(k,j)=A(LI,J) A(LI,J)=EL End DoEL = B(k)B(k)=B(LI)B(LI)=EL

DO I = k+1,N M = A(I,K)/A(K,K) A(I,K)=0 DO J = K+1,N A(I,J)= A(I,J)-(M*A(K,J)) END DO B(I)=B(I)-(M*B(K))END DO END DO!Impressão da matriz TriangularWrite (*,*)'Matriz A' DO I = 1,N DO J = 1,N write(*,*)'a(',i,',',j,')=',a(i,j) end doend doWrite (*,*)'Vetor B' DO J = 1,N write(*,*)'B(',J,')=',B(j) end do

!Solucao do Sist Linear x(n) = b(n)/a(n,n) Do k = n-1,1,-1 x(k)=b(k)/a(k,k) j=K+1 Serie (j) = (a(k,j)*x(j))/(a(k,k)) x(k) = (x(k) - Serie(j)) End Do if (k==0)then x(k+1) = x(k+1) - (a(k+1,j+1)*x(j+1))/a(k+1,k+1)End IfDo Saida = 1,3 Write (*,*)x(Saida)End Do

!Calculo do Residuoa(1,1)=0; a(1,2)= -1; a(1,3)=1; b(1)=0a(2,1)=1; a(2,2)=7; a(2,3)=1; b(2)=9a(3,1)=1; a(3,2)=1; a(3,3)=0; b(3)=2 N=3Residuo = 0Do I = 1,NSoma = 0Do J = 1,NSoma = Soma + A(I,J)*X(J)End DoErro = abs(B(I)-Soma)If (Erro > Residuo) ThenResiduo = ErroEnd IfEnd DoWrite (*,*)'Residuo=',ResiduoEnd Program GaussPivoResiduo

Page 364: 1-Método Computacional 280309

Fatoração LU

Page 365: 1-Método Computacional 280309
Page 366: 1-Método Computacional 280309
Page 367: 1-Método Computacional 280309

Matiz Triangular (Gauss)

Page 368: 1-Método Computacional 280309

m31

m21

Armazenados do processo de triangulação de U

Page 369: 1-Método Computacional 280309

Métodos Interativos

Prof. Jason

Page 370: 1-Método Computacional 280309
Page 371: 1-Método Computacional 280309
Page 372: 1-Método Computacional 280309

Norma de um Vetor

Page 373: 1-Método Computacional 280309

Portanto, alterações na resposta do sistema está associada ao comportamento do sistema.Este comportamento é medido pelo número de condição (condicionamento) da matriz.

Para entender o número de condicionamento de uma matriz é preciso relembrar o conceitode norma de vetores e matrizes.

Page 374: 1-Método Computacional 280309
Page 375: 1-Método Computacional 280309
Page 376: 1-Método Computacional 280309
Page 377: 1-Método Computacional 280309
Page 378: 1-Método Computacional 280309
Page 379: 1-Método Computacional 280309
Page 380: 1-Método Computacional 280309
Page 381: 1-Método Computacional 280309

Algoritmo de Jacobi

Page 382: 1-Método Computacional 280309
Page 383: 1-Método Computacional 280309
Page 384: 1-Método Computacional 280309

program jacobi;uses crt;vara:array[1..3,1..3] of real;b:array[1..3] of real;x:array[1..3] of real;xi:array[1..3] of real;e:real;saux:real;max:integer;i,j,it,a1:integer;

begin

{sistema teste}{coeficientes}a[1,1]:=4;a[1,2]:=0.24;a[1,3]:=-0.08;a[2,1]:=0.09;a[2,2]:=3;a[2,3]:=-0.15;a[3,1]:=0.04;a[3,2]:=-0.08;a[3,3]:=4;

{termos independentes}b[1]:=8;b[2]:=9;b[3]:=20;

{parametros}max:=200; {maximo de iteracoes}e:=0.00001; {tolerancia - criterio de parada}

for it:=1 to max do

begin

writeln;writeln('Iteracao ',it);writeln;

for i:= 1 to 3 do

begin

saux:=0;

for j:= 1 to 3 do if j<>i then saux:=saux+a[i,j]*x[j];

xi[i]:=(1/a[i,i])*(b[i]-saux);

if abs((xi[i]-x[i])/xi[i])<e then

begin

for a1:=1 to 3 do

beginx[a1]:=xi[a1];writeln('x',a1,'=',x[a1]);

end;

halt(0);

end;end;

for a1:=1 to 3 dobeginx[a1]:=xi[a1];writeln('x',a1,'=',x[a1]);end;

end;

end.

Page 385: 1-Método Computacional 280309
Page 386: 1-Método Computacional 280309

Método de Gauss Seidel

Page 387: 1-Método Computacional 280309
Page 388: 1-Método Computacional 280309
Page 389: 1-Método Computacional 280309
Page 390: 1-Método Computacional 280309

Convergência de Métodos Interativos

Page 391: 1-Método Computacional 280309
Page 392: 1-Método Computacional 280309
Page 393: 1-Método Computacional 280309
Page 394: 1-Método Computacional 280309

5. Interpolação

Prof. Jason

Page 395: 1-Método Computacional 280309

INTERPOLAÇÃO

• Consiste em substituir uma

função f(x) por outra g(x) mais simples

– Calcular a função em um ponto não tabelado

– Derivar ou integrar uma função complexa

Page 396: 1-Método Computacional 280309

Exemplo :RAIOS DIFRATADOS

• Obter uma função mais simples de ser integrada

21

2

2)2,1(.

)(

)(

0

0

)2(

)2(jks

ii

i

h

s

d

d

essADE

DE

D

D

sE

sE

}))(()((

})(()((({sen

1

1,

kLgFdkLgFd

kLgFdkLgFdD hs

djejF jx 2exp2)(

Page 397: 1-Método Computacional 280309

UNIDADE MÓVELComprovação da teoria com a prática.

Page 398: 1-Método Computacional 280309

X0 X1 X2x -1 0 2F(x) 4 1 -1

Como obter o polinômio Interpolador ?

nnx xaxaxaaxP ....)( 2

210

Page 399: 1-Método Computacional 280309

)()(

)()(

)()(

2222

22210

1122

12110

0022

02010

xfxPxaxaa

xfxPxaxaa

xfxPxaxaa

Substitui-se os pontos x0,x1,x2, f(x0), f(x1) e f(x2)

1)4()2(

1)0()0(

4

210

210

210

aaa

aaa

aaa

3/2 ,3/7 ,1 210 aaa

nnx xaxaxaaxP ....)( 2

210

X0 X1 X2x -1 0 2F(x) 4 1 -1

Page 400: 1-Método Computacional 280309

nnx xaxaxaaxP ....)( 2

210

2 )3/2( )3/7(1)( xxxPx

Ache a função no ponto x=1

Page 401: 1-Método Computacional 280309

Início

Entrada de dadosx

Cálculo da Equação

Saída

FIM

2 )3/2( )3/7(1 xxxP

xP

Page 402: 1-Método Computacional 280309

Exemplo Prático de Interpolação

Prof. Jason

Page 403: 1-Método Computacional 280309
Page 404: 1-Método Computacional 280309
Page 405: 1-Método Computacional 280309
Page 406: 1-Método Computacional 280309
Page 407: 1-Método Computacional 280309
Page 408: 1-Método Computacional 280309
Page 409: 1-Método Computacional 280309
Page 410: 1-Método Computacional 280309
Page 411: 1-Método Computacional 280309
Page 412: 1-Método Computacional 280309
Page 413: 1-Método Computacional 280309

5.2

Page 414: 1-Método Computacional 280309
Page 415: 1-Método Computacional 280309

Program LagrangeImplicit NoneReal::x0,x1,x2,y0,y1,y2,x,l0,l1,l2,p2!===================x0=-1; x1=0; x2=2;y0=4; y1=1; y2=-1;x=1!===================L0=((x-x1)*(x-x2))/((x0-x1)*(x0-x2))L1=((x-x0)*(x-x2))/((x1-x0)*(x1-x2))L2=((x-x0)*(x-x1))/((x2-x0)*(x2-x1))

p2 =(y0*L0)+ (y1*L1) + (y2*L2)

Write (*,*)'p2=',p2

end program Lagrange

X0 X1 X2x -1 0 2F(x) 4 1 -1

Calcule a função no ponto x=1

Page 416: 1-Método Computacional 280309

Não cai na prova

Page 417: 1-Método Computacional 280309
Page 418: 1-Método Computacional 280309

Regra de Cramer

•Gabriel Cramer (1704 - 1752)

•nasceu em Genebra, Suiça

•Aos 18 anos- Doutor Universidade de Genebra

•1724 - nomeado professor–abordou os sistemas de equações lineares com múltiplas incógnitas

Page 419: 1-Método Computacional 280309

833221

30362413

6321

xxx

xxx

xx

321

643

21

A

328

6430

206

1

A

381

6303

261

2

A

821

3043

601

3

A

X1=det(A1)/det(A)= -40/44 =-10/11

X2=det(A2)/det(A)= 72/44 =18/11

X3=det(A3)/det(A)= 152/44 = 38/11

2) A n-ésima matriz (An) é obtida substituindo a n-ésima coluna pelo vetor das

constantes

1) substitui-se o sistema original pela matriz dos coeficientes

3) As variáveis são obtidas através das fórmulas

Page 420: 1-Método Computacional 280309

program cramerreal a1,a2,a3,a4,a5,a6,a7,a8,a9,b1,b2,b3,i1,i2,i3a1=-3a2=2a3=0a4=2a5=-9a6=4a7=0a8=4a9=-15b1=10b2=-20b3=30deta=(a7*a5*a3)+(a8*a6*a1)+(a9*a4*a2)-(a1*a5*a9)-(a2*a6*a7)-(a3*a4*a8)det1=(b3*a5*a3)+(a8*a6*b1)+(a9*b2*a2)-(b1*a5*a9)-(a2*a6*b3)-(a3*b2*a8)det2=(a7*b2*a3)+(b3*a6*a1)+(a9*a4*b1)-(a1*b2*a9)-(b1*a6*a7)-(a3*a4*b3)det3=(a7*a5*b1)+(a8*b2*a1)+(b3*a4*a2)-(a1*a5*b3)-(a2*b2*a7)-(b1*a4*a8)i1=det1/detai2=det2/detai3=det3/detawrite (*,*) i1,i2,i3end program cramer

Page 421: 1-Método Computacional 280309

A matemática de Gauss forneceu o ponto de partida para algumas das principais áreasde pesquisa da matemática moderna.

Estudando na universidade de Gottingen escreveu sua dissertação de doutoramento, as Disquisitiones arithmeticae constituem um dosgrandes clássicos da literatura matemática.

Page 422: 1-Método Computacional 280309

Método de Gauss (1º Passo)

• Consiste em transformar um sistema linear em um sistema equivalente com uma matriz triangular, de solução imediata.

833221

30362413

732211

xxx

xxx

xxx

83300

3036240

63221

x

xx

xxx

Page 423: 1-Método Computacional 280309

Método de Gauss (2º Passo)

• Após a triangulação das matrizes (passo 1) utiliza-se um algoritmo para calcular automaticamente as variáveis.

Page 424: 1-Método Computacional 280309
Page 425: 1-Método Computacional 280309
Page 426: 1-Método Computacional 280309
Page 427: 1-Método Computacional 280309
Page 428: 1-Método Computacional 280309
Page 429: 1-Método Computacional 280309
Page 430: 1-Método Computacional 280309
Page 431: 1-Método Computacional 280309
Page 432: 1-Método Computacional 280309

Escolha do Grau do Polinômio Interpolador• A tabela de diferenças divididas podem auxiliar na

escolha do grau do polinômio interpolador.

• Para tanto, deve-se construir a tabela e examinar a diferença na vizinhança do ponto de interesse.

• Se as diferenças divididas de ordem n nesta vizinhança são praticamente constantes, pode-se concluir que o polinômio interpolador de grau n será uma boa aproximação para a função considerada.

Page 433: 1-Método Computacional 280309

Exemplo 6.11: Para os dados tabelados defina a ordem do polinômio interpolador.

x 1 1,01 1,02 1,03 1,04 1,05f(x) 1 1,005 1,01 1,0149 1,0198 1,0243

x Ordem 0 Ordem 1 Ordem 21 1

0,51,01 1,005 0

0,51,02 1,01 -0,5

0,491,03 1,0149 0

0,491,04 1,0198 0

0,491,05 1,0243

Observe que um polinômio de grau 2 deve resultar numa boa aproximação.

Page 434: 1-Método Computacional 280309

5.3. Fenômeno de Runge

Prof. Jason

Page 435: 1-Método Computacional 280309
Page 436: 1-Método Computacional 280309

fenômeno de Runge

• é um problema que ocorre quando se usa com polinômios de ordem elevada. Foi descoberto por Runge quando investigava o erro na interpolação polinomial.

Page 437: 1-Método Computacional 280309
Page 438: 1-Método Computacional 280309
Page 439: 1-Método Computacional 280309

5.4. Spline

Prof. Jason

Page 440: 1-Método Computacional 280309
Page 441: 1-Método Computacional 280309

Spline

• A maior característica das interpolações cubic spline é o amortecimento ou suavidade que apresentam na transição de um nó para outro, sendo muito utilizada para estabilização de câmeras de vídeo e outros instrumentos sensíveis a variações bruscas.

• Como desvantagens deste método, podemos salientar que ele apresenta algumas instabilidades, principalmente em

curvas com pontos muito próximos uns dos outros.

Page 442: 1-Método Computacional 280309

A figura mostra o caso em que aproximamos a função por uma função linear por partes, que denotaremos S1(x).

S11(x)

S12(x)

Page 443: 1-Método Computacional 280309
Page 444: 1-Método Computacional 280309
Page 445: 1-Método Computacional 280309
Page 446: 1-Método Computacional 280309
Page 447: 1-Método Computacional 280309

Danger

Page 448: 1-Método Computacional 280309

Danger

Page 449: 1-Método Computacional 280309

6- Diferenciação Numérica

Prof. Jason

Page 450: 1-Método Computacional 280309

Problema de valor inicial (PVI) e Problema de valor de contorno (PVC).

• Quando as condições iniciais estão associadas a um único valor da variável independente, define-se como um problema de valor inicial – (PVI ou problema de Cauchy ).

• Quando as condições iniciais estão associadas mais de um valor da variável independente, define-se como um problema de valor de contorno – (PVC).

• Normalmente, problemas tendo como variável independente o tempo, são problemas de valor inicial.

Page 451: 1-Método Computacional 280309
Page 452: 1-Método Computacional 280309
Page 453: 1-Método Computacional 280309

Danger

Page 454: 1-Método Computacional 280309

Danger

Page 455: 1-Método Computacional 280309

Conceitos Básicos de Diferenciação

Page 456: 1-Método Computacional 280309

Derivada Numérica

Page 457: 1-Método Computacional 280309

m=tg(θ) = co/ca

Page 458: 1-Método Computacional 280309
Page 459: 1-Método Computacional 280309
Page 460: 1-Método Computacional 280309
Page 461: 1-Método Computacional 280309
Page 462: 1-Método Computacional 280309
Page 463: 1-Método Computacional 280309
Page 464: 1-Método Computacional 280309

Diferenciação com 3 e 5 pontos Método de Lagrange

Prof. Jason

Page 465: 1-Método Computacional 280309
Page 466: 1-Método Computacional 280309
Page 467: 1-Método Computacional 280309
Page 468: 1-Método Computacional 280309
Page 469: 1-Método Computacional 280309

Erros na derivação Numérica

Prof. Jason

Page 470: 1-Método Computacional 280309

Erros na derivação Numérica

• Um exemplo de método numérico que pode-se aplicar à solução aproximada de um problema de valor inicial é o método de Euler

Page 471: 1-Método Computacional 280309
Page 472: 1-Método Computacional 280309
Page 473: 1-Método Computacional 280309

Derivada

Page 474: 1-Método Computacional 280309
Page 475: 1-Método Computacional 280309
Page 476: 1-Método Computacional 280309

4 - 3,5 = 0,5. Observa-se, assim, que quando o intervalo h é reduzido pela metade, o erroreduz-se pela metade.

Page 477: 1-Método Computacional 280309

Program Euler

Implicit NoneInteger mReal x,y,fx,h,n

Write(*,*)'Digite o valor Inicial de x'Read (*,*)xWrite(*,*)'Digite o valor Inicial de y'Read (*,*)yWrite(*,*)'O valor do Intervalo h'Read (*,*)hWrite(*,*)'O número de passos m'Read (*,*)m

!Interação EulerDo n = 1,mFx=Xy=y+(h*Fx)x=x+hWrite(*,*)'Resposta'Write(*,*)x,yend doEnd Program Euler

1) Dados Iniciais

a) valor Inicial x,y

b) intervalo h e número de passos m

2) Para n = 1, m Faça Fx = x, y=y+(h*Fx), x=x+h

Page 478: 1-Método Computacional 280309
Page 479: 1-Método Computacional 280309
Page 480: 1-Método Computacional 280309
Page 481: 1-Método Computacional 280309

Início

X0=0,y=2,h=0.5,flinha,flinha2

y=y+(x-x0)*flinha+((x-x0)*flinha2)/2

Saída x,y

Fim

N=1,10

x=x+h

Page 482: 1-Método Computacional 280309

Program Taylor1

Implicit None

real x,y,h,FLinha2,FLinhaInteger n

x=0h=0.5y=2

do n = 1,10

FLinha= xFLinha2 = 1

y = y + (h*FLinha) + ((h*h /2) * FLinha2)x = x + h

write(*,*) x,yend doend program Taylor1

Comparando com a solução analítica p(2)=4, o méodo de Taylor foi mais preciso do que o de Euler p(2)=3.5

Page 483: 1-Método Computacional 280309
Page 484: 1-Método Computacional 280309
Page 485: 1-Método Computacional 280309
Page 486: 1-Método Computacional 280309
Page 487: 1-Método Computacional 280309
Page 488: 1-Método Computacional 280309
Page 489: 1-Método Computacional 280309
Page 490: 1-Método Computacional 280309
Page 491: 1-Método Computacional 280309
Page 492: 1-Método Computacional 280309
Page 493: 1-Método Computacional 280309
Page 494: 1-Método Computacional 280309
Page 495: 1-Método Computacional 280309

-2 = Ce^1 + 1 -> C = -3/2.718 -> C = -1.103

Page 496: 1-Método Computacional 280309
Page 497: 1-Método Computacional 280309
Page 498: 1-Método Computacional 280309

program rk2double precision f,x,y,h,a,b,k1,k2integer n,iexternal FWRITE(*,*)'Entre com o valor de h:'READ(*,*)hWRITE(*,*)'Entre com o valor de Xo:'READ(*,*)aWRITE(*,*)'Entre com o valor de Yo:'READ(*,*)yWRITE(*,*)'Entre com o valor de x final:'READ(*,*)bn = (b-a)/hx = ado i=1,nk1 = f( x , y )*hk2 = f( x+h , y+k1 )*hy = y + (k1+k2)/2x = x + hwrite(*,*)'ITERACAO ',iwrite(*,*)'x=',xwrite(*,*)'k1=',k1write(*,*)'k2=',k2write(*,*)'y=',ywrite(*,*)'--------------'enddoend!!!!!!!!!!!!!!!!!!!!!!FUNCTION F(X,Y)IMPLICIT NONEDOUBLE PRECISION F,X,Y! F=(X-Y)/X! F = 0.04*y! F = 2*x! F = (x-y)/(x+y)F = y - x + 1end

Page 499: 1-Método Computacional 280309
Page 500: 1-Método Computacional 280309

7- Integração Numérica

Prof. Jason

Page 501: 1-Método Computacional 280309
Page 502: 1-Método Computacional 280309
Page 503: 1-Método Computacional 280309
Page 504: 1-Método Computacional 280309
Page 505: 1-Método Computacional 280309

Fórmulas de Newton-Cotes

Page 506: 1-Método Computacional 280309
Page 507: 1-Método Computacional 280309
Page 508: 1-Método Computacional 280309
Page 509: 1-Método Computacional 280309
Page 510: 1-Método Computacional 280309
Page 511: 1-Método Computacional 280309

Regra dos Trapézios

Page 512: 1-Método Computacional 280309
Page 513: 1-Método Computacional 280309
Page 514: 1-Método Computacional 280309
Page 515: 1-Método Computacional 280309

Integração Numérica

• Algumas Integrais são difíceis para calcular analíticamente

• Para resolver estes problemas - Métodos Numéricos

• Substitui-se Integrais complexas por outras mais simples

Page 516: 1-Método Computacional 280309

Regra do Trapézio

• Substitui a área que representa a integral pela área do trapézio.

Page 517: 1-Método Computacional 280309

Regra do Trapézio• O erro deste método é grande quando o intervalo de

integração é grande

)]()([2 10 xfxfh

IT

f(xo)

f(x1)

h= b-a

Page 518: 1-Método Computacional 280309

Regra dos trapézios Repetidos• Usa-se uma subdivisão no intervalo de integração,

aplicando a regra do trapézio repetidas vezes

)(...])()([2)([2 210

'

nT xfxfxfxfh

I

'h

Page 519: 1-Método Computacional 280309

Exemplo 2

• Calcule a Integral usando Trapézios repetidos

• Usando 5 subintervalos

dxeI x1

0

'h

Page 520: 1-Método Computacional 280309

program trapezio !.....Integração numérica

!..........Entrada de variáveis...................

implicit nonedouble precision:: a,a1,a2,a3,a4,b,h,h_linha,ya,ya1,ya2,ya3,ya4,ybdouble precision:: s,erro,solution_analiticainteger::sub_intervalo

!..........Dados de variáveis...................

a=0.d0a1=0.2d0a2=0.4d0a3=0.6d0a4=0.8d0b=1.d0

solution_analitica=1.7182d0

!..........Cálculos...................h=b-a

sub_intervalo=5h_linha=(h/sub_intervalo)

ya=exp(a)ya1=exp(a1)ya2=exp(a2)ya3=exp(a3)ya4=exp(a4)yb=exp(b)

s=(h_linha/2)*(ya+2*ya1+2*ya2+2*ya3+2*ya4+yb)erro=1.d0-(s/solution_analitica)

write(*,*)'s=',swrite(*,*)'erro=',100*abs(erro)

end program

)(...])()([2)([2 210

'

nT xfxfxfxfh

I

'h

Page 521: 1-Método Computacional 280309

program trapezio !.....Integração numérica!..........Entrada de variáveis...................implicit nonedouble precision:: a,a1,a2,a3,a4,a5,a6,a7,a8,a9,

b,h,h_linha,ya,ya1,ya2,ya3,ya4,ya5,ya6,ya7,ya8,ya9,yb

double precision:: s,erro,solution_analiticainteger::sub_intervalo!..........Dados de variáveis...................a=0.d0a1=0.2d0a2=0.4d0a3=0.6d0a4=0.8d0a5=1.0d0a6=1.2d0a7=1.4d0a8=1.6d0a9=1.8d0b=2.0d0

solution_analitica=11.5!..........Cálculos...................h=b-asub_intervalo=10h_linha=(h/sub_intervalo)

ya=(2*(a)**(2))*((((a)**(3))+1)**(0.5))

ya1=(2*(a1)**(2))*((((a1)**(3))+1)**(0.5))ya2=(2*(a2)**(2))*((((a2)**(3))+1)**(0.5))ya3=(2*(a3)**(2))*((((a3)**(3))+1)**(0.5))ya4=(2*(a4)**(2))*((((a4)**(3))+1)**(0.5))ya5=(2*(a5)**(2))*((((a5)**(3))+1)**(0.5))ya6=(2*(a6)**(2))*((((a6)**(3))+1)**(0.5))ya7=(2*(a7)**(2))*((((a7)**(3))+1)**(0.5))ya8=(2*(a8)**(2))*((((a8)**(3))+1)**(0.5))ya9=(2*(a9)**(2))*((((a9)**(3))+1)**(0.5))

yb=(2*(b)**(2))*((((b)**(3))+1)**(0.5))

s=(h_linha/2)*(ya+2*ya1+2*ya2+2*ya3+2*ya4+2*ya5+2*ya6+2*ya7+2*ya8+2*ya9+yb)

erro=1.d0-(s/solution_analitica)write(*,*)'s=',s,yb

write(*,*)'erro=',100*abs(erro)

end program

Page 522: 1-Método Computacional 280309

Regra de Simpson

Simpson foi um escritor bem-sucedido, cujo trabalho residiu principalmente no campo da

probabilidade. Lecionou na Royal Military Academy de Woolwich.

Thomas Simpson (1710--1761)

Page 523: 1-Método Computacional 280309
Page 524: 1-Método Computacional 280309
Page 525: 1-Método Computacional 280309
Page 526: 1-Método Computacional 280309
Page 527: 1-Método Computacional 280309
Page 528: 1-Método Computacional 280309
Page 529: 1-Método Computacional 280309
Page 530: 1-Método Computacional 280309

program SimpsonRep implicit none Real X0,X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7,Y8,Y9,Y10 Real h,hLinha,Sub_Intervalo,IS,Erro,TRUE x0 = 0.0 x1 = 0.1 x2 = 0.2

x3 = 0.3 x4 = 0.4

x5 = 0.5 x6 = 0.6 x7 = 0.7 x8 = 0.8 x9 = 0.9 x10 = 1.0

Sub_Intervalo = 10 h = x10-x0 hlinha = h/Sub_intervalo

True = exp(x10) - exp (x0) Y0=exp(x0)

y1=exp(x1) y2=exp(x2)

y3=exp(x3) y4=exp(x4) y5=exp(x5) y6=exp(x6) y7=exp(x7) y8=exp(x8) y9=exp(x9) y10=exp(x10) IS = (hlinha/3)*( (y0 + (4*(y1+y3+y5+y7+y9)) + (2*(y2+y4+y6+y8)) + y10 ) )

erro= 100* (is-True)/Is Write(*,*)Is Write(*,*)erro

end Program SimpsonRep

Page 531: 1-Método Computacional 280309

Erros na Integração Numérica

Page 532: 1-Método Computacional 280309
Page 533: 1-Método Computacional 280309
Page 534: 1-Método Computacional 280309
Page 535: 1-Método Computacional 280309
Page 536: 1-Método Computacional 280309
Page 537: 1-Método Computacional 280309
Page 538: 1-Método Computacional 280309

8- Ajuste de Curvas pelo Método dos Mínimos

Quadrados

Prof. Jason

Page 539: 1-Método Computacional 280309
Page 540: 1-Método Computacional 280309
Page 541: 1-Método Computacional 280309
Page 542: 1-Método Computacional 280309

Método dos Mínimos Quadrados -Caso Discreto

Page 543: 1-Método Computacional 280309
Page 544: 1-Método Computacional 280309
Page 545: 1-Método Computacional 280309
Page 546: 1-Método Computacional 280309
Page 547: 1-Método Computacional 280309
Page 548: 1-Método Computacional 280309
Page 549: 1-Método Computacional 280309
Page 550: 1-Método Computacional 280309
Page 551: 1-Método Computacional 280309
Page 552: 1-Método Computacional 280309
Page 553: 1-Método Computacional 280309
Page 554: 1-Método Computacional 280309
Page 555: 1-Método Computacional 280309
Page 556: 1-Método Computacional 280309

Método dos Mínimos Quadrados -Caso Contínuo

Page 557: 1-Método Computacional 280309
Page 558: 1-Método Computacional 280309
Page 559: 1-Método Computacional 280309
Page 560: 1-Método Computacional 280309
Page 561: 1-Método Computacional 280309

com g1(x)=1, g2(x)=x

Page 562: 1-Método Computacional 280309

Método dos Mínimos Quadrados- Caso Não-Linear

Page 563: 1-Método Computacional 280309
Page 564: 1-Método Computacional 280309
Page 565: 1-Método Computacional 280309
Page 566: 1-Método Computacional 280309
Page 567: 1-Método Computacional 280309
Page 568: 1-Método Computacional 280309

Método dos Mínimos Quadrados -Teste de

Alinhamento

Page 569: 1-Método Computacional 280309
Page 570: 1-Método Computacional 280309

9. Equações Diferenciais ordinárias

Prof. Jason

Page 571: 1-Método Computacional 280309

9.1. Equações de Primeira Ordem

Prof. Jason

Page 572: 1-Método Computacional 280309

E q u a ç õ e s D i f e r e n c i a i s d e P r i m e i r a O r d e m

E q u a ç ã o d i f e r e n c i a l d e p r i m e i r a o r d e m é d a f o r m a :

),( yxfdy

dy

S e g ( x ) é u m a f u n ç ã o c o n t i n u a d a d a , e n t ã o a e q u a ç ã o d e p r i m e i r a o r d e m

)( xgdx

dy ( 1 )

P o d e s e r r e s o l v i d a p o r i n t e g r a ç ã o . A s o l u ç ã o é

cdxxgy )(

Page 573: 1-Método Computacional 280309

E q u a ç ã o S e p a r á v e l

U m a e q u a ç ã o d i f e r e n c i a l d a f o r m a

)(

)(

yh

xg

dx

dy

é c h a m a d a d e s e p a r á v e l o u t e m v a r i á v e i s s e p a r á v e i s .

O b s e r v e q u e u m a e q u a ç ã o s e p a r á v e l p o d e s e r e s c r i t a c o m o

)()( xgdx

dyyh ( 2 )

U m a s o l u ç ã o p a r a ( 2 ) , t e m o s

cdxxgdyyh )()(

Page 574: 1-Método Computacional 280309
Page 575: 1-Método Computacional 280309
Page 576: 1-Método Computacional 280309

D e f i n i ç ã o – E q u a ç ã o H o m o g ê n e a

U m a e q u a ç ã o d i f e r e n c i a l d a f o r m a

0),(),( dyyxNdxyxM

é c h a m a d a d e h o m o g ê n e a s e a m b o s o s c o e f i c i e n t e s M e N s ã o f u n ç õ e s h o m o g ê n e a s d om e s m o g r a u .

Page 577: 1-Método Computacional 280309

M é t o d o d e S o l u ç ã o

U m a e q u a ç ã o d i f e r e n c i a l h o m o g ê n e a p o d e s e r r e s o l v i d a p o r m e i o d e u m as u b s t i t u i ç ã o a l g é b r i c a .

A s u b s t i t u i ç ã o y = u x o u x = v y , e m q u e ‘ u ’ e ‘ v ’ s ã o n o v a s v a r i á v e i si n d e p e n d e n t e s , t r a n s f o r m a r á a e q u a ç ã o d i f e r e n c i a l d e p r i m e i r a o r d e ms e p a r á v e l .

P a r a v e r i s s o , s e j a y = u x ; e n t ã o , s u a d i f e r e n c i a l d y = u d x + x d u . S u b s t i t u i n d on a e q . H o m o g ê n e a , t e m o s

0])[,(),( xduudxuxxNdxuxxM

Page 578: 1-Método Computacional 280309

seja y = xv; então,sua diferencial dy = x dv + v dx

x v’ +v = (x2 + x2 v2)/x2 v =

Page 579: 1-Método Computacional 280309

D e f i n i ç ã o – E q u a ç ã o E x a t a

U m a e x p r e s s ã o d i f e r e n c i a l

0),(),( dyyxNdxyxM

é u m a d i f e r e n c i a l e x a t a e m u m a r e g i ã o R d o p l a n o x y s e e l a c o r r e s p o n d e à d i f e r e n c i a l t o t a ld e a l g u m a f u n ç ã o f ( x , y ) . U m a e q u a ç ã o d i f e r e n c i a l d a f o r m a

0),(),( dyyxNdxyxM

é c h a m a d a d e u m a e q u a ç ã o e x a t a s e a e x p r e s s ã o d o l a d o e s q u e r d o é u m a d i f e r e n c i a le x a t a .

Page 580: 1-Método Computacional 280309

Teorema – Critério para uma diferencial exata

Sejam M (x, y) e N (x, y) funções contínuas com derivadas parciais contínuas em umaregião retangular R definida por a < x < b, c < y < d. Então, uma condição necessária esuficiente para que

0),(),( dyyxNdxyxM

seja uma diferencial exata é

x

N

y

M

Page 581: 1-Método Computacional 280309

x

N

y

M

0),(),( dyyxNdxyxM

Page 582: 1-Método Computacional 280309

M é t o d o d e S o l u ç ã o

D a d a a e q u a ç ã o

0),(),( dyyxNdxyxM

M o s t r e p r i m e i r o q u e

x

N

y

M

D e p o i s s u p o n h a q u e

),( yxMx

f

d a í p o d e m o s e n c o n t r a r f i n t e g r a n d o M ( x , y ) c o m r e l a ç ã o a x , c o n s i d e r a n d o y c o n s t a n t e .E s c r e v e m o s ,

)(),(),( ygdxyxMyxf

e m q u e a f u n ç ã o a r b i t r á r i a g ( y ) é a c o n s t a n t e d e i n t e g r a ç ã o . A g o r a , d e r i v a n d o f ( x , y ) c o mr e l a ç ã o a y e s u p o n d o :),( yxNyf

),()´(),( yxNygdxyxMyy

f

A s s i m ,

.),(),()´( dxyxMy

yxNyg

F i n a l m e n t e , i n t e g r e g ’ ( y ) c o m r e l a ç ã o a y e s u b s t i t u a o r e s u l t a d o e m f ( x , y ) . A s o l u ç ã o p a r a ae q u a ç ã o é f ( x , y ) = c .

Page 583: 1-Método Computacional 280309
Page 584: 1-Método Computacional 280309
Page 585: 1-Método Computacional 280309

E q u a ç ã o L in e a r

D e f in iç ã o – E q u a ç ã o L in e a r

U m a e q u a ç ã o d ife re n c ia l d a fo rm a

)()()( 01 xgyxadx

dyxa

é c h a m a d a d e e q u a ç ã o lin e a r .

Page 586: 1-Método Computacional 280309

Resolvendo uma Equação Linear de Primeira Ordem

Onde:

Page 587: 1-Método Computacional 280309
Page 588: 1-Método Computacional 280309

Na engenharia a utilização de equações diferenciais tem como objetivo descrever o comportamento dinâmico de sistemas físicos.

Page 589: 1-Método Computacional 280309

yxdx

dy

Equações Diferenciais OrdináriasSão equações diferenciais que possuem apenas uma variável independente. Exemplos:

y é função de x; x é a única variável independente.

22 yxdt

dy y e x são função de t; t é a única variável independente.

0)1( 22

2

ydt

dyy

dt

yd y é função de t; t é a única variável independente.

Page 590: 1-Método Computacional 280309

02

2

2

2

y

u

x

u

Equações Diferenciais ParciaisQuando a equação diferencial envolve mais de uma variável independente.Exemplo:

u é função de x e y; x e y são variáveis independentes.

Page 591: 1-Método Computacional 280309
Page 592: 1-Método Computacional 280309

Problema de valor inicial (PVI) e Problema de valor de contorno (PVC).

• Quando as condições iniciais estão associadas a um único valor da variável independente, define-se como um problema de valor inicial – (PVI ou problema de Cauchy ).

• Quando as condições iniciais estão associadas mais de um valor da variável independente, define-se como um problema de valor de contorno – (PVC).

• Normalmente, problemas tendo como variável independente o tempo, são problemas de valor inicial.

Page 593: 1-Método Computacional 280309
Page 594: 1-Método Computacional 280309
Page 595: 1-Método Computacional 280309

Danger

Page 596: 1-Método Computacional 280309

Danger

Page 597: 1-Método Computacional 280309

9.1.1. Derivada Numérica

Page 598: 1-Método Computacional 280309

m=tg(θ) = co/ca

Page 599: 1-Método Computacional 280309
Page 600: 1-Método Computacional 280309
Page 601: 1-Método Computacional 280309

Método de Lagrange

Prof. Jason

Page 602: 1-Método Computacional 280309
Page 603: 1-Método Computacional 280309
Page 604: 1-Método Computacional 280309
Page 605: 1-Método Computacional 280309
Page 606: 1-Método Computacional 280309

Erros na derivação Numérica

Prof. Jason

Page 607: 1-Método Computacional 280309

Erros na derivação Numérica

• Um exemplo de método numérico que pode-se aplicar à solução aproximada de um problema de valor inicial é o método de Euler

Page 608: 1-Método Computacional 280309

Método de Euler

Prof. Jason

Page 609: 1-Método Computacional 280309
Page 610: 1-Método Computacional 280309
Page 611: 1-Método Computacional 280309

Derivada

Page 612: 1-Método Computacional 280309
Page 613: 1-Método Computacional 280309
Page 614: 1-Método Computacional 280309

4 - 3,5 = 0,5. Observa-se, assim, que quando o intervalo h é reduzido pela metade, o erroreduz-se pela metade.

Page 615: 1-Método Computacional 280309

Program Euler

Implicit NoneInteger mReal x,y,fx,h,n

Write(*,*)'Digite o valor Inicial de x'Read (*,*)xWrite(*,*)'Digite o valor Inicial de y'Read (*,*)yWrite(*,*)'O valor do Intervalo h'Read (*,*)hWrite(*,*)'O número de passos m'Read (*,*)m

!Interação EulerDo n = 1,mFx=Xy=y+(h*Fx)x=x+hWrite(*,*)'Resposta'Write(*,*)x,yend doEnd Program Euler

1) Dados Iniciais

a) valor Inicial x,y

b) intervalo h e número de passos m

2) Para n = 1, m Faça Fx = x, y=y+(h*Fx), x=x+h

Page 616: 1-Método Computacional 280309
Page 617: 1-Método Computacional 280309
Page 618: 1-Método Computacional 280309
Page 619: 1-Método Computacional 280309
Page 620: 1-Método Computacional 280309

Início

X0=0,y=2,h=0.5,flinha,flinha2

y=y+(x-x0)*flinha+((x-x0)*flinha2)/2

Saída x,y

Fim

N=1,10

x=x+h

Page 621: 1-Método Computacional 280309

Program Taylor1

Implicit None

real x,y,h,FLinha2,FLinhaInteger n

x=0h=0.5y=2

do n = 1,10

FLinha= xFLinha2 = 1

y = y + (h*FLinha) + ((h*h /2) * FLinha2)x = x + h

write(*,*) x,yend doend program Taylor1

Comparando com a solução analítica p(2)=4, o méodo de Taylor foi mais preciso do que o de Euler p(2)=3.5

Page 622: 1-Método Computacional 280309
Page 623: 1-Método Computacional 280309
Page 624: 1-Método Computacional 280309
Page 625: 1-Método Computacional 280309
Page 626: 1-Método Computacional 280309
Page 627: 1-Método Computacional 280309
Page 628: 1-Método Computacional 280309
Page 629: 1-Método Computacional 280309
Page 630: 1-Método Computacional 280309
Page 631: 1-Método Computacional 280309
Page 632: 1-Método Computacional 280309
Page 633: 1-Método Computacional 280309

-2 = Ce^1 + 1 -> C = -3/2.718 -> C = -1.103

Page 634: 1-Método Computacional 280309
Page 635: 1-Método Computacional 280309
Page 636: 1-Método Computacional 280309

program rk2double precision f,x,y,h,a,b,k1,k2integer n,iexternal FWRITE(*,*)'Entre com o valor de h:'READ(*,*)hWRITE(*,*)'Entre com o valor de Xo:'READ(*,*)aWRITE(*,*)'Entre com o valor de Yo:'READ(*,*)yWRITE(*,*)'Entre com o valor de x final:'READ(*,*)bn = (b-a)/hx = ado i=1,nk1 = f( x , y )*hk2 = f( x+h , y+k1 )*hy = y + (k1+k2)/2x = x + hwrite(*,*)'ITERACAO ',iwrite(*,*)'x=',xwrite(*,*)'k1=',k1write(*,*)'k2=',k2write(*,*)'y=',ywrite(*,*)'--------------'enddoend!!!!!!!!!!!!!!!!!!!!!!FUNCTION F(X,Y)IMPLICIT NONEDOUBLE PRECISION F,X,Y! F=(X-Y)/X! F = 0.04*y! F = 2*x! F = (x-y)/(x+y)F = y - x + 1end

Page 637: 1-Método Computacional 280309
Page 638: 1-Método Computacional 280309

Sistemas de Equações Diferenciais

Prof, Jason

Page 639: 1-Método Computacional 280309

Sistemas de Equações Diferenciais

• Uma equação ordinária de ordem superior pode ser reduzido a um sistema de equações diferenciais de primeira ordem.

• A redução é feita a partir da definição de variáveis auxiliares

Page 640: 1-Método Computacional 280309

• Seja a equação diferencial de ordem m com também m condições iniciais:

Page 641: 1-Método Computacional 280309

Este artifício deve sempre ser utilizado, pois só pode-se integrar numericamente equações de primeira ordem.

Page 642: 1-Método Computacional 280309
Page 643: 1-Método Computacional 280309
Page 644: 1-Método Computacional 280309
Page 645: 1-Método Computacional 280309
Page 646: 1-Método Computacional 280309
Page 647: 1-Método Computacional 280309
Page 648: 1-Método Computacional 280309
Page 649: 1-Método Computacional 280309

Erro na Derivação Numérica

Page 650: 1-Método Computacional 280309
Page 651: 1-Método Computacional 280309

Equações Diferenciais Ordinárias de Segunda Ordem

Prof Jason

Page 652: 1-Método Computacional 280309
Page 653: 1-Método Computacional 280309
Page 654: 1-Método Computacional 280309
Page 655: 1-Método Computacional 280309
Page 656: 1-Método Computacional 280309
Page 657: 1-Método Computacional 280309
Page 658: 1-Método Computacional 280309
Page 659: 1-Método Computacional 280309
Page 660: 1-Método Computacional 280309
Page 661: 1-Método Computacional 280309

Caso 3

Page 662: 1-Método Computacional 280309

Algoritmo Velocity-Verlet

Page 663: 1-Método Computacional 280309
Page 664: 1-Método Computacional 280309
Page 665: 1-Método Computacional 280309
Page 666: 1-Método Computacional 280309
Page 667: 1-Método Computacional 280309

Implementação

Page 668: 1-Método Computacional 280309

Aplicação em Dinâmica Molecular

Page 669: 1-Método Computacional 280309
Page 670: 1-Método Computacional 280309

Algoritmo Leap-Frog

Page 671: 1-Método Computacional 280309

1-Introdução Aplicação em Dinâmica Molecular

Page 672: 1-Método Computacional 280309
Page 673: 1-Método Computacional 280309
Page 674: 1-Método Computacional 280309

Algoritmo Velocity-Verlet

Page 675: 1-Método Computacional 280309

Danger

Page 676: 1-Método Computacional 280309

Incrementos Adaptativos (Adaptive Steps)

Page 677: 1-Método Computacional 280309

Incrementos Adaptativos (Adaptive Steps) Às vezes, na integração de uma equação diferencial, há regiões onde os incrementos temporais, Δt , podem ser muito maiores que em outras regiões e podem gerar grandes erros.

Por exemplo, na órbita de um planeta, enquanto ele estiver muito distante do Sol, propaga-se quase em linha reta e com velocidade lentamente variável, mas quando ele está próximo ao Sol sua trajetória e velocidade são rapidamente variáveis e necessita-se Δt muito pequeno para não cometer erros muito grandes.

Page 678: 1-Método Computacional 280309

Digamos que estabelecemos como o erro máximo admissível por passo um valor ε.

Vamos chamar de erro corrente, εc , o erro relativo estimado no passo em execução .

Incrementos Adaptativos (Adaptive Steps)

Page 679: 1-Método Computacional 280309

Incrementos Adaptativos (Adaptive Steps)

n= ordem

Page 680: 1-Método Computacional 280309

Incrementos Adaptativos (Adaptive Steps) Conclusão

Page 681: 1-Método Computacional 280309

10 -Equações Diferenciais a Derivadas Parciais

Prof. Jason

Page 682: 1-Método Computacional 280309

02

2

2

2

y

u

x

u

Equações Diferenciais ParciaisQuando a equação diferencial envolve mais de uma variável independente.Exemplo:

u é função de x e y; x e y são variáveis independentes.

Page 683: 1-Método Computacional 280309

Introdução-Histórico

Page 684: 1-Método Computacional 280309
Page 685: 1-Método Computacional 280309
Page 686: 1-Método Computacional 280309
Page 687: 1-Método Computacional 280309
Page 688: 1-Método Computacional 280309
Page 689: 1-Método Computacional 280309
Page 690: 1-Método Computacional 280309
Page 691: 1-Método Computacional 280309
Page 692: 1-Método Computacional 280309
Page 693: 1-Método Computacional 280309
Page 694: 1-Método Computacional 280309
Page 695: 1-Método Computacional 280309
Page 696: 1-Método Computacional 280309
Page 697: 1-Método Computacional 280309
Page 698: 1-Método Computacional 280309

A Equação da Difusão

Page 699: 1-Método Computacional 280309
Page 700: 1-Método Computacional 280309
Page 701: 1-Método Computacional 280309
Page 702: 1-Método Computacional 280309
Page 703: 1-Método Computacional 280309
Page 704: 1-Método Computacional 280309
Page 705: 1-Método Computacional 280309
Page 706: 1-Método Computacional 280309
Page 707: 1-Método Computacional 280309

Convecção

Prof. Jason

Page 708: 1-Método Computacional 280309
Page 709: 1-Método Computacional 280309
Page 710: 1-Método Computacional 280309

Solução Estacionária

Prof. Jason

Page 711: 1-Método Computacional 280309

Soluções estacionárias e estabilidade para modelos contínuos deuma única espécie.

As soluções estacionárias são dadas por 0 ( ) 0x ou f x= =

Seja xe uma solução estacionária, i.e., f(xe)=0. Como estudar a estabilidadede xe? Novamente olhamos para o comportamento de soluções vizinhas aoponto de equilíbrio: fazemos x0 = xe + x0 e calculamos a trajetória x(t)escrevendo x(t) = xe + x. Se x(t) se aproximar de xe, então xe é estável. Senão xe é instável:

( ) ( ) '( ) '( )e e e ex x f x x f x x f x x f x = = + » + =

Então cuja solução nos já conhecemos: '( )ex x f x =

0 0( ) '( )tx t x e onde f x = =

Se f ‘(xe) > 0 x(t) cresce e x(t) se afasta de xe e o ponto é instávelSe f ‘(xe) < 0 x(t) decresce e x(t) se aproxima de xe e o ponto é estável

Page 712: 1-Método Computacional 280309

Exemplo: (1 )x x x= -

Nesse caso ( ) (1 ) 0f x x x= - = tem duas soluções:

x0 = 0 e x1 = 1. A derivada de f(x) é '( ) (1 2 ) 0f x x= - =

Então f ‘ (0) = i.e., x0 = 0 é instável

Então f ‘ (1) = - i.e., x1 = 0 é estável

Page 713: 1-Método Computacional 280309

Método das Diferenças Finitas-Crank Nicholson - Explícito e

Implícitos

Page 714: 1-Método Computacional 280309

Introdução

Page 715: 1-Método Computacional 280309
Page 716: 1-Método Computacional 280309
Page 717: 1-Método Computacional 280309
Page 718: 1-Método Computacional 280309
Page 719: 1-Método Computacional 280309
Page 720: 1-Método Computacional 280309
Page 721: 1-Método Computacional 280309
Page 722: 1-Método Computacional 280309
Page 723: 1-Método Computacional 280309
Page 724: 1-Método Computacional 280309
Page 725: 1-Método Computacional 280309
Page 726: 1-Método Computacional 280309
Page 727: 1-Método Computacional 280309
Page 728: 1-Método Computacional 280309
Page 729: 1-Método Computacional 280309
Page 730: 1-Método Computacional 280309
Page 731: 1-Método Computacional 280309
Page 732: 1-Método Computacional 280309
Page 733: 1-Método Computacional 280309
Page 734: 1-Método Computacional 280309

•O objectivo é a resolução numérica da equação do calor unidimensional,em regime permanente e para condições fronteira do tipo detemperatura imposta (condições fronteira de Dirichlet).

•Para isso vai ser preparado um pequeno programa de computador, em linguagem FORTRAN, que implementará ométodo dos volumes finitos

Page 735: 1-Método Computacional 280309
Page 736: 1-Método Computacional 280309
Page 737: 1-Método Computacional 280309
Page 738: 1-Método Computacional 280309
Page 739: 1-Método Computacional 280309

PROGRAM EQ1DA!C!C PARA RESOLVER EQ. CONDUÇÃO DO CALOR 1D COM TERMO FONTE!C D*d2(PHI)/dx2 + S=0!C ** MALHA TIPO-A **PARAMETER(NMAX=10000)DIMENSION S(NMAX),PHI(NMAX),AE(NMAX),AW(NMAX),SP(NMAX)OPEN(10,FILE='EQ1DA.DAT')!C LER NUMERO TOTAL DE NÓS DA MALHAPRINT *,' GIVE N'READ(*,*) N!C DADOS DE PARTIDA (INPUT)XTOT=8.PHI1=100.PHIN=100.D=5.SU=50.!C NOTA: MALHA TIPO ADX=XTOT/FLOAT(N-1)NM1=N-1NM2=N-2!C!C CALCULAR OS COEFICIENTES (VC interiores)DO I=2,NM1S(I)=SU*DXAE(I)=D/DXAW(I)=D/DXSP(I)=0.0END DO!C

!C CONDIÇÕES FRONTEIRAPHI(1)=PHI1PHI(N)=PHINS(2)=S(2)+AW(2)*PHI(1)SP(2)=SP(2)+AW(2)AW(2)=0.0S(NM1)=S(NM1)+AE(NM1)*PHI(N)SP(NM1)=SP(NM1)+AE(NM1)AE(NM1)=0.0!C!C PREPARAR COEFICIENTES PARA TDMA (são divididos por AP)DO I=2,NM1AP=AE(I)+AW(I)+SP(I)S(I)=S(I)/APAE(I)=AE(I)/APAW(I)=AW(I)/APEND DO!C RESOLVER OS SITEMA DE EQUAÇÕES TRIDIAGONAISCALL TDMA(PHI,AE,AW,S,2,NM1,N)!C!C ESCREVER OS RESULTADOS NUM FICHEIRO DE SAÍDA (OUTPUT)X=0.Y=0.ERTOT=0.0DO I=1,N!C CÁLCULO DA SOLUÇÃO TEÓRICA E ERRO DE DISCRETIZAÇÃOY=PHI1+(PHIN-PHI1)/XTOT*X-SU/2./D*(X**2-XTOT*X) ERR=ABS(PHI(I)-Y)/YERTOT=ERTOT+ERRWRITE(*,*) X,PHI(I),Y,ERRX=X+DXEND DOPRINT *,' TOTAL ERROR =', ERTOT/FLOAT(NM2)STOPEND!C **** TDMA ****!C SUBROUTINA PARA RESOLVER SISTEMA TRIDIAGONAL:!C PHI(i) = AS(i).PHI(i-1) + AN(i).PHI(i+1) + SU(i)!CSUBROUTINE TDMA(PHI,AN,AS,SU,I1,IE,NC)PARAMETER(NMAX=10000)DIMENSION A(0:NMAX),C(0:NMAX)DIMENSION PHI(NC), AN(NC),AS(NC),SU(NC)IA=I1-1A(IA)=0.0C(IA)=0.0DO 1 I=I1,IEDEN=1./(1.-AS(I)*A(I-1))A(I)=AN(I)*DENC(I)=(AS(I)*C(I-1)+SU(I))*DEN1 CONTINUEDO 2 II=I1,IEI=IE-II+I1PHI(I)=PHI(I+1)*A(I)+C(I)2 CONTINUERETURNEND

Page 740: 1-Método Computacional 280309

Equação de Schrödinger

Prof. Jason

Page 741: 1-Método Computacional 280309
Page 742: 1-Método Computacional 280309
Page 743: 1-Método Computacional 280309

A função de onda determina completamente o estado físico do sistema. Isto significa que,

dada a função de onda de um sistema no instante , não somente todas aspropriedades do sistema naquele instante estão descritas, mas também as propriedadesem qualquer instante subseqüente (tudo isso, naturalmente, em termos do conceito dedescrição completa admitido pela mecânica quântica).

Schrödinger consegue apresentar numa mesma equação componentes de massa e parte ondulatória para a representaçãoda matéria

Page 744: 1-Método Computacional 280309
Page 745: 1-Método Computacional 280309
Page 746: 1-Método Computacional 280309
Page 747: 1-Método Computacional 280309

Método de Relaxação em Duas ou Mais Dimensões Espaciais

Prof. Jason

Page 748: 1-Método Computacional 280309
Page 749: 1-Método Computacional 280309
Page 750: 1-Método Computacional 280309
Page 751: 1-Método Computacional 280309
Page 752: 1-Método Computacional 280309
Page 753: 1-Método Computacional 280309
Page 754: 1-Método Computacional 280309
Page 755: 1-Método Computacional 280309
Page 756: 1-Método Computacional 280309
Page 757: 1-Método Computacional 280309
Page 758: 1-Método Computacional 280309
Page 759: 1-Método Computacional 280309
Page 760: 1-Método Computacional 280309

Métodos de Relaxação- Computação Gráfica

• Vários métodos iterativos foram desenvolvidos que iniciam o vetor B com uma solução inicial e então a refinam até que o erro esteja dentro de uma tolerância pré-definida.

• Radiosidade utiliza métodos de relaxação.

Page 761: 1-Método Computacional 280309

Acumulação• Resolve Ax = b como um sistema

linear MB = E• Solução de uma linha provê a

solução de um único retalho.• Intensidade de cada retalho é

atualizada de acordo com sua posição na matriz.

• Jacobi Bi

(k+1) = Ei – ji Mij Bj(k)

– Radiosidade = Emissão mais outras radiosidades refletidas

• Gauss-SeidelBi = Ei – ji Mij Bj

– Cálculo no local.• Sobre-relaxação

Bi(k+1) = 110% Bj

(k+1) – 10% Bj(k)

– Gauss-Seidel é muito conservativo

nnnnnn

n

n

E

E

E

B

B

B

FF

FF

FF

2

1

2

1

21

22212

11121

1

1

1

Bi

Page 762: 1-Método Computacional 280309

Um Pouco de Teoria

• Seja um sistema linear Kx = b, onde K é uma matriz n x n, x e b são vetores coluna de dimensão n.

• Será gerada uma série de soluções aproximadas x que devem convergir para a solução real.

• x(g) é a aproximação no passo g.

Page 763: 1-Método Computacional 280309

Erro da Aproximação

• e(g) = x – x(g) é o erro.• r(g) = b – K x(g) = K e(g) é o resíduo.• Métodos de relaxação usam o resíduo para refinar

a aproximação e gerar o sucessor x(g+1).

• A estratégia é olhar para um elemento ri(g) do vetor

de resíduo e aplicar uma transformação ao elemento correspondente xi

(g) de forma a que ri(g)

0.

Page 764: 1-Método Computacional 280309

Convergência

• Outros elementos de r podem crescer, mas espera-se que a tendência geral seja na direção de valores menores para todos os elementos do resíduo.

)(

)(

,

)()1(

,

)(,

1

)()(,

)(,

1

)(,

gi

ii

gig

i

ii

giii

n

kik

gi

gkkii

giii

n

ki

gkki

xK

rx

K

xKrxKbxK

bxK

Page 765: 1-Método Computacional 280309

Parada

• Ajustar um elemento até que seu resíduo vá para zero é chamado de relaxamento do elemento.

• Critérios de parada são baseados numa tolerância t:

• max(|r|) < t

• |xi(g) – xi

(g+1)| < t

Page 766: 1-Método Computacional 280309

Sobre-relaxação

• Pode ser usada com qualquer método.

• Ao invés de subtrair apenas a quantidade necessária de cada elemento para levar seu resíduo para zero, subtrai-se “a mais”.

• Esta é uma estratégia agressiva, que antecipa o futuro por um fator i.

Page 767: 1-Método Computacional 280309

Iteração com Sobre-relaxação.

)()1(

)()()1(

)()()1(

)1(

se-usa invés ao ,

gii

gi

gii

gi

gi

gi

gi

gi

rr

xxx

xxx

Page 768: 1-Método Computacional 280309

Interpretação dos Diversos Métodos

• Emissão é a primeira estimativa para radiosidade dos retalhos.

• Resíduo mede a diferença entre a emissão e a radiosidade refletida.

• Duas parcelas: radiosidade emitida (disparada) e não distribuída (ainda).– Resíduo mede quanta radiosidade a mais

deveria estar sendo emitida mas ainda não foi.

Page 769: 1-Método Computacional 280309

Um Exemplo Real

• Refinamento progressivo depois de 1, 2, 24 e 100 passos.• 500 retalhos, 7000 sub-retalhos.• Radiosidade ambiente estimada foi adicionada.

Page 770: 1-Método Computacional 280309

Modelos Globais de Iluminação

• Traçado de raios.– Usa um aspecto particular da interação luz-

objeto: reflexão especular.

• Radiosidade.– Favorece a interação de superfícies difusas em

detrimento da reflexão especular.– Baseado na teoria de transmissão de calor

(Engenharia Mecânica).

Page 771: 1-Método Computacional 280309

Radiosidade Clássica• Todas as superfícies são

opacas.• Todas as superfícies são

refletores difusos perfeitos ( = cte).

• Superfícies são discretizadas em retalhos pequenos (patches).

• Radiosidade constante nos retalhos.

• Irradiância constante nos retalhos.

Page 772: 1-Método Computacional 280309

Conceito• Método de relaxação.

– Trata a iluminação global como um sistema linear.

– Requer BRDF constante (superfícies difusas).

– Resolve equação de iluminação como um problema matricial.

• Processo– Subdivide em retalhos.– Calcula fatores de forma.– Resolve radiosidade.– Exibe retalhos.

Cornell Program of Computer Graphics

Page 773: 1-Método Computacional 280309

Algoritmo de Jacobi

Prof. Jason

Page 774: 1-Método Computacional 280309
Page 775: 1-Método Computacional 280309
Page 776: 1-Método Computacional 280309
Page 777: 1-Método Computacional 280309
Page 778: 1-Método Computacional 280309

program jacobi;uses crt;vara:array[1..3,1..3] of real;b:array[1..3] of real;x:array[1..3] of real;xi:array[1..3] of real;e:real;saux:real;max:integer;i,j,it,a1:integer;

begin

{sistema teste}{coeficientes}a[1,1]:=4;a[1,2]:=0.24;a[1,3]:=-0.08;a[2,1]:=0.09;a[2,2]:=3;a[2,3]:=-0.15;a[3,1]:=0.04;a[3,2]:=-0.08;a[3,3]:=4;

{termos independentes}b[1]:=8;b[2]:=9;b[3]:=20;

{parametros}max:=200; {maximo de iteracoes}e:=0.00001; {tolerancia - criterio de parada}

for it:=1 to max do

begin

writeln;writeln('Iteracao ',it);writeln;

for i:= 1 to 3 do

begin

saux:=0;

for j:= 1 to 3 do if j<>i then saux:=saux+a[i,j]*x[j];

xi[i]:=(1/a[i,i])*(b[i]-saux);

if abs((xi[i]-x[i])/xi[i])<e then

begin

for a1:=1 to 3 do

beginx[a1]:=xi[a1];writeln('x',a1,'=',x[a1]);

end;

halt(0);

end;end;

for a1:=1 to 3 dobeginx[a1]:=xi[a1];writeln('x',a1,'=',x[a1]);end;

end;

end.

Page 779: 1-Método Computacional 280309
Page 780: 1-Método Computacional 280309

Método de Gauss Seidel

Prof. Jason

Page 781: 1-Método Computacional 280309
Page 782: 1-Método Computacional 280309
Page 783: 1-Método Computacional 280309
Page 784: 1-Método Computacional 280309

Lembrando

Page 785: 1-Método Computacional 280309
Page 786: 1-Método Computacional 280309