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: [email protected]• 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
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
Top Related