1-Método Computacional 280309

Post on 03-Jul-2015

350 views 15 download

Transcript of 1-Método Computacional 280309

Métodos Computacionais

Prof. Jason

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

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.

Apresentação

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

• E-mail: Jason-RJ@bol.com.br• Celular: (024) 99025150• Site: www.ProfessorJason.cjb.net

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

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

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

3- Formas de Avaliação

• Nota =

• 100% : Prova (Individual)

4- RECURSOS INSTITUCIONAIS

• Data Show

• Quadro

• Projetor

• Laboratório de Informática

Horário

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

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

Componentes Básicos

• Interface

• Processador

• Unidade de Armazenamento

Ê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.

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

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

• ASCII

• 8 BITS usados dessa forma denomina-se BYTE.

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

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

Impressoras

A Unidade Central de Processamento

(CPU)

386 - 1985 (COMPAQ)

• Mais rápidos que a RAM

• Surge as cache

• 25MHZ

486

• 40 MHZ

• Pipeline

• cache e coprocessador matemático internos

Pentium

• 32 bits

• coprocessador - pipeline

• cache interno de 8 p/ 16 KB

• Arquitetura SuperEscalar

• 100 MHZ

Pentium MMX

• 57 novas instruções - Microcódigo

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

• Cache L1 interno p/ 32 KB

• 233 MHZ

Pentium II

• Cache L2 de 512 KB

• MMX

• Defeitos - Caro

• a partir 333 MHZ - Arquitetura Deschutes

Celeron

• Baixo Custo

• Sem cache L2

• 30 % do desempenho do Pentium II

Pentium III

• SIMD - 70 Novas Instruções

• 800 MHZ

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

• ChipSet Camino de 133 MHZ

Pentium IV

• 3000 MHZ

• SIMD2 - 128 Novas Instruções

• Placa mãe 400 MHZ

• Pipeline 20 Níveis

Memórias

HD

Redes

Novas Tecnologias

Prof. Jason

Novas Tecnologias

• Aparecimento nos últimos anos:

• CAD

• CASE

• POO

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,....

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.

MATHCAD

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

TUTORIAL

• Caminho: Menu Iniciar, MathSoft Apps, MathCad Tutorial

Exercício

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

Hardware: Futuro

• Amadurecimento CISC e RISC (SUN)

• Processamento Paralelo

• Processadores ópticos

• Redes Neurais

• Computador Quântico

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

• Exigências sobre os Programadores

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.

Quantum Bit (QUBIT)

Sistemas opercionais e SUN MICROSYSTEMS

DOS, Windows, Linux, Looking Glass

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

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

POO Vantagens :

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

• windows

• IDE

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.

Programação Orientada a Objetos

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

Programação Orientada a Objetos

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

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.

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.

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.

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

Conclusão

• Exigências sobre os Programadores

• CAD

• CASE

• POO

• Computadores Portáteis ( Vídeo IBM)

5- O PRODUTO

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

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

APLICAÇÕES DO SOFTWARE

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

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

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

protocolos para Internet, etc.

• 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.

• 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.

• 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.

• 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.

• Software para Web

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

• 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.

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

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.

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

Ê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.

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

•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

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.

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

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

Algoritmos

• Definição

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

• Tipos:

• Gráficos (Fluxograma,DFD)

• Linguagem Estruturada - Português Estruturado

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).

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

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.

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

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

•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

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

• 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.

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.

•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

Equipe 2Equipe 3Equipe 1

Tempo

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.

DESVANTAGEM

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

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

Observação

• RAD pode ser desenvolvido por Delphi e VB

• 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.

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)

• É ú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.

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.

• 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

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.

•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.

• 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.

• 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.

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.

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)

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

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.

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).

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

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.

• 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.

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

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

(responsáveis por sub tarefas)

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

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

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

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

POO Vantagens :

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

• windows

• IDE

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.

Programação Orientada a Objetos

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

Programação Orientada a Objetos

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

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.

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.

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.

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

• “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

Aula 2 - Algoritmos (Conceitos)

Prof. Jason

Algoritmos

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

problema)

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

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.

• 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

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

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

2 - LÓGICA de programação

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

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;

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;

Desvio Condicional

Desvio Condicional SimplesDesvio Condicional CompostoDesvio Condicional Encadeado

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;

Desvio Condional Composto

CONDIÇÃO

NSTRUÇÕESEXECUTADAS

QUANDO CONDIÇÃOVERDADEIRA

INSTRUÇÕESEXECUTADAS

QUANDO CONDIÇÃOFALSA

Connect

SIMNÃO

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

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.

• 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:

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

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

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

COMANDOS DE ENTRADA E SAÍDA

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

em uma variável.

– Sintaxe: ler variável

COMANDOS DE ENTRADA E SAÍDA

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

uma variável

– Sintaxe: escrever variável,"texto"

Exemplo:

variaveis

caracter nome

numerico numero

inicio

ler nome

ler numero

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

fim

SE - Expressão condicional

• Sintaxe: - 1º caso:

se <expressão> entao

<bloco-de-comandos1...>

fim_se

// 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

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

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:

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.

SE - Expressão condicional;

Sintaxe: - 2º caso:

se <expressão> entao

<bloco-de-comandos1...>

senao

<bloco-de-comandos2...>

fim_se

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.

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)

// 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

Exercício

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

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

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

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)

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.

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

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

// 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

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

// 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

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.

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

• 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

• 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.

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;

• 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

Fortran

• Engenharia

• Fórmulas Matemáticas

• Métodos Numéricos

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

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.

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

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

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

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)

...

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

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

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.

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

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

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)

Programa Alô Mundo

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

STOP

END

Exercício

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

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

program Ler real a,b,c,s

read (*,*) a,b,c

s=a+b+c

Write (*,*)

end program ler

Aula 2

Exercício

Exercício

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

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

Exercício

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

Erros.

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

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

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

Zero de Funções

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

transcendentes1. (Zero de Funções)

Prof. Jason

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

Exercício

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

• P/ Funções de grau elevado

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

Exemplo

• X -5 -4 -3 -1

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

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

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

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

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)(

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

Como obter o polinômio Interpolador ?

nnx xaxaxaaxP ....)( 2

210

)()(

)()(

)()(

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

nnx xaxaxaaxP ....)( 2

210

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

Ache a função no ponto x=1

Início

Entrada de dadosx

Cálculo da Equação

Saída

FIM

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

xP

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

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

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

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

área do trapézio.

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

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

Exercício

• Calcule a Integral

• Usando 5 subintervalos

dxeI x1

0

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

DECLARAÇÃO DE VARIÁVEIS

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

• Duas classes distintas:

• variáveis simples

• compostas

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

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

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

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

Matrizes

2221

1211

aa

aaA =

ILUMINAÇÃO DE AMBIENTES

TRIDIMENSIONAIS VIRTUAIS COM RAY

TRACINGProf. Jason

www.ProfessorJason.cjb.netJason-rj@bol.com.br

1- Introdução

• Windows ,Delphi, OpenGL,...

2- Ambientes 3D

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

2- Ambientes 3D

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

TRANFORMAÇÕES LINEARES

RotaçãoZ

y

x

vT(v)

100

0cossen

0sencos

T

for x := 0 to 127 do begin

for y := 0 to 127 do begin

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

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

3-Ray Tracing

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 /

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

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)(

UNIDADE MÓVEL

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

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.

OpenGL e Delphi

VETORES e Matrizes

Variáveis Compostas

• Vetor

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

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

Matriz

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

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

Matrizes - Exemplo

Exercício

• Crie um algoritmo que some dois vetores.

• Crie um algoritmo que some duas matrizes.

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

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

Resposta do ex 2

1- Séries de Potências

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

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)(

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

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

2. Propagação de Erros

Prof. Jason

Introdução

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

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.

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

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.

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.

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

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.

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.

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.

Propagação de erros

Condicionamento e Estabilidade

Prof. Jason

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

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.

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.

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

transcendentes1. (Zero de Funções)

Prof. Jason

Exercício

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

• P/ Funções de grau elevado

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

Exemplo

• X -5 -4 -3 -1

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

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

Método da Bisseção

Prof. Jason

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

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

Método de Newton-Raphson

Prof. Jason

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

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.

! 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

Método da Interação Linear

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.

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

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)

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

Regra de Cramer

Prof. Jason

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

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

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

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

Método de Gauss

Prof. Jason

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.

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

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

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.

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

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

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))

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

Cálculo do Resíduo

BXAsíduo

o

BXABXA

Re

:log

0ou

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

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

Fatoração LU

Matiz Triangular (Gauss)

m31

m21

Armazenados do processo de triangulação de U

Métodos Interativos

Prof. Jason

Norma de um Vetor

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.

Algoritmo de Jacobi

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.

Método de Gauss Seidel

Convergência de Métodos Interativos

5. Interpolação

Prof. Jason

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

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)(

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

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

Como obter o polinômio Interpolador ?

nnx xaxaxaaxP ....)( 2

210

)()(

)()(

)()(

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

nnx xaxaxaaxP ....)( 2

210

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

Ache a função no ponto x=1

Início

Entrada de dadosx

Cálculo da Equação

Saída

FIM

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

xP

Exemplo Prático de Interpolação

Prof. Jason

5.2

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

Não cai na prova

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

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

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

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.

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

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.

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.

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.

5.3. Fenômeno de Runge

Prof. Jason

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.

5.4. Spline

Prof. Jason

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.

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)

Danger

Danger

6- Diferenciação Numérica

Prof. Jason

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.

Danger

Danger

Conceitos Básicos de Diferenciação

Derivada Numérica

m=tg(θ) = co/ca

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

Prof. Jason

Erros na derivação Numérica

Prof. Jason

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

Derivada

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

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

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

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

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

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

7- Integração Numérica

Prof. Jason

Fórmulas de Newton-Cotes

Regra dos Trapézios

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

Regra do Trapézio

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

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

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

Exemplo 2

• Calcule a Integral usando Trapézios repetidos

• Usando 5 subintervalos

dxeI x1

0

'h

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

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

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)

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

Erros na Integração Numérica

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

Quadrados

Prof. Jason

Método dos Mínimos Quadrados -Caso Discreto

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

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

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

Método dos Mínimos Quadrados -Teste de

Alinhamento

9. Equações Diferenciais ordinárias

Prof. Jason

9.1. Equações de Primeira Ordem

Prof. Jason

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 )(

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 )()(

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 .

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

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

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

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 .

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

x

N

y

M

0),(),( dyyxNdxyxM

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 .

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 .

Resolvendo uma Equação Linear de Primeira Ordem

Onde:

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

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.

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.

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.

Danger

Danger

9.1.1. Derivada Numérica

m=tg(θ) = co/ca

Método de Lagrange

Prof. Jason

Erros na derivação Numérica

Prof. Jason

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

Método de Euler

Prof. Jason

Derivada

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

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

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

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

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

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

Sistemas de Equações Diferenciais

Prof, Jason

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

• Seja a equação diferencial de ordem m com também m condições iniciais:

Este artifício deve sempre ser utilizado, pois só pode-se integrar numericamente equações de primeira ordem.

Erro na Derivação Numérica

Equações Diferenciais Ordinárias de Segunda Ordem

Prof Jason

Caso 3

Algoritmo Velocity-Verlet

Implementação

Aplicação em Dinâmica Molecular

Algoritmo Leap-Frog

1-Introdução Aplicação em Dinâmica Molecular

Algoritmo Velocity-Verlet

Danger

Incrementos Adaptativos (Adaptive Steps)

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.

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)

Incrementos Adaptativos (Adaptive Steps)

n= ordem

Incrementos Adaptativos (Adaptive Steps) Conclusão

10 -Equações Diferenciais a Derivadas Parciais

Prof. Jason

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.

Introdução-Histórico

A Equação da Difusão

Convecção

Prof. Jason

Solução Estacionária

Prof. Jason

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

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

Método das Diferenças Finitas-Crank Nicholson - Explícito e

Implícitos

Introdução

•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

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

Equação de Schrödinger

Prof. Jason

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

Método de Relaxação em Duas ou Mais Dimensões Espaciais

Prof. Jason

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.

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

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.

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.

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

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

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.

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

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.

Um Exemplo Real

• Refinamento progressivo depois de 1, 2, 24 e 100 passos.• 500 retalhos, 7000 sub-retalhos.• Radiosidade ambiente estimada foi adicionada.

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).

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.

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

Algoritmo de Jacobi

Prof. Jason

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.

Método de Gauss Seidel

Prof. Jason

Lembrando