Buscar

Capitulo 1 - Slides

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Computação Científica - Tópicos Computação Científica
Computação Científica - Tópicos
- Definição
- Modelo genérico
- Modelo matemático
- Tipos de modelos matemáticos
- Modelação matemática
- Definição do problema
- Construção do Modelo matemático
- Determinação da Solução do modelo
- Validação do Modelo e Análise da solução
- Implementação da Solução
- Elaboração de algoritmos
Capítulo 1. Computação Científica 1/38
1. Definição Computação Científica
1. Definição
- A Computação Científica é uma área de estudo que, utilizando computadores, se interessa
- pela construção de modelos matemáticos e
- pelas técnicas para determinar soluções numéricas
na análise e resolução de problemas reais (científicos e da engenharia).
- A Computação Científica consiste, em termos práticos, na aplicação
- da simulação computacional e 
- de outras formas de computação, 
na análise e resolução de problemas reais em várias áreas científicas e tecnológicas.
- As aplicações computacionais desenvolvidas para modelar sistemas reais, requerem
- grandes quantidades de dados iniciais e de parâmetros de entrada,
- uma grande quantidade de cálculos,
fazendo com que a relação entre Computação Científica e Computação Numérica seja muito forte.
- A Computação Numérica define-se como a utilização de computadores na manipulação de números.
Capítulo 1. Computação Científica 2/38
1. Definição Computação Científica
- Em algumas áreas do conhecimento, 
- a experimentação em laboratório é extremamente cara ou até mesmo impossível,
- o que faz com que a Computação Científica tenha um papel de grande importância,
- configurando uma terceira vertente da ciência (complemento à experimentação/observação e à teoria).
- Considere-se o seguinte exemplo: 
- tendo em conta a grande aproximação da antena do telemóvel com a cabeça humana, essencialmente
aquando da realização de chamadas, os utilizadores são expostos a campos eletromagnéticos de níveis
consideráveis em períodos de tempo cada vez maiores.
- Devido à impossibilidade técnica e ética de efetuar medições dos níveis destes campos em seres humanos
ou animais, as simulações numéricas são de crucial importância nestes estudos.
- Com a Computação Científica é possível identificar as áreas e os tecidos mais afetados (normalmente são
aqueles mais próximos da antena) e os pontos de concentração de ondas eletromagnéticas.
- A construção de Modelos Matemáticos é possivelmente a vertente da Computação Científica
- em que os investigadores têm ocupado mais tempo no seu estudo,
- há um aumento da quantidade de modelos para resolver problemas (cada vez mais complexos),
- o desenvolvimento de modelos já existentes.
Capítulo 1. Computação Científica 3/38
2. Modelo genérico Computação Científica
2. Modelo genérico
- De uma maneira geral, um modelo é uma estrutura (abstrata ou física) construída para exibir funções e
características (consideradas) fundamentais de um dado sistema “real”.
- Segundo diferentes perspetivas, a mesma “realidade” dá origem a diferentes modelos.
- É importante que o comportamento do modelo
- seja fiel à realidade (ou, melhor, à simplificação da realidade que se idealizou),
- seja de fácil manipulação!
- Os modelos permitem 
- a experimentação sem interferência com a realidade,
- explicitar relações que não eram claras até ao momento da sua construção e análise.
- O termo "modelo" é habitualmente usado por uma estrutura construída propositadamente, para expor
aspetos e características de alguns objetos entre si.
- É suposto que um modelo 
- seja uma representação suficientemente precisa das características essenciais da situação a analisar,
- de modo que as conclusões (soluções) obtidas a partir dele sejam também válidas para o problema real.
Capítulo 1. Computação Científica 4/38
2. Modelo genérico Computação Científica
- O modelo é um esquema simplificado para a interpretação da realidade
- a complexidade do mundo real  a necessidade de formular modelos simplificadores;
- a mera acumulação de observações não fornece explicação satisfatória do fenómeno 
 necessidade de sistematizar e racionalizar os factos conhecidos:
 - selecionando os aspetos mais importantes e
 - desprezando os que considera irrelevantes.
- De uma maneira geral, pode-se considerar que existem três tipos de modelos:
- modelos icónicos
- são representações reduzidas de estados, objetos ou acontecimentos;
- representam o fenómeno real apenas com uma transformação de escala;
- por exemplo, os mapas.
- modelos analógicos,
- empregam uma propriedade para representar outra;
 - por exemplo, utilizar gráficos a cores e com legendas.
- modelos simbólicos
- as propriedades do fenómeno real são expressas simbolicamente;
 - por exemplo, os modelos matemáticos.
Capítulo 1. Computação Científica 5/38
3. Modelo matemático Computação Científica
3. Modelo matemático
- Uma das tarefas mais importantes dos Matemáticos é:
- analisar situações da vida real e
- identificar modelos matemáticos que permitam a sua interpretação.
- Existem, na literatura, muitas definições de modelo matemático.
- Edwards e Hamsom (1990): "um modelo matemático é o produto da transferência de um conjunto de
elementos matemáticos (como sejam, funções ou equações), com vista à obtenção de uma
representação matemática de uma parcela do mundo real".
- Swetz e Hartzler (1991): "modelo matemático de um objeto ou de um fenómeno real é um conjunto de
regras ou leis, de natureza matemática, que representam adequadamente o objeto ou o fenómeno na
mente de um observador".
Capítulo 1. Computação Científica 6/38
3. Modelo matemático Computação Científica
- Os modelos matemáticos 
- São representações idealizadas, mas expressas em termos de símbolos e expressões matemáticas.
- Consistem num sistema de equações e de expressões matemáticas relacionadas, que descrevem os aspetos
essenciais do problema.
- Podem ter diversas formas como uma única equação, um sistema de equações, um sistema de inequações
ou, para casos mais complexos, um conjunto de equações diferenciais.
- O modo como a teoria e as aplicações da Matemática se relacionam designa-se por:
- matematização ou
- modelação matemática. 
- Isto significa, para Ian Stwart (matemático inglês), que "Qualquer descrição matemática do mundo real é
um modelo. Manipulando o modelo esperamos compreender algo da realidade. E já não perguntamos se
o modelo é verdadeiro, perguntamos unicamente se as suas implicações podem ser verificadas
experimentalmente".
Capítulo 1. Computação Científica 7/38
4. Tipos de modelos matemáticos Computação Científica
4. Tipos de modelos matemáticos
- Os modelos matemáticos podem ser, pela sua natureza, de dois tipos: 
- modelos prescritivos, e 
- modelos descritivos.
- Os modelos matemáticos prescritivos têm como característica principal, o facto de o resultado de uma
operação ser prescrita para solucionar um problema do sistema real. 
- Os modelos prescritivos 
- baseiam-se na representação dos objetivos e das restrições de um processo para o qual se deseja descobrir
soluções ótimas; 
- ou seja, o modelo é elaborado segundo uma técnica que permite encontrar a melhor solução, ou política
de ação, para os condicionamentos representados.
- Exemplos de modelos prescritivos:
- modelos de otimização;
- modelos que usam métodos numéricos.
Capítulo 1. Computação Científica 8/38
4. Tipos de modelos matemáticos Computação Científica
- Os modelos que usam métodos numéricos 
- são expressos apenas por uma equação matemática;
- a sua resolução consiste em determinar as soluções que anulam aquela equação (ou seja, os seus zeros).
- Os modelos de otimização podem ser resolvidos usando dois tipos diferentes de métodos:
- exatos, e
- aproximados.
- Nos métodos exatos, a solução obtida
- é a melhor, dentre todas as possíveis, dados os condicionamentos do modelo;
- otimiza (maximiza ou minimiza) uma função de mérito (por ex., o custototal de produção); e 
- respeita (não viola), em simultâneo, todas as restrições do problema (por ex:, satisfazer a procura).
- Pode ser extremamente caro, em termos computacionais, resolver um problema com métodos exatos. 
- Neste caso, pode decidir-se por resolver o problema de forma aproximada (heuristicamente).
Capítulo 1. Computação Científica 9/38
4. Tipos de modelos matemáticos Computação Científica
- Resolver o problema usando um método aproximado (heurístico) 
- significa que não se pode garantir que se obtenha a solução ótima em todos cenários analisados;
- mas pode-se garantir a obtenção de uma solução de “boa qualidade” com baixo custo computacional. 
- Uma abordagem heurística tenta utilizar um método racional para encontrar uma boa (próxima do
ótimo) solução. 
- Geralmente a heurística apresenta uma maneira mais rápida e fácil de resolver um problema, em
relação ao método matemático prescritivo “puro”. 
- Exemplos de métodos heurísticos são 
- Algoritmos Evolutivos (Algoritmos Genéticos, Pesquisa Tabu, ...), 
- Redes Neuronais e 
- Busca Local. 
- Mas isto não significa que se deve resolver todos os problemas de grande dimensão e caros, em termos
computacionais, usando métodos aproximados.
Capítulo 1. Computação Científica 10/38
4. Tipos de modelos matemáticos Computação Científica
- Por exemplo: 
- Suponha-se que existam 3 trabalhos para serem realizados e 3 máquinas disponíveis para os realizar. 
- O custo de cada máquina para cada trabalho está na seguinte tabela:
Máquina 1 Máquina 2 Máquina 3
Trabalho 1 10 25 11
Trabalho 2 13 5 6
Trabalho 3 8 6 25
- Heurística 1: Alocação do menor custo dos trabalhos. Qual o custo total?
- Heurística 2: Alocação do menor custo das máquinas. Qual o custo total?
- Usando a Heurística 1 e afetando por ordem os Trabalhos:
custo total é 40 (10 + 5 + 25), 
pares de afetação: (Trabalho 1, Máquina 1), (Trabalho 2, Máquina 2) e (Trabalho 3, Máquina 3).
- Usando a Heurística 2 e afetando por ordem as Máquinas: 
o custo total é 24 (8 + 5 + 11), 
pares de afetação: (Máquina 1, Trabalho 3), (Máquina 2, Trabalho 2) e (Máquina 3, Trabalho 1).
- Solução ótima: (T1, M1), (T2, M3) e (T3, M2) é um pouco melhor (22) que a solução da heurística 2 (24).
Capítulo 1. Computação Científica 11/38
4. Tipos de modelos matemáticos Computação Científica
- Os modelos matemáticos descritivos 
- são utilizados para acompanhar o comportamento de um sistema. 
- As suas conclusões são obtidas através da perceção do modelador. 
- Os modelos deste tipo mais usuais são os modelos de simulação.
- Os modelos descritivos são utilizados
- na representação de sistemas reais (ou propostos) e 
- na experimentação de diferentes cenários e políticas de ação nos mesmos. 
- As grandes motivações para o uso destas técnicas são
- a flexibilidade na representação de modelos complexos e 
- a facilidade de aplicação, 
o que possibilita prever o comportamento do sistema modelado no horizonte de planeamento escolhido. 
- Os resultados dos testes apresentam uma visão futura do sistema, auxiliando no processo de tomada de
decisões no momento. 
Capítulo 1. Computação Científica 12/38
4. Tipos de modelos matemáticos Computação Científica
- Ao contrário dos métodos prescritivos, os modelos descritivos são utilizados para comparar políticas de
ação já escolhidas pelo decisor, não esperando que o modelo indique a melhor solução possível. 
- Por exemplo, supor que se pretende testar duas políticas de filas de espera numa Agência Bancária:
Política 1 - cada caixa tem a sua própria fila; 
Política 2 - uma fila única para todas as caixas. 
Objetivo: Simular as duas políticas para verificar qual delas é a melhor (segundo certo objetivo).
Capítulo 1. Computação Científica 13/38
5. Modelação matemática Computação Científica
5. Modelação matemática
- O processo de resolução de um problema 
- pode ser visto como uma sequência de etapas que devem ser realizadas e melhoradas, 
- até que o modelo matemático construído para representar o problema forneça resultados satisfatórios. 
- A construção de um bom modelo matemático exige 
- alto nível de abstração e 
- de conhecimentos académicos (teoria) e/ou empíricos (prática) sobre o problema em análise.
- Notar que,
- não é possível o controlo sobre a maioria dos sistemas reais (complexos), 
- mas é possível controlar a complexidade dos modelos matemáticos que se constroem.
- Os sistemas reais complexos 
- podem ser aproximados por modelos matemáticos simples, 
- que usam equações matemáticas que podem ser resolvidas analiticamente (obtendo soluções exatas).
- No entanto, estes modelos simples oferecem, provavelmente, 
- uma descrição muito distante do comportamento dos sistemas reais. 
Capítulo 1. Computação Científica 14/38
5. Modelação matemática Computação Científica
- Uma descrição mais precisa do sistema real pode ser conseguida 
- com a introdução de mais características do sistema no modelo matemático, 
- o que implica a utilização de equações matemáticas mais complexas e mais difíceis de resolver. 
- Para estes casos, 
- podem não existir soluções analíticas (exatas) para o modelo;
- havendo necessidade de se recorrer à determinação de soluções “aproximadas”, obtidas através de
 - métodos numéricos ou 
 - métodos heurísticos.
- Existem, na literatura, vários diagramas para descrever o processo de resolução de um problema
(modelação matemática). 
- Assim, pode-se considerar que este processo é composto por cinco etapas (ver diagrama em baixo):
1ª) Definição (Formulação) do Problema,
2ª) Construção do Modelo (Matemático),
3ª) Determinação da Solução (do Modelo),
4ª) Validação do Modelo e Análise da Solução,
5ª) Implementação da Solução.
Capítulo 1. Computação Científica 15/38
5. Modelação matemática Computação Científica
Capítulo 1. Computação Científica 16/38
5. Modelação matemática Computação Científica
Capítulo 1. Computação Científica 17/38
5.1. Modelação matemática - Definição do Problema Computação Científica
5.1. Modelação matemática - Definição do Problema
- Elabora-se a definição (formulação) matemática do problema real a ser resolvido. 
- Normalmente, 
- começa-se com um diagnóstico da situação e 
- termina-se com uma descrição formal do problema. 
- Uma definição cuidadosa do problema é crucial, 
- pois caso contrário pode-se estar, mais tarde, a resolver o problema errado;
- ou seja, deve-se evitar extrair a resposta certa do problema errado!
- Envolve a "Perceção do Problema" e a "Recolha de Dados".
- Deve-se identificar as entidades associadas ao problema, que são as seguintes: 
- os dados (o que é conhecido), 
- o objetivo (que é desconhecido e pretende-se determinar) e 
- as restrições (as condições do problema apresentadas).
Capítulo 1. Computação Científica 18/38
5.2. Modelação matemática - Construção do Modelo Matemático Computação Científica
5.2. Modelação matemática - Construção do Modelo Matemático
- Consiste na transformação do problema real num problema matemático através de uma formulação
matemática, a qual deve ser tratável em termos computacionais. 
- Deve-se começar por 
- tentar selecionar um modelo, entre os vários já conhecidos e que possam ser aplicados ao problema
(é frequente ser possível aplicar diferentes modelos ao mesmo problema real).
- Geralmente o modelo matemático possui mais soluções que o problema real.
- Também deve haver uma grande comunicação com a fase da “Recolha de Dados”, pois o modelo pode
necessitar de algo mais do que foi feito na etapa anterior, 
- quer em termos dos dados recolhidos 
- quer na forma como são apresentados.
- Nesta etapa deve-se reproduzir as relações entre os componentes do problema (objetivos, variáveis de
decisão, parâmetros, restrições, ...).
Capítulo 1. Computação Científica 19/38
5.3. Modelação matemática - Determinação da Solução do Modelo Computação Científica
5.3. Modelação matemática - Determinação da Solução do Modelo- Faz-se a escolha do método numérico mais apropriado para resolver o modelo matemático, obtido na
construção do modelo matemático.
- Na escolha do método mais eficiente deve-se ter em conta os seguintes aspetos:
- precisão desejada para os resultados;
- capacidade do método em conduzir aos resultados desejados (velocidade de convergência);
- esforço computacional despendido (tempo de processamento e economia de memória).
- Depois de feita a escolha do método, 
- este é descrito através de um algoritmo, 
- o qual é posteriormente implementado num computador através de uma linguagem de programação;
- por fim, a execução daquele programa tem em vista a obtenção dos resultados numéricos (soluções). 
- Esta etapa pode, então, ser subdividida nas 3 fases seguintes (depois de escolhido o método):
- elaboração do algoritmo,
- implementação do algoritmo (codificação do programa),
- processamento (execução) do programa.
Capítulo 1. Computação Científica 20/38
5.4. Modelação matemática - Validação do Modelo e Análise da Solução Computação Científica
5.4. Modelação matemática - Validação do Modelo e Análise da Solução
- Verifica-se 
- a consistência da solução obtida para o modelo (validação do modelo) e 
- a sua adequação ao problema real (análise da solução).
- Se a solução não se mostrar satisfatória (modelo não válido) deve-se 
- construir um novo modelo matemático, através de uma nova formulação matemática, e 
- determinar uma nova solução numérica.
- Alguns modelos matemáticos podem 
- produzir várias soluções (e não apenas uma) e 
- algumas delas (ou todas) não terem sentido físico ou químico 
- por exemplo: tempo negativo, concentração complexa, etc.
- Um dos objetivos desta etapa é justamente discernir qual a solução válida para o problema real dentre
as várias fornecidas pelo modelo matemático (se existirem algumas). 
Capítulo 1. Computação Científica 21/38
5.5. Modelação matemática - Implementação da Solução Computação Científica
5.5. Modelação matemática - Implementação da Solução
- Nesta etapa deve-se ter em atenção os seguintes aspetos:
- garantir que, do “papel” para o sistema real, não se desvirtua a solução;
- ter abertura para readaptações (modelo e/ou solução) causadas pelas dificuldades de implementação;
- verificar a existência de problemas:
- técnicos,
- associados ao comportamento individual dos elementos da organização,
- relacionados com o ambiente organizacional;
- dar importância aos aspetos comportamentais;
- verificar se a “realidade” ainda é a mesma do início do estudo.
Capítulo 1. Computação Científica 22/38
5.6. Modelação matemática - Exemplo Computação Científica
5.6. Modelação matemática - Exemplo
- Definição do Problema
- Um fabricante de plásticos produz 2 tipos de plástico: 
- Especial e 
- Normal.
- Cada tonelada de plástico Especial exige 
- 2 horas na máquina A e 
- 5 horas na máquina B; 
- Cada tonelada de plástico Normal exige 
- 2 horas na máquina A e 
- 3 horas na máquina B.
- Como 
- a máquina A está disponível 8 horas por dia e 
- a máquina B está disponível 15 horas por dia, 
quantas toneladas de cada tipo de plástico devem ser produzidas diariamente de maneira que as duas
máquinas se mantenham totalmente ocupadas?
Capítulo 1. Computação Científica 23/38
5.6. Modelação matemática - Exemplo Computação Científica
- Construção do Modelo Matemático
plástico Especial = variável X
plástico Normal = variável Y}  {
2X + 2Y = 8 (Máquina A)
5X + 3Y = 15 (MáquinaB)
em que,
- X corresponde à quantidade (em toneladas) de plástico Especial a produzir, e
- Y corresponde à quantidade (em toneladas) de plástico Normal a produzir.
- Determinação da Solução do Modelo
- O processo consiste na resolução de um sistema de duas equações com duas incógnitas, usando o método
de substituição de variáveis.
{2X + 2Y = 85X + 3Y = 15  {
X = 4 −Y
20 −5Y + 3Y = 15
 {X = 4 −YY = 5/2  {
X = 3/2 = 1.5
Y = 5/2 = 2.5
- Validação do Modelo e Análise da Solução
- Devem ser produzidas: 
1,5 toneladas de plástico Especial (variável X) e 
2,5 toneladas de plástico Normal (variável Y).
- Implementação da Solução:
- Indicar a produção dos 2 tipos de plásticos nas fábricas
Capítulo 1. Computação Científica 24/38
6. Elaboração de algoritmos Computação Científica
6. Elaboração de algoritmos
- Uma das fases mais importantes na resolução de um problema é a elaboração de um algoritmo que
traduza o método associado ao modelo matemático construído.
- Selecionado o método associado ao modelo matemático construído (definido através de expressões
aritméticas e lógicas), o passo seguinte é realizar uma descrição do método através de um algoritmo. 
- A descrição do algoritmo, através de uma notação algorítmica, melhora o seu entendimento, pois
- apenas os aspetos do raciocínio matemático são realçados, 
- não é necessário levar em consideração os detalhes de implementação das linguagens de programação.
Capítulo 1. Computação Científica 25/38
6.1. Elaboração de algoritmos - Estrutura do algoritmo Computação Científica
6.1. Elaboração de algoritmos - Estrutura do algoritmo
- Um algoritmo 
deve iniciar-se com
Algoritmo <nome-do-algoritmo>
e terminar com
fim_algoritmo
- Para descrever a finalidade do algoritmo, deve ser utilizado
{ Objetivo: <objetivo-do-algoritmo> }
- Os dados necessários para a execução de um algoritmo são requisitados pelo comando
parâmetros de entrada: <lista-de-variáveis>
onde <lista-de-variáveis> são os nomes das variáveis contendo os valores fornecidos. 
- Não é necessário descrever exatamente como os valores são fornecidas ao algoritmo.
- Os valores calculados pelo algoritmo são disponibilizados pelo comando
parâmetros de saída: <lista-de-variáveis>
podendo a <lista-de-variáveis> ser ampliada ou reduzida pelo programador.
Capítulo 1. Computação Científica 26/38
6.2. Elaboração de algoritmos - Variáveis e comentários Computação Científica
6.2. Elaboração de algoritmos - Variáveis e comentários
- Uma variável corresponde a uma posição de memória do computador onde está, ou poderá estar,
armazenado um determinado valor. 
- As variáveis são representadas por identificadores, podendo os elementos de vetores e matrizes serem
referenciados por subscritos ou índices (por exemplo, vi ou v(i) e mij ou m(i,j)).
- Um comentário é 
- um texto inserido em qualquer parte o algoritmo para aumentar a sua clareza.;
- deve ser delimitado por chavetas ({ <texto> });
- por exemplo, { cálculo da raiz }.
Capítulo 1. Computação Científica 27/38
6.3. Elaboração de algoritmos - Expressões e comando de atribuição Computação Científica
6.3. Elaboração de algoritmos - Expressões e comando de atribuição
- Existem três tipos de expressões, dependendo dos tipos dos operadores e das variáveis envolvidas:
- aritméticas, 
- lógicas e 
- literais.
- O símbolo  é usado para atribuir o resultado de uma expressão a uma variável, 
<variável>  <expressão>
- Por exemplo, 
velocidade  deslocamento/tempo
mensagem  “matriz singular”
- Na elaboração dos algoritmos, podem ser usadas
- operadores aritméticos, relacionais e lógicos
- funções matemáticas predefinidas: trigonométricas e numéricas.
Capítulo 1. Computação Científica 28/38
6.4. Elaboração de algoritmos - Comandos de entrada e saída Computação Científica
6.4. Elaboração de algoritmos - Comandos de entrada e saída
- O comando 
leia: <lista-de-variáveis>
indica que a <lista-de-variáveis> está disponível para leitura nalgum dispositivo externo. 
- Por sua vez, o comando
escreva: <lista-de-variáveis>
deve ser utilizado para indicar onde certos valores de interesse 
- estão disponíveis no programa e 
- devem ser escritos nalgum dispositivo externo.
Capítulo 1. Computação Científica 29/38
6.5. Elaboração de algoritmos - Estruturas condicionais Computação Científica
6.5. Elaboração de algoritmos - Estruturas condicionais
- Uma estrutura condicional torna possível a escolha dos comandos a serem executados quandocerta
condição for satisfeita ou não. 
- Podem ser simples ou compostas.
- Estrutura condicional simples
se <condição> então
<comandos>
fim_se
- Estrutura condicional composta
se <condição> então
<comandos_1>
senão
<comandos_2>
fim_se
Capítulo 1. Computação Científica 30/38
6.6. Elaboração de algoritmos - Estruturas de repetição Computação Científica
6.6. Elaboração de algoritmos - Estruturas de repetição
- Número indefinido de repetições
repita
<comandos_1>
se <condição> então
interrompa
fim_se
<comandos_2>
fim_repita
<comandos_3>
- Número definido de repetições
para <controle>  <valor-inicial> até <valor-final> passo <delta> faça
<comandos>
fim_para
Capítulo 1. Computação Científica 31/38
6.7. Elaboração de algoritmos - Falha no algoritmo Computação Científica
6.7. Elaboração de algoritmos - Falha no algoritmo
- Para indicar que haverá uma falha evidente na execução do algoritmo, usar o comando
abandone
Capítulo 1. Computação Científica 32/38
6.8. Elaboração de algoritmos - Exemplos de algoritmos Computação Científica
6.8. Elaboração de algoritmos - Exemplos de algoritmos
- Problema 1: 
Dado um vetor x com n componentes (elementos), elaborar um algoritmo para determinar 
- a média aritmética x̄ e 
- o desvio padrão s dos seus elementos, 
sabendo que
x̄ =
1
n
∑
i=1
n
xi, 
e
s = √ 1n −1(∑i=1n xi2 − 1n (∑i=1n xi)
2
).
Capítulo 1. Computação Científica 33/38
6.8. Elaboração de algoritmos - Exemplos de algoritmos Computação Científica
- Algoritmo:
Algoritmo Média_desvio
{ Objetivos: Calcular média aritmética e desvio padrão }
parâmetros de entrada: n, x { tamanho e elementos do vetor }
parâmetros de saída: Média, DesvioPadrão
Soma  0
Soma2  0
para i  1 até n faça
Soma  Soma + x(i)
Soma2  Soma2 + x(i)2
fim_para
Média  Soma / n
DesvioPadrão  raiz2 ((Soma2 – (Soma
2 / n)) / (n-1))
escreva: Média, DesvioPadrão
fim_algoritmo
Capítulo 1. Computação Científica 34/38
Elaboração de algoritmos - Complexidade computacional Computação Científica
Elaboração de algoritmos - Complexidade computacional
- É usual definir-se uma função de complexidade para medir o custo de execução de um algoritmo. 
- Esta função tanto pode ser uma medida do
- tempo necessário para executar o algoritmo que resolve um problema de tamanho n,
- espaço de memória requerido para esta execução.
A complexidade computacional de um algoritmo 
- refere-se à estimativa do esforço computacional despendido para resolver o problema, 
- é medido pelo número de operações aritméticas e lógicas efetuadas para resolver um sistema linear de
ordem n.
- Os problemas têm complexidade computacional e podem-se enquadrar em dois grupos:
- o composto pelos algoritmos polinomiais, sendo a função de complexidade da forma:
O(cn pn + cn-1 pn-1 + ... + c1 p1 + c0)
- o formado pelos algoritmos exponenciais, sendo a função de complexidade da forma:
O(cn), c > 1.
- Exemplo: 
Capítulo 1. Computação Científica 35/38
Elaboração de algoritmos - Complexidade computacional Computação Científica
- Considere-se o polinómio de Lagrange de grau n definido da seguinte forma:
Ln(x ) = ∑
i=0
n
yi ∏
j=0
j≠i
n x−x j
xi−xj
- Expandindo aquela expressão, resulta a Expressão 1:
Ln(x ) = y0 ×
x −x1
x0 −x1
×
x −x2
x0 −x2
× ... ×
x −xn
x0 −xn
 +
 + y1 ×
x −x0
x1 −x0
×
x −x2
x1 −x2
× ... ×
x −xn
x1 −xn
 +
+ . . . +
 + yn ×
x −x0
xn −x0
×
x −x1
xn −x1
× ... ×
x −xn−1
xn −xn−1
Capítulo 1. Computação Científica 36/38
Elaboração de algoritmos - Complexidade computacional Computação Científica
- Considerando que o número de pontos m usados na interpolação é igual a n+1, onde n é o grau do
polinómio, então a complexidade computacional do algoritmo é:
Adições: ∑
i=1
m
2(m −1) + 1 = 2(m2 −2m + m) = 2(n + 1)2 −(n + 1) = 2n2 + 3n + 1
Multiplicações: ∑
i=1
m
(m −1) = m2 −m = (n + 1)2 −(n + 1) = n2 + n
Divisões: ∑
i=1
m
(m −1) = (m2 −m) = (n + 1)2 −(n + 1) = n2 + n
Estes resultados são resumidos na tabela seguinte:
Operações Complexidade
Adições 2n2 + 3n + 1
Multiplicações n2 + n
Divisões n2 + n
Capítulo 1. Computação Científica 37/38
Elaboração de algoritmos - Complexidade computacional Computação Científica
- O polinómio de Lagrange também pode ser expandido de modo a resultar a Expressão 2:
Ln(x ) = y0 ×
(x −x1) × (x −x2) × ... × (x −xn)
(x0 −x1) × (x0 −x2) × ... ×(x0 −xn)
 +
 + y1 ×
(x −x0) × (x −x2) × ... × (x −xn)
(x1 −x0) × (x1 −x2) × ... × (x1 −xn)
 +
+ . . . +
 + yn ×
(x −x0)× (x −x1) × ... ×(x −xn−1)
(xn −x0) × (xn −x1) × ... × (xn −xn−1)
- Analisando a complexidade computacional do algoritmo desta expressão, verifica-se que
- o número de adições é o mesmo (2n2 + 3n + 1),
- o de multiplicações é da mesma ordem (n2),
- o número de divisões utilizadas na Expressão 2 é de uma ordem grandeza menor (n).
- O polinómio de Lagrange serve para exemplificar que
- uma mesma notação matemática pode resultar em algoritmos de diferentes complexidades. 
- Isto deve estar presente ao elaborar-se um algoritmo.
Capítulo 1. Computação Científica 38/38
	Computação Científica - Tópicos
	- Definição
	- Modelo genérico
	- Modelo matemático
	- Tipos de modelos matemáticos
	- Modelação matemática
	- Definição do problema
	- Construção do Modelo matemático
	- Determinação da Solução do modelo
	- Validação do Modelo e Análise da solução
	- Implementação da Solução
	- Elaboração de algoritmos
	1. Definição
	- A Computação Científica é uma área de estudo que, utilizando computadores, se interessa
	- pela construção de modelos matemáticos e
	- pelas técnicas para determinar soluções numéricas
	na análise e resolução de problemas reais (científicos e da engenharia).
	- A Computação Científica consiste, em termos práticos, na aplicação
	- da simulação computacional e
	- de outras formas de computação,
	na análise e resolução de problemas reais em várias áreas científicas e tecnológicas.
	- As aplicações computacionais desenvolvidas para modelar sistemas reais, requerem
	- grandes quantidades de dados iniciais e de parâmetros de entrada,
	- uma grande quantidade de cálculos,
	fazendo com que a relação entre Computação Científica e Computação Numérica seja muito forte.
	- A Computação Numérica define-se como a utilização de computadores na manipulação de números.
	- Em algumas áreas do conhecimento,
	- a experimentação em laboratório é extremamente cara ou até mesmo impossível,
	- o que faz com que a Computação Científica tenha um papel de grande importância,
	- configurando uma terceira vertente da ciência (complemento à experimentação/observação e à teoria).
	- Considere-se o seguinte exemplo:
	- tendo em conta a grande aproximação da antena do telemóvel com a cabeça humana, essencialmente aquando da realização de chamadas, os utilizadores são expostos a campos eletromagnéticos de níveis consideráveis em períodos de tempo cada vez maiores.
	- Devido à impossibilidade técnica e ética de efetuar medições dos níveis destes campos em seres humanos ou animais, as simulações numéricas são de crucial importância nestes estudos.
	- Com a Computação Científica é possível identificar as áreas e os tecidos mais afetados (normalmente são aqueles mais próximos da antena) e os pontos de concentração de ondas eletromagnéticas.
	- A construção de Modelos Matemáticos é possivelmente a vertente da Computação Científica
	- em que os investigadores têm ocupado mais tempo no seu estudo,
	- há um aumento da quantidade de modelos para resolver problemas (cada vez mais complexos),
	- o desenvolvimento de modelos já existentes.
	2. Modelo genérico
	- De uma maneira geral, um modelo é uma estrutura (abstrata ou física) construída para exibir funções e características (consideradas) fundamentais de um dado sistema “real”.
	- Segundo diferentes perspetivas, a mesma “realidade” dá origem a diferentes modelos.
	- É importante que o comportamento do modelo
	- seja fiel à realidade (ou, melhor, à simplificação da realidade que se idealizou),
	- seja de fácil manipulação!- Os modelos permitem
	- a experimentação sem interferência com a realidade,
	- explicitar relações que não eram claras até ao momento da sua construção e análise.
	- O termo "modelo" é habitualmente usado por uma estrutura construída propositadamente, para expor aspetos e características de alguns objetos entre si.
	- É suposto que um modelo
	- seja uma representação suficientemente precisa das características essenciais da situação a analisar,
	- de modo que as conclusões (soluções) obtidas a partir dele sejam também válidas para o problema real.
	- O modelo é um esquema simplificado para a interpretação da realidade
	- a complexidade do mundo real  a necessidade de formular modelos simplificadores;
	- a mera acumulação de observações não fornece explicação satisfatória do fenómeno 
	 necessidade de sistematizar e racionalizar os factos conhecidos:
	- selecionando os aspetos mais importantes e
	- desprezando os que considera irrelevantes.
	- De uma maneira geral, pode-se considerar que existem três tipos de modelos:
	- modelos icónicos
	- são representações reduzidas de estados, objetos ou acontecimentos;
	- representam o fenómeno real apenas com uma transformação de escala;
	- por exemplo, os mapas.
	- modelos analógicos,
	- empregam uma propriedade para representar outra;
	- por exemplo, utilizar gráficos a cores e com legendas.
	- modelos simbólicos
	- as propriedades do fenómeno real são expressas simbolicamente;
	- por exemplo, os modelos matemáticos.
	3. Modelo matemático
	- Uma das tarefas mais importantes dos Matemáticos é:
	- analisar situações da vida real e
	- identificar modelos matemáticos que permitam a sua interpretação.
	- Existem, na literatura, muitas definições de modelo matemático.
	- Edwards e Hamsom (1990): "um modelo matemático é o produto da transferência de um conjunto de elementos matemáticos (como sejam, funções ou equações), com vista à obtenção de uma representação matemática de uma parcela do mundo real".
	- Swetz e Hartzler (1991): "modelo matemático de um objeto ou de um fenómeno real é um conjunto de regras ou leis, de natureza matemática, que representam adequadamente o objeto ou o fenómeno na mente de um observador".
	- Os modelos matemáticos
	- São representações idealizadas, mas expressas em termos de símbolos e expressões matemáticas.
	- Consistem num sistema de equações e de expressões matemáticas relacionadas, que descrevem os aspetos essenciais do problema.
	- Podem ter diversas formas como uma única equação, um sistema de equações, um sistema de inequações ou, para casos mais complexos, um conjunto de equações diferenciais.
	- O modo como a teoria e as aplicações da Matemática se relacionam designa-se por:
	- matematização ou
	- modelação matemática.
	- Isto significa, para Ian Stwart (matemático inglês), que "Qualquer descrição matemática do mundo real é um modelo. Manipulando o modelo esperamos compreender algo da realidade. E já não perguntamos se o modelo é verdadeiro, perguntamos unicamente se as suas implicações podem ser verificadas experimentalmente".
	4. Tipos de modelos matemáticos
	- Os modelos matemáticos podem ser, pela sua natureza, de dois tipos:
	- modelos prescritivos, e
	- modelos descritivos.
	- Os modelos matemáticos prescritivos têm como característica principal, o facto de o resultado de uma operação ser prescrita para solucionar um problema do sistema real.
	- Os modelos prescritivos
	- baseiam-se na representação dos objetivos e das restrições de um processo para o qual se deseja descobrir soluções ótimas;
	- ou seja, o modelo é elaborado segundo uma técnica que permite encontrar a melhor solução, ou política de ação, para os condicionamentos representados.
	- Exemplos de modelos prescritivos:
	- modelos de otimização;
	- modelos que usam métodos numéricos.
	- Os modelos que usam métodos numéricos
	- são expressos apenas por uma equação matemática;
	- a sua resolução consiste em determinar as soluções que anulam aquela equação (ou seja, os seus zeros).
	- Os modelos de otimização podem ser resolvidos usando dois tipos diferentes de métodos:
	- exatos, e
	- aproximados.
	- Nos métodos exatos, a solução obtida
	- é a melhor, dentre todas as possíveis, dados os condicionamentos do modelo;
	- otimiza (maximiza ou minimiza) uma função de mérito (por ex., o custo total de produção); e
	- respeita (não viola), em simultâneo, todas as restrições do problema (por ex:, satisfazer a procura).
	- Pode ser extremamente caro, em termos computacionais, resolver um problema com métodos exatos.
	- Neste caso, pode decidir-se por resolver o problema de forma aproximada (heuristicamente).
	- Resolver o problema usando um método aproximado (heurístico)
	- significa que não se pode garantir que se obtenha a solução ótima em todos cenários analisados;
	- mas pode-se garantir a obtenção de uma solução de “boa qualidade” com baixo custo computacional.
	- Uma abordagem heurística tenta utilizar um método racional para encontrar uma boa (próxima do ótimo) solução.
	- Geralmente a heurística apresenta uma maneira mais rápida e fácil de resolver um problema, em relação ao método matemático prescritivo “puro”.
	- Exemplos de métodos heurísticos são
	- Algoritmos Evolutivos (Algoritmos Genéticos, Pesquisa Tabu, ...),
	- Redes Neuronais e
	- Busca Local.
	- Mas isto não significa que se deve resolver todos os problemas de grande dimensão e caros, em termos computacionais, usando métodos aproximados.
	- Por exemplo:
	- Suponha-se que existam 3 trabalhos para serem realizados e 3 máquinas disponíveis para os realizar.
	- O custo de cada máquina para cada trabalho está na seguinte tabela:
	- Heurística 1: Alocação do menor custo dos trabalhos. Qual o custo total?
	- Heurística 2: Alocação do menor custo das máquinas. Qual o custo total?
	- Usando a Heurística 1 e afetando por ordem os Trabalhos:
	custo total é 40 (10 + 5 + 25),
	pares de afetação: (Trabalho 1, Máquina 1), (Trabalho 2, Máquina 2) e (Trabalho 3, Máquina 3).
	- Usando a Heurística 2 e afetando por ordem as Máquinas:
	o custo total é 24 (8 + 5 + 11),
	pares de afetação: (Máquina 1, Trabalho 3), (Máquina 2, Trabalho 2) e (Máquina 3, Trabalho 1).
	- Solução ótima: (T1, M1), (T2, M3) e (T3, M2) é um pouco melhor (22) que a solução da heurística 2 (24).
	- Os modelos matemáticos descritivos
	- são utilizados para acompanhar o comportamento de um sistema.
	- As suas conclusões são obtidas através da perceção do modelador.
	- Os modelos deste tipo mais usuais são os modelos de simulação.
	- Os modelos descritivos são utilizados
	- na representação de sistemas reais (ou propostos) e
	- na experimentação de diferentes cenários e políticas de ação nos mesmos.
	- As grandes motivações para o uso destas técnicas são
	- a flexibilidade na representação de modelos complexos e
	- a facilidade de aplicação,
	o que possibilita prever o comportamento do sistema modelado no horizonte de planeamento escolhido.
	- Os resultados dos testes apresentam uma visão futura do sistema, auxiliando no processo de tomada de decisões no momento.
	- Ao contrário dos métodos prescritivos, os modelos descritivos são utilizados para comparar políticas de ação já escolhidas pelo decisor, não esperando que o modelo indique a melhor solução possível.
	- Por exemplo, supor que se pretende testar duas políticas de filas de espera numa Agência Bancária:
	Política 1 - cada caixa tem a sua própria fila;
	Política 2 - uma fila única para todas as caixas.
	Objetivo: Simular as duas políticas para verificar qual delas é a melhor (segundo certo objetivo).
	5. Modelação matemática
	- O processo de resolução de um problema
	- pode ser visto como uma sequência de etapas que devem ser realizadas e melhoradas,
	- até que o modelo matemático construído para representar o problema forneça resultados satisfatórios.
	- A construção de um bom modelo matemático exige
	- alto nível de abstração e
	- de conhecimentos académicos (teoria) e/ou empíricos (prática) sobre o problema em análise.
	- Notar que,
	- não é possível o controlosobre a maioria dos sistemas reais (complexos),
	- mas é possível controlar a complexidade dos modelos matemáticos que se constroem.
	- Os sistemas reais complexos
	- podem ser aproximados por modelos matemáticos simples,
	- que usam equações matemáticas que podem ser resolvidas analiticamente (obtendo soluções exatas).
	- No entanto, estes modelos simples oferecem, provavelmente,
	- uma descrição muito distante do comportamento dos sistemas reais.
	- Uma descrição mais precisa do sistema real pode ser conseguida
	- com a introdução de mais características do sistema no modelo matemático,
	- o que implica a utilização de equações matemáticas mais complexas e mais difíceis de resolver.
	- Para estes casos,
	- podem não existir soluções analíticas (exatas) para o modelo;
	- havendo necessidade de se recorrer à determinação de soluções “aproximadas”, obtidas através de
	- métodos numéricos ou
	- métodos heurísticos.
	- Existem, na literatura, vários diagramas para descrever o processo de resolução de um problema (modelação matemática).
	- Assim, pode-se considerar que este processo é composto por cinco etapas (ver diagrama em baixo):
	1ª) Definição (Formulação) do Problema,
	2ª) Construção do Modelo (Matemático),
	3ª) Determinação da Solução (do Modelo),
	4ª) Validação do Modelo e Análise da Solução,
	5ª) Implementação da Solução.
	5.1. Modelação matemática - Definição do Problema
	- Elabora-se a definição (formulação) matemática do problema real a ser resolvido.
	- Normalmente,
	- começa-se com um diagnóstico da situação e
	- termina-se com uma descrição formal do problema.
	- Uma definição cuidadosa do problema é crucial,
	- pois caso contrário pode-se estar, mais tarde, a resolver o problema errado;
	- ou seja, deve-se evitar extrair a resposta certa do problema errado!
	- Envolve a "Perceção do Problema" e a "Recolha de Dados".
	- Deve-se identificar as entidades associadas ao problema, que são as seguintes:
	- os dados (o que é conhecido),
	- o objetivo (que é desconhecido e pretende-se determinar) e
	- as restrições (as condições do problema apresentadas).
	5.2. Modelação matemática - Construção do Modelo Matemático
	- Consiste na transformação do problema real num problema matemático através de uma formulação matemática, a qual deve ser tratável em termos computacionais.
	- Deve-se começar por
	- tentar selecionar um modelo, entre os vários já conhecidos e que possam ser aplicados ao problema
	(é frequente ser possível aplicar diferentes modelos ao mesmo problema real).
	- Geralmente o modelo matemático possui mais soluções que o problema real.
	- Também deve haver uma grande comunicação com a fase da “Recolha de Dados”, pois o modelo pode necessitar de algo mais do que foi feito na etapa anterior,
	- quer em termos dos dados recolhidos
	- quer na forma como são apresentados.
	- Nesta etapa deve-se reproduzir as relações entre os componentes do problema (objetivos, variáveis de decisão, parâmetros, restrições, ...).
	5.3. Modelação matemática - Determinação da Solução do Modelo
	- Faz-se a escolha do método numérico mais apropriado para resolver o modelo matemático, obtido na construção do modelo matemático.
	- Na escolha do método mais eficiente deve-se ter em conta os seguintes aspetos:
	- precisão desejada para os resultados;
	- capacidade do método em conduzir aos resultados desejados (velocidade de convergência);
	- esforço computacional despendido (tempo de processamento e economia de memória).
	- Depois de feita a escolha do método,
	- este é descrito através de um algoritmo,
	- o qual é posteriormente implementado num computador através de uma linguagem de programação;
	- por fim, a execução daquele programa tem em vista a obtenção dos resultados numéricos (soluções).
	- Esta etapa pode, então, ser subdividida nas 3 fases seguintes (depois de escolhido o método):
	- elaboração do algoritmo,
	- implementação do algoritmo (codificação do programa),
	- processamento (execução) do programa.
	5.4. Modelação matemática - Validação do Modelo e Análise da Solução
	- Verifica-se
	- a consistência da solução obtida para o modelo (validação do modelo) e
	- a sua adequação ao problema real (análise da solução).
	- Se a solução não se mostrar satisfatória (modelo não válido) deve-se
	- construir um novo modelo matemático, através de uma nova formulação matemática, e
	- determinar uma nova solução numérica.
	- Alguns modelos matemáticos podem
	- produzir várias soluções (e não apenas uma) e
	- algumas delas (ou todas) não terem sentido físico ou químico
	- por exemplo: tempo negativo, concentração complexa, etc.
	- Um dos objetivos desta etapa é justamente discernir qual a solução válida para o problema real dentre as várias fornecidas pelo modelo matemático (se existirem algumas).
	5.5. Modelação matemática - Implementação da Solução
	- Nesta etapa deve-se ter em atenção os seguintes aspetos:
	- garantir que, do “papel” para o sistema real, não se desvirtua a solução;
	- ter abertura para readaptações (modelo e/ou solução) causadas pelas dificuldades de implementação;
	- verificar a existência de problemas:
	- técnicos,
	- associados ao comportamento individual dos elementos da organização,
	- relacionados com o ambiente organizacional;
	- dar importância aos aspetos comportamentais;
	- verificar se a “realidade” ainda é a mesma do início do estudo.
	5.6. Modelação matemática - Exemplo
	- Definição do Problema
	- Um fabricante de plásticos produz 2 tipos de plástico:
	- Especial e
	- Normal.
	- Cada tonelada de plástico Especial exige
	- 2 horas na máquina A e
	- 5 horas na máquina B;
	- Cada tonelada de plástico Normal exige
	- 2 horas na máquina A e
	- 3 horas na máquina B.
	- Como
	- a máquina A está disponível 8 horas por dia e
	- a máquina B está disponível 15 horas por dia,
	quantas toneladas de cada tipo de plástico devem ser produzidas diariamente de maneira que as duas máquinas se mantenham totalmente ocupadas?
	- Construção do Modelo Matemático
	- Determinação da Solução do Modelo
	- O processo consiste na resolução de um sistema de duas equações com duas incógnitas, usando o método de substituição de variáveis.
	- Validação do Modelo e Análise da Solução
	- Devem ser produzidas:
	1,5 toneladas de plástico Especial (variável X) e
	2,5 toneladas de plástico Normal (variável Y).
	- Implementação da Solução:
	- Indicar a produção dos 2 tipos de plásticos nas fábricas
	6. Elaboração de algoritmos
	- Uma das fases mais importantes na resolução de um problema é a elaboração de um algoritmo que traduza o método associado ao modelo matemático construído.
	- Selecionado o método associado ao modelo matemático construído (definido através de expressões aritméticas e lógicas), o passo seguinte é realizar uma descrição do método através de um algoritmo.
	- A descrição do algoritmo, através de uma notação algorítmica, melhora o seu entendimento, pois
	- apenas os aspetos do raciocínio matemático são realçados,
	- não é necessário levar em consideração os detalhes de implementação das linguagens de programação.
	6.1. Elaboração de algoritmos - Estrutura do algoritmo
	- Um algoritmo
	deve iniciar-se com
	Algoritmo <nome-do-algoritmo>
	e terminar com
	fim_algoritmo
	- Para descrever a finalidade do algoritmo, deve ser utilizado
	{ Objetivo: <objetivo-do-algoritmo> }
	- Os dados necessários para a execução de um algoritmo são requisitados pelo comando
	parâmetros de entrada: <lista-de-variáveis>
	onde <lista-de-variáveis> são os nomes das variáveis contendo os valores fornecidos.
	- Não é necessário descrever exatamente como os valores são fornecidas ao algoritmo.
	- Os valores calculados pelo algoritmo são disponibilizados pelo comando
	parâmetros de saída: <lista-de-variáveis>
	podendo a <lista-de-variáveis> ser ampliada ou reduzida pelo programador.
	6.2. Elaboração de algoritmos - Variáveis e comentários
	- Uma variável corresponde a uma posição de memória do computador onde está, ou poderá estar, armazenado um determinado valor.
	- As variáveis são representadaspor identificadores, podendo os elementos de vetores e matrizes serem referenciados por subscritos ou índices (por exemplo, vi ou v(i) e mij ou m(i,j)).
	- Um comentário é
	- um texto inserido em qualquer parte o algoritmo para aumentar a sua clareza.;
	- deve ser delimitado por chavetas ({ <texto> });
	- por exemplo, { cálculo da raiz }.
	6.3. Elaboração de algoritmos - Expressões e comando de atribuição
	- Existem três tipos de expressões, dependendo dos tipos dos operadores e das variáveis envolvidas:
	- aritméticas,
	- lógicas e
	- literais.
	- O símbolo  é usado para atribuir o resultado de uma expressão a uma variável,
	<variável>  <expressão>
	- Por exemplo,
	velocidade  deslocamento/tempo
	mensagem  “matriz singular”
	- Na elaboração dos algoritmos, podem ser usadas
	- operadores aritméticos, relacionais e lógicos
	- funções matemáticas predefinidas: trigonométricas e numéricas.
	6.4. Elaboração de algoritmos - Comandos de entrada e saída
	- O comando
	leia: <lista-de-variáveis>
	indica que a <lista-de-variáveis> está disponível para leitura nalgum dispositivo externo.
	- Por sua vez, o comando
	escreva: <lista-de-variáveis>
	deve ser utilizado para indicar onde certos valores de interesse
	- estão disponíveis no programa e
	- devem ser escritos nalgum dispositivo externo.
	6.5. Elaboração de algoritmos - Estruturas condicionais
	- Uma estrutura condicional torna possível a escolha dos comandos a serem executados quando certa condição for satisfeita ou não.
	- Podem ser simples ou compostas.
	- Estrutura condicional simples
	se <condição> então
	<comandos>
	fim_se
	- Estrutura condicional composta
	se <condição> então
	<comandos_1>
	senão
	<comandos_2>
	fim_se
	6.6. Elaboração de algoritmos - Estruturas de repetição
	- Número indefinido de repetições
	repita
	<comandos_1>
	se <condição> então
	interrompa
	fim_se
	<comandos_2>
	fim_repita
	<comandos_3>
	- Número definido de repetições
	para <controle>  <valor-inicial> até <valor-final> passo <delta> faça
	<comandos>
	fim_para
	6.7. Elaboração de algoritmos - Falha no algoritmo
	- Para indicar que haverá uma falha evidente na execução do algoritmo, usar o comando
	abandone
	6.8. Elaboração de algoritmos - Exemplos de algoritmos
	- Problema 1:
	Dado um vetor x com n componentes (elementos), elaborar um algoritmo para determinar
	- a média aritmética e
	- o desvio padrão s dos seus elementos,
	sabendo que
	,
	e
	.
	- Algoritmo:
	Elaboração de algoritmos - Complexidade computacional
	- É usual definir-se uma função de complexidade para medir o custo de execução de um algoritmo.
	- Esta função tanto pode ser uma medida do
	- tempo necessário para executar o algoritmo que resolve um problema de tamanho n,
	- espaço de memória requerido para esta execução.
	A complexidade computacional de um algoritmo
	- refere-se à estimativa do esforço computacional despendido para resolver o problema,
	- é medido pelo número de operações aritméticas e lógicas efetuadas para resolver um sistema linear de ordem n.
	- Os problemas têm complexidade computacional e podem-se enquadrar em dois grupos:
	- o composto pelos algoritmos polinomiais, sendo a função de complexidade da forma:
	O(cn pn + cn-1 pn-1 + ... + c1 p1 + c0)
	- o formado pelos algoritmos exponenciais, sendo a função de complexidade da forma:
	O(cn), c > 1.
	- Exemplo:
	- Considere-se o polinómio de Lagrange de grau n definido da seguinte forma:
	
	- Expandindo aquela expressão, resulta a Expressão 1:
	+
	+
	+ . . . +
	
	- Considerando que o número de pontos m usados na interpolação é igual a n+1, onde n é o grau do polinómio, então a complexidade computacional do algoritmo é:
	Adições:
	Multiplicações:
	Divisões:
	Estes resultados são resumidos na tabela seguinte:
	- O polinómio de Lagrange também pode ser expandido de modo a resultar a Expressão 2:
	+
	+
	+ . . . +
	
	- Analisando a complexidade computacional do algoritmo desta expressão, verifica-se que
	- o número de adições é o mesmo (2n2 + 3n + 1),
	- o de multiplicações é da mesma ordem (n2),
	- o número de divisões utilizadas na Expressão 2 é de uma ordem grandeza menor (n).
	- O polinómio de Lagrange serve para exemplificar que
	- uma mesma notação matemática pode resultar em algoritmos de diferentes complexidades.
	- Isto deve estar presente ao elaborar-se um algoritmo.

Outros materiais