baseado no mÉtodo da estimativa do erro ... -...

18
Relatório Final de Atividades EXTENSÃO DE UM MÉTODO DE ESTIMATIVA DE PARÂMETROS BASEADO NO MÉTODO DA ESTIMATIVA DO ERRO DAS VARIÁVEIS Pesquisador: Lucas Figueiredo Orientador: Prof. Dr. José Roberto Nunhez Esta pesquisa tem como principal objetivo a criação de um aplicativo gráfico (sistema operacional Windows) para estimativa de parâmetros, baseado no Método da Máxima Verossimilhança. A criação de um aplicativo com interface gráfica compreende dois passos: o desenvolvimento de um código-fonte (a implementação numérica do método de ajuste) e, então, a criação de um programa que utilize recursos gráficos do Windows (múltiplas janelas, diálogos, reconhecimento de ponteiro, menus e saídas gráficas) fundamentado no código-fonte criado. A transformação de uma “linha de comando” em um software visual compreende o estudo de alguns procedimentos computacionais e características de aplicativos de Windows. Estes procedimentos estão além do entendimento específico da linguagem Fortran, mas referem-se ao que chamamos de “Visual Fortran”: um conjunto de ferramentas integradas e disponibilizadas no software “Compaq Visual Fortran 6.5”, que permite o desenvolvimento de projetos computacionais fundamentados na linguagem Fortran 90/95 [2]. Originalmente este projeto de pesquisa propôs a extensão de um programa já existente, que ajusta parâmetros de funções de até duas variáveis, desenvolvido em linguagem Fortran 77. O programa estendido, que é o objetivo original desta pesquisa, ajusta parâmetros de modelos de três ou mais variáveis. Sendo assim, são objetivos originais relatados no projeto de pesquisa: o aprendizado da linguagem computacional, o desenvolvimento e a implementação do algoritmo numérico, e as posteriores validação e aplicação do programa. A ajuda recebida do aluno de mestrado Leonardo Machado Rosa, referente à implementação do algoritmo numérico, permitiu a inclusão de novos objetivos, acrescentados durante os seis meses finais de pesquisa. Portanto, além do trabalho citado, a pesquisa realizada envolveu também a segunda etapa referente à criação de um software gráfico, comentada nos parágrafos anteriores. A intenção do pesquisador e de seu orientador, com a realização destes novos objetivos, é de facilitar e promover a utilização do método numérico implementado, considerado pela literatura como o melhor método de ajuste de modelos. Este relatório final de atividades descreve o trabalho realizado ao longo dos doze meses de pesquisa e está dividido em 4 partes, a saber: 1. Balanço das propostas cumpridas , em que as

Upload: nguyennhan

Post on 02-Dec-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BASEADO NO MÉTODO DA ESTIMATIVA DO ERRO ... - feq.unicamp…nunhez/download/pesquisa/ic/relatorio_lucas.pdf · fundamentados na linguagem Fortran 90/95 [2]. Originalmente este projeto

Relatório Final de Atividades

EXTENSÃO DE UM MÉTODO DE ESTIMATIVA DE PARÂMETROS

BASEADO NO MÉTODO DA ESTIMATIVA DO ERRO DAS VARIÁVEIS

Pesquisador: Lucas Figueiredo

Orientador: Prof. Dr. José Roberto Nunhez

Esta pesquisa tem como principal objetivo a criação de um aplicativo gráfico (sistema operacional

Windows) para estimativa de parâmetros, baseado no Método da Máxima Verossimilhança. A

criação de um aplicativo com interface gráfica compreende dois passos: o desenvolvimento de um

código-fonte (a implementação numérica do método de ajuste) e, então, a criação de um programa

que utilize recursos gráficos do Windows (múltiplas janelas, diálogos, reconhecimento de ponteiro,

menus e saídas gráficas) fundamentado no código-fonte criado.

A transformação de uma “linha de comando” em um software visual compreende o estudo

de alguns procedimentos computacionais e características de aplicativos de Windows. Estes

procedimentos estão além do entendimento específico da linguagem Fortran, mas referem-se ao que

chamamos de “Visual Fortran”: um conjunto de ferramentas integradas e disponibilizadas no

software “Compaq Visual Fortran 6.5”, que permite o desenvolvimento de projetos computacionais

fundamentados na linguagem Fortran 90/95 [2].

Originalmente este projeto de pesquisa propôs a extensão de um programa já existente, que

ajusta parâmetros de funções de até duas variáveis, desenvolvido em linguagem Fortran 77. O

programa estendido, que é o objetivo original desta pesquisa, ajusta parâmetros de modelos de três

ou mais variáveis. Sendo assim, são objetivos originais relatados no projeto de pesquisa: o

aprendizado da linguagem computacional, o desenvolvimento e a implementação do algoritmo

numérico, e as posteriores validação e aplicação do programa.

A ajuda recebida do aluno de mestrado Leonardo Machado Rosa, referente à implementação

do algoritmo numérico, permitiu a inclusão de novos objetivos, acrescentados durante os seis meses

finais de pesquisa. Portanto, além do trabalho citado, a pesquisa realizada envolveu também a

segunda etapa referente à criação de um software gráfico, comentada nos parágrafos anteriores. A

intenção do pesquisador e de seu orientador, com a realização destes novos objetivos, é de facilitar e

promover a utilização do método numérico implementado, considerado pela literatura como o

melhor método de ajuste de modelos.

Este relatório final de atividades descreve o trabalho realizado ao longo dos doze meses de

pesquisa e está dividido em 4 partes, a saber: 1. Balanço das propostas cumpridas, em que as

Page 2: BASEADO NO MÉTODO DA ESTIMATIVA DO ERRO ... - feq.unicamp…nunhez/download/pesquisa/ic/relatorio_lucas.pdf · fundamentados na linguagem Fortran 90/95 [2]. Originalmente este projeto

2

propostas originais são comparadas com resultados obtidos; 2. Implementação numérica do

método, em que o desenvolvimento do “código-fonte” de ajuste é analisado; 3. Criação do

aplicativo visual, sobre o desenvolvimento do software gráfico; 4. Aplicação do programa à

problemas de interesse, que contém os resultados da utilização do programa em situações de

importância para a Engenharia.

1. BALANÇO DAS PROPOSTAS CUMPRIDAS

O projeto de pesquisa, de acordo com as propostas traçadas originalmente, foi integralmente

cumprido. Foram estipuladas cinco etapas, dividas entre os 12 meses em que a bolsa vigora, e todas

foram realizadas. Em função das motivações do pesquisador e de seu orientador, bem como da

ajuda recebida do aluno de mestrado Leonardo Machado Rosa, novos objetivos foram traçados e

consistiram na transformação do código computacional desenvolvido em um aplicativo visual.

Ao fim desta pesquisa, as atividades realizadas podem, portanto, ser divididas ou resumidas

em duas etapas mais gerais, que correspondem aos dois passos referentes à criação de um aplicativo

visual já comentados. Durante os seis meses iniciais (agosto de 2000 a janeiro de 2001), o método

de ajuste desenvolvido foi implementado numericamente em um programa simples, sem interface

com o usuário. Nos seis meses seguintes (fevereiro a julho de 2001) o pesquisador trabalhou no

enriquecimento das possibilidades de interface do programa, conhecendo os recursos básicos de

programação visual do sistema operacional Windows. Os comentários seguintes comparam as

atividades realizadas com as propostas originais de trabalho:

1.1.Aprendizado da linguagem Fortran e desenvolvimento do modelo matemático:

É a primeira etapa de trabalho proposta no projeto, e foi realizada no primeiro semestre de

pesquisa. O desenvolvimento do modelo matemático, em si, já consta no corpo do projeto, em que o

método da Estimativa do Erro das Variáveis é demonstrado para o ajuste de parâmetros de uma

função genérica com três variáveis. O pesquisador trabalhou, nesta etapa, com a tradução deste

modelo matemático em um algoritmo computacional.

1.2.Desenvolvimento e implementação do algoritmo numérico:

São as etapas dois e três propostas no projeto, e também foram realizadas no primeiro

semestre de pesquisa. O desenvolvimento do “código-fonte” de ajuste de parâmetros, resultado do

cumprimento destas etapas, foi feito com o apoio do aluno de mestrado Leonardo Machado Rosa. É

uma extensão de um programa anterior, e ajusta modelos com três ou mais variáveis. Sua estrutura é

brevemente detalhada na parte 2 deste relatório (Implementação numérica do método).

Page 3: BASEADO NO MÉTODO DA ESTIMATIVA DO ERRO ... - feq.unicamp…nunhez/download/pesquisa/ic/relatorio_lucas.pdf · fundamentados na linguagem Fortran 90/95 [2]. Originalmente este projeto

3

1.3.Validação e aplicação do programa a funções de interesse:

São as etapas quatro e cinco propostas no projeto e foram realizadas ao longo do segundo

semestre de pesquisa. As atividades relacionadas a estas etapas consistem em submeter o programa

à avaliação de parâmetros de diferentes modelos, em situações práticas de interesse. Um teste de

validação do método implementado foi comentado no relatório parcial de pesquisa. Os resultados da

aplicação do programa a duas situações práticas são discutidos na parte 4 deste relatório (Aplicação

do programa a problemas de interesse).

A etapa adicional do projeto, o desenvolvimento do aplicativo visual, foi iniciada no

segundo semestre de pesquisa e já apresenta bons resultados. É uma etapa que envolve o

aprendizado de uma série de conceitos novos para o pesquisador, referentes à programação de

aplicativos do sistema operacional Windows e possibilidades de interface com o usuário. O

programa MaxVer, resultado dos esforços iniciais de programação visual, será enviado ao

PIBIC/CNPq (UNICAMP) no prazo de quatro a cinco semanas, como parte dos resultados de

pesquisa obtidos. É este mesmo programa que foi utilizado nas aplicações práticas comentadas na

parte 4 deste relatório.

2. IMPLEMENTAÇÃO NUMÉRICA DO MÉTODO

Durante o semestre inicial da pesquisa foram feitos os estudos relacionados ao “código-fonte” e à

implementação numérica do método de ajuste. Estes trabalhos conduziram à criação de um

programa sem interface com o usuário, constituído pelas rotinas numéricas de ajuste. O núcleo de

rotinas criadas nesta etapa foi reestruturado e prestou ao desenvolvimento de um aplicativo visual

no semestre seguinte de pesquisa.

Detalhamos, a seguir, as características do método da Máxima Verossimilhança e

comentamos como este método foi implementado em uma sub-rotina Fortran. O algoritmo

numérico desenvolvido envolve a estruturação de um sistema linear e sua resolução iterativa,

segundo o método de Newton-Raphson. Uma sub-rotina principal (subroutine maxver) gerencia a

montagem do jacobiano, acessando um conjunto de 15 funções (real(8) functions) associadas, em

momentos convenientes, para efetuar os cálculos necessários.

2.1.O método de ajuste de parâmetros

A aplicação do método da Máxima Verossimilhança à um conjunto de dados experimentais,

associado a um modelo matemático qualquer, conduz à estimativa confiável dos parâmetros deste

modelo, bem como dos valores médios que suas variáveis assumem. É uma generalização do

método dos Mínimos Quadrados, e não impõe restrições quanto ao uso de modelos nem quanto à

atribuição de incertezas às medidas experimentais.

Page 4: BASEADO NO MÉTODO DA ESTIMATIVA DO ERRO ... - feq.unicamp…nunhez/download/pesquisa/ic/relatorio_lucas.pdf · fundamentados na linguagem Fortran 90/95 [2]. Originalmente este projeto

4

Podemos citar diversas vantagens do método da Máxima Verossimilhança em relação ao

método dos Mínimos Quadrados. Em primeiro lugar, a aplicação do método dos Mínimos

Quadrados pressupõe a linearização forçada do modelo ajustado, enquanto o método da Máxima

Verossimilhança ajusta o modelo em sua forma original, mesmo quando trata-se de uma expressão

em que não é possível isolar uma das variáveis (modelo implícito).

Ainda, o método dos Mínimos Quadrados minimiza somente os desvios da variável

dependente (assume que os desvios das variáveis independentes são nulos), enquanto o método da

Máxima Verossimilhança minimiza os desvios relativos a todas as variáveis. Terminando, se o

conjunto de dados experimentais apresentar os erros associados às medidas, só o método da

Máxima Verossimilhança irá considerar estes erros no ajuste dos parâmetros.

Consideramos, para apresentação do método da Máxima Verossimilhança, um conjunto de

N pontos experimentais do tipo (Xi1,...,Xi

G) e seus desvios (�i1,...,�i

G), com i = 1,...,N. O conjunto de

pontos está associado a G variáveis do tipo xik (k = 1,...,G), e supomos que é bem representado por

um modelo genérico e implícito F(xi1,..., xi

G; a1,...,aP) = 0, em que aj (j = 1,...,P) são os P

parâmetros ajustáveis deste modelo.

O ajuste destes parâmetros é feito pela minimização da função S[1, 4], representada pela

equação (1). A função S é a soma total dos quadrados dos desvios relativos a cada uma das

variáveis, ponderada pelos respectivos erros experimentais. Em outras palavras, S é a soma

ponderada das distâncias de cada um dos pontos experimentais ao modelo implícito F:

� �� �

��

���

���

N

i

G

k

ik

ik

ik xXWS

1 1

2)(21 (1)

2

1ik

ikW

� i = 1,...,N k = 1,...,G (2)

0),...,;,...,( 11 �PiG

i aaxxF i = 1,...,N k = 1,...,G (3)

A minimização da função S requer o uso de multiplicadores de Lagrange �i [3], porque está

vinculada a N restrições F = 0 (cada um dos pontos (xi1,..., xi

G) deve satisfazer esta condição).

Minimizando S segundo este vínculo chegamos ao sistema de equações (4 – 6), cuja resolução

fornece os parâmetros ajustados aj, bem como os valores médios das variáveis xik (alguns passos

intermediários foram suprimidos, o projeto de pesquisa contém o desenvolvimento completo):

01 ���� �t

aF (4)

02 �� �F (5)

031

����� kt

kkk F �� k = 1,...,G (6)

Page 5: BASEADO NO MÉTODO DA ESTIMATIVA DO ERRO ... - feq.unicamp…nunhez/download/pesquisa/ic/relatorio_lucas.pdf · fundamentados na linguagem Fortran 90/95 [2]. Originalmente este projeto

5

Neste sistema, (4) são P equações envolvendo as derivadas do modelo F em relação a cada

um dos parâmetros aj; (5) são as N restrições F = 0, uma para cada ponto experimental; e (6) são as

G x N equações envolvendo as derivadas da função S e do modelo F em relação a cada uma das

variáveis. É, portanto, um sistema de (G + 1)N + P equações, com o mesmo número de incógnitas:

P parâmetros ajustados, G x N valores médios das variáveis e N multiplicadores de Lagrange.

2.2.Implementação em rotinas numéricas

Implementar o método da Máxima Verossimilhança significa simplesmente resolver, de forma

adequada, o sistema homogêneo de equações (4 – 6). É esta tarefa que é associada ao conjunto de

rotinas numéricas (e principais) do programa e, ainda, é esta tarefa que foi realizada e estudada nos

semestre inicial de pesquisa. O processo de implementação envolve, portanto, a ordenação

cuidadosa dos termos deste sistema (que pode ter grandes dimensões) e sua resolução iterativa.

O sistema de equações (4 – 6) é sempre não-linear, mesmo sendo o modelo matemático F

explícito (linear em relação aos parâmetros). Substituímos, então, as expressões (4), (5) e (6) por

suas aproximações em série de Taylor, derivando cada uma delas em relação às (G + 1)N + P

incógnitas. Aplicamos o método de Newton-Raphson e a resolução iterativa do novo sistema,

polinomial, permite que se utilize eficientemente as aproximações de primeira ordem de Taylor:

01 1

111

10

11 ���

���

�������� � ��

� ��

N

i

G

k

ikxi

P

jja xa i

kij������

� (7)

01 1

221

20

22 ���

���

�������� � ��

� ��

N

i

G

k

ikxi

P

jja xa i

kij������

� (8)

01 1

331

30,

33 ���

���

�������� � ��

� ��

N

i

G

k

ik

kxi

kP

jj

ka

kk xa ikij������

� k = 1,...,G (9)

As equações (7 – 9) são equivalentes às equações (4 – 6), e este novo sistema (7 – 9), linear,

pode ser reescrito como uma equação matricial R . � = 0, em que R é o jacobiano que contém as

derivadas das expressões � 1, � 2 e � 3; e � é o vetor com as (G + 1)N + P novas incógnitas (�s das

equações (7 – 9)). Ainda sobre estas equações: � é o valor de � calculado em um ponto inicial;

é a derivada de � em relação à a

01 1

1�ja� 1 j; e é uma das incógnitas do sistema. ja�

A resolução computacional do sistema (7 – 9), adotada nesta pesquisa, conta com um núcleo

de rotinas numéricas. Uma sub-rotina principal (subroutine maxver) gerencia o processo iterativo de

resolução e a montagem do jacobiano R. Esta sub-rotina acessa um conjunto associado de 15

funções (real(8) functions), para o cálculo dos termos de R a cada iteração, sendo estas funções: o

modelo F, suas derivadas em relação aos parâmetros e às G x N variáveis, � 1, � 2, � 3 e suas

Page 6: BASEADO NO MÉTODO DA ESTIMATIVA DO ERRO ... - feq.unicamp…nunhez/download/pesquisa/ic/relatorio_lucas.pdf · fundamentados na linguagem Fortran 90/95 [2]. Originalmente este projeto

6

derivadas que aparecem nas equações (7 – 9).

A equação matricial R . � = 0 é resolvida, a cada iteração, pelo método direto da Eliminação

de Gauss, e os resultados do vetor � são testados quanto à convergência. Os valores corrigidos dos

parâmetros e das variáveis, em uma dada iteração, são utilizados na iteração seguinte como valores

iniciais e para o cálculo de cada uma das 15 funções. Finalizando, lembramos que todas derivadas

das equações (7 – 9) são avaliadas numericamente.

3.CRIAÇÃO DO APLICATIVO VISUAL

Os novos objetivos estabelecidos ao longo desta pesquisa compreendem o desenvolvimento de um

software com interface gráfica com o usuário (user friendly). Este aplicativo vem sendo

desenvolvido ao longo deste semestre final de pesquisa, e ainda não está concluído. As

possibilidades relacionadas aos recursos visuais que podem ser utilizados são inúmeras, e, portanto,

o pesquisador e seu orientador compreendem que há espaço para muitas melhoras.

Figura 1 – Tela de entrada do programa MaxVer

O programa desenvolvido é um “aplicativo em Fortran do tipo QuickWin” (Fortran

QuickWin Application): permite o uso de janelas gráficas integradas, diálogos variados,

reconhecimento de ponteiro e tem uma complexidade de programação que varia de simples a

moderada [2]. A aplicação do tipo QuickWin, apesar de proporcionar diversos recursos que nem são

utilizados neste programa, tem o inconveniente de restringir o uso de processamento multi-thread.

A utilização simultânea de mais de uma janela ou diálogo em operação exige mais de um

“caminho” de processamento, ou o que chamamos de processamento multi-thread.

A abertura de múltiplas janelas com a possibilidade de operá-las simultaneamente, de forma

Page 7: BASEADO NO MÉTODO DA ESTIMATIVA DO ERRO ... - feq.unicamp…nunhez/download/pesquisa/ic/relatorio_lucas.pdf · fundamentados na linguagem Fortran 90/95 [2]. Originalmente este projeto

7

integrada, não é um recurso disponível em um aplicativo QuickWin. Para disponibilizar este

recurso no programa que vem sendo desenvolvido é necessário “transformá-lo” em um verdadeiro

aplicativo de Windows (Fortran Windows Application), com todos os recursos gráficos e de

interface deste sistema operacional disponíveis. A criação deste tipo de aplicativo, porém, requer

conhecimento avançado de programação e das “rotinas de interface de programação para aplicações

em Windows” (Win32 API’s routines) [2]. O pesquisador julga que, para um trabalho inicial

envolvendo interface gráfica, os recursos de um aplicativo QuickWin são suficientes.

Os requisitos básicos definidos pelo pesquisador, em termos de recursos à disposição do

usuário, foram todos cumpridos. O programa MaxVer, resultado deste semestre final de pesquisa,

possui as seguintes características: 1. tem uma janela principal (figura 1) com menus que

possibilitam a entrada de dados experimentais via diálogos e tabelas, bem como utilizando arquivo-

texto previamente preparado; 2. possibilita a utilização de alguns modelos de ajuste predefinidos,

bem como o uso de um modelo genérico do usuário (requisito principal); e 3. possibilita a

visualização de resultados em janela de texto e em gráficos.

Figura 2 – Diálogo inicial de entrada de dados

Por ser a primeira versão do programa MaxVer, é necessário que o software seja

amplamente utilizado com o intuito de se eliminar possíveis inconsistências e/ou eventuais erros

que a primeira versão possa apresentar. É de interesse do pesquisador e de seu orientador prosseguir

melhorando o aplicativo desenvolvido, porque acreditam que o conhecimento acerca de recursos de

programação visual pode ser muito útil para trabalhos futuros.

3.1.Fortran e os recursos visuais

A linguagem Fortran foi desenvolvida para resolução de problemas de cálculo numérico. Sua

aplicação para o comando de recursos visuais só é possível com o uso de diversos “módulos de

apoio” disponibilizados no pacote “Compaq Visual Fortran”. Estes módulos de apoio contém

interfaces de rotinas que permitem o uso da sintaxe da linguagem Fortran para programar recursos

Page 8: BASEADO NO MÉTODO DA ESTIMATIVA DO ERRO ... - feq.unicamp…nunhez/download/pesquisa/ic/relatorio_lucas.pdf · fundamentados na linguagem Fortran 90/95 [2]. Originalmente este projeto

8

escritos originalmente em outras linguagens (“C” ou “Visual Basic”).

Para um aplicativo do tipo QuickWin, desenvolvido na área de trabalho do pacote “Compaq

Visual Fortran”, são importantes os seguintes módulos de apoio: o módulo dflib, com os comandos

gerais de tratamento de janelas e menus; o módulo dflogm, com as rotinas de uso de diálogos; o

módulo dfcom, com rotinas para projetos que envolvem automação (uso automático de outros

aplicativos); e o módulo dfauto, com rotinas para aplicativos que incluam “objetos automados”

como os controles ActiveX (há dois desses controles em MaxVer) e as tecnologias de OLE [2].

A utilização destes módulos de apoio confere grande versatilidade à linguagem Fortran, e

permite o desenvolvimento projetos mistos, em que rotinas numéricas se misturam com rotinas

visuais. A escolha desta linguagem, firmada no projeto de pesquisa, mais uma vez se justifica:

aliamos, às facilidades matemáticas originais da linguagem, um bom conjunto de recursos visuais.

3.2.Etapas do desenvolvimento do aplicativo

É possível dividir as atividades de criação de um aplicativo como o MaxVer em três etapas

principais: 1. a adaptação dos procedimentos numéricos do “código-fonte”, tornando-os

suficientemente acessíveis para um aplicativo visual; 2. o planejamento inicial dos recursos visuais

que são interessantes para o programa, e a pesquisa destes recursos quanto à sua disponibilidade e à

facilidade de programação; e 3. a implementação destes recursos e as conseqüentes modificações no

programa, em função das dificuldades de programação e de novas idéias.

Figura 3 – Diálogo para uso de arquivo-texto

O pesquisador iniciou o desenvolvimento do aplicativo MaxVer adaptando as rotinas

numéricas programadas no semestre anterior. Em termos práticos, durante a execução do programa,

algumas variáveis devem ficar disponíveis para diversas sub-rotinas, bem como algumas sub-rotinas

devem ser acessadas por diversas outras. Enfim, o trajeto unidirecional de processamento do

“código-fonte” deve ser desestruturado. A interface visual exige que as possibilidades de ações do

usuário sejam maiores: ele deve iniciar, parar e modificar opções do método numérico quando

quiser, o que exige que as diversas rotinas do programa sejam interdependentes.

Page 9: BASEADO NO MÉTODO DA ESTIMATIVA DO ERRO ... - feq.unicamp…nunhez/download/pesquisa/ic/relatorio_lucas.pdf · fundamentados na linguagem Fortran 90/95 [2]. Originalmente este projeto

9

Para que ganhem acessibilidade, as sub-rotinas e funções numéricas do “código-fonte”,

bem como variáveis principais, podem e devem ser agrupadas em módulos. Os módulos são

estruturas da linguagem Fortran 90/95 que permitem comunicação mais fácil entre os diversos

setores do programa. O agrupamento de variáveis “globais” em módulos é destacadamente útil e

evita que seus valores tenham que percorrer o programa como argumentos em sub-rotinas,

simplificando bastante a programação visual [8, 9].

O segundo passo a ser tomado é o planejamento inicial dos recursos visuais que interessam

ao programa. Esta etapa é muito importante. É preciso decidir, sem um conhecimento prévio dos

recursos de programação visual, quais serão as opções do usuário ao utilizar o aplicativo e de que

formas de interação ele poderá se beneficiar. O programador define um conjunto inicial de idéias

que quer colocar em prática, ou programar, e inicia o aprendizado dos recursos disponíveis para o

tipo de aplicativo que quer desenvolver.

Esta segunda etapa é essencialmente uma etapa de pesquisa. Diversos recursos são

aprendidos e implementados, e o programador avalia quais deles são úteis. As opções encontradas

são muitas: tipos variados de diálogos e controles de diálogo; formas específicas de entrada e saída

de dados; mecanismos de abertura, posicionamento e processamento de janelas; controles da

disposição gráfica do aplicativo e muitas outras. O conjunto inicial de idéias vai sendo

inevitavelmente mudado, em função das dificuldades de programação e das características dos

recursos disponíveis.

Figura 4 – Tabela de entrada de dados experimentais

À medida em que os recursos vão sendo implementados e testados, o programador começa a

se envolver com os diversos erros de execução do aplicativo. Em geral, quanto maior o número de

recursos disponíveis ao usuário, ou quanto mais refinada e amigável a interface, muito maiores são

as chances de que um problema de execução ocorra. Os problemas de execução são erros acusados

Page 10: BASEADO NO MÉTODO DA ESTIMATIVA DO ERRO ... - feq.unicamp…nunhez/download/pesquisa/ic/relatorio_lucas.pdf · fundamentados na linguagem Fortran 90/95 [2]. Originalmente este projeto

10

durante o funcionamento do programa, que podem causar o seu travamento ou ainda fechá-lo, e

têm origem, normalmente, em dois casos: 1. quando o usuário realiza algum tipo de operação ilegal

e o aplicativo não dispõe de meios para corrigir ou detectar o erro; e 2. quando há falhas na

programação que não impedem a compilação do aplicativo, porém são deflagradas quando o

usuário realiza alguma operação.

O desenvolvimento do aplicativo MaxVer enfrentou alguns erros de execução comuns em

programação visual. São eles: os problemas de conversão de dados entre variáveis de tipos

diferentes (caracter – número); os problemas de acionamento em momento indevido de uma ou

várias sub-rotinas, quando, por exemplo, as variáveis que utilizam ainda não estão definidas; e

principalmente problemas de reinício do aplicativo, quando, por exemplo, o usuário quer utilizar

novamente o programa, sem fechá-lo, e uma grande coleção de matrizes, “bandeiras” e sub-rotinas

têm que ser ordenadamente restauradas.

Figura 5 – Diálogo de opções de ajuste

As operações que constituem a maior fonte de erros de execução, chamados também de run-

time errors, são aquelas ligadas à entrada e saída de dados: as operações de I/O (input-output).

Exemplos comuns de fontes de erros são os problemas de conversão de dado e a leitura de valores

de variáveis em intervalos impróprios. Para ser mais concreto, diversas matrizes no aplicativo

MaxVer têm suas dimensões definidas pelos números de parâmetros, variáveis ou pontos utilizados

pelo usuário. Se algum destes valores é lido pelo aplicativo, acidentalmente, como um valor

negativo, ocorrerão problemas. Variáveis globais do aplicativo, como estas citadas, têm que receber

tratamento cuidadoso, pois são diversas as sub-rotinas que as utilizam, e em momentos variados da

execução do programa. Algumas formas de contornar erros aplicadas pelo pesquisador são

comentadas posteriormente.

3.3.O programa MaxVer

O programa MaxVer é o resultado das tentativas iniciais do pesquisador em fornecer, a um possível

usuário, uma interface gráfica amigável para o uso do Método da Estimativa do Erro das Variáveis.

Page 11: BASEADO NO MÉTODO DA ESTIMATIVA DO ERRO ... - feq.unicamp…nunhez/download/pesquisa/ic/relatorio_lucas.pdf · fundamentados na linguagem Fortran 90/95 [2]. Originalmente este projeto

11

Dados experimentais são lidos pelo aplicativo através de diálogos ou através de um arquivo-texto

e são transferidos para as rotinas numéricas, que realizam o ajuste dos parâmetros de um modelo

matemático pré-definido ou definido pelo próprio usuário. Comentamos a seguir as características

do aplicativo e, em seguida, os cuidados relacionados às operações de entrada e saída de dados (I/O

input-output), maior fonte de problemas computacionais.

Os seguintes menus estão disponíveis na janela principal do aplicativo MaxVer (figura 1): 1.

Ajuste: o menu principal do programa, com o qual o usuário pode carregar dados experimentais e

ajustar parâmetros segundo as opções definidas; 2. Editar: menu com os recursos copiar, colar e

recortar dados da área de trabalho; 3. Modelo: menu no qual o usuário escolhe um modelo pré-

definido ou carrega seu próprio modelo matemático; 4. Dados: em que todos os dados de entrada e

resultados de cálculo são acessados; 5. Janela: menu com a relação de janelas gráficas abertas; e 6.

Ajuda: menu contendo os tópicos de ajuda, informações adicionais e créditos.

Figura 6 – Diálogo de escolha de modelo pré-definido

O menu ajuste aciona as sub-rotinas que comandam a entrada de dados no programa e

iniciam, em momento apropriado, o trabalho das rotinas numéricas de ajuste. Como a entrada dos

dados experimentais (pontos, desvios e aproximações iniciais dos parâmetros) pode ocorrer de duas

maneiras distintas, por arquivo-texto ou digitando em tabela no próprio aplicativo, há uma sub-

rotina que gerencia a atividade dos diálogos de entrada (figuras 2, 3 e 4). O diálogo da figura 5 está

associado à definição de algumas opções de ajuste: o fator w de amortização, a precisão de cálculo

ou o erro máximo permitido e o número máximo de iterações.

O menu editar contém chamadas para as sub-rotinas padrão de cópia, colagem e recorte de

áreas da tela. A utilização destas sub-rotinas tem causado problemas de funcionamento no

aplicativo, de causas desconhecidas, e por isto este menu permanece desabilitado. A utilidade deste

menu “padrão” é discutível em um aplicativo do tipo QuickWin, porque as janelas gráficas geradas

ou envolvem texto comum ou figuras do tipo bitmap, somente.

O menu modelo contém chamadas para as sub-rotinas que definem a função matemática de

ajuste. Os modelos pré-definidos estão associados ao diálogo da figura 6, em que o usuário tem

acesso à informações específicas sobre a função de ajuste e pode definir nomes para suas variáveis e

Page 12: BASEADO NO MÉTODO DA ESTIMATIVA DO ERRO ... - feq.unicamp…nunhez/download/pesquisa/ic/relatorio_lucas.pdf · fundamentados na linguagem Fortran 90/95 [2]. Originalmente este projeto

12

parâmetros. Um outro diálogo é acessado quando o usuário pretende carregar um modelo

personalizado no aplicativo. A utilização de modelos personalizados sempre foi o principal

requisito dentre os recursos que o pesquisador imaginou, inicialmente, disponíveis para o usuário.

O reconhecimento em tempo real de execução, de uma função carregada pelo usuário, deve-

se à utilização e adaptação de um módulo de domínio público (Fortran Parser Module). Um

arquivo contendo o módulo, instruções e conceitos relacionados pode ser encontrado no endereço:

http://www.its.uni-karlsruhe.de/~schmehl/. A interpretação de uma função digitada como variável

de texto (tipo character, em Fortran), envolve o reconhecimento de caracteres; a compilação em

tempo de execução, do texto digitado, em “código de bits” (byte code); e finalmente a avaliação

eficiente do byte code para diversos valores das variáveis digitadas [8, 9].

Figura 7 – Janela gráfica de resultados

O menu dados contém as chamadas de janelas gráficas que apresentam dados de entrada e

resultados e, ainda, a chamada dos diálogos de construção de gráficos (figuras 7 e 8). São duas as

sub-rotinas que gerenciam as janelas gráficas de dados que, na verdade, são típicas janelas de texto

cujas propriedades de tela podem ser alteradas e, ainda, podem receber bitmaps. Janelas deste tipo,

em um aplicativo QuickWin, são denominadas child windows, e suas propriedades podem ser

ajustadas por variáveis declaradas nos módulos de apoio do pacote “Compaq Visual Fortran” [2].

Os diálogos de construção de gráficos são habilitados quando o usuário utiliza um modelo de 2 ou 3

variáveis, e podem traçar os gráficos das curvas ou superfícies dos modelos já ajustados.

O menu ajuda, por enquanto, não está associado a um conjunto de tópicos de ajuda e

permanece com algumas de suas opções desabilitadas. O desenvolvimento de arquivos de ajuda

Page 13: BASEADO NO MÉTODO DA ESTIMATIVA DO ERRO ... - feq.unicamp…nunhez/download/pesquisa/ic/relatorio_lucas.pdf · fundamentados na linguagem Fortran 90/95 [2]. Originalmente este projeto

13

também é restrito para um aplicativo QuickWin, e este é mais um dos motivos pelos quais o

pesquisador julga interessante programar o MaxVer como um verdadeiro aplicativo de Windows. A

disponibilidade de tópicos de ajuda é essencial para orientar os passos iniciais do usuário e cobrir as

possíveis falhas de acessibilidade e funcionalidade do aplicativo.

3.4.Diálogos e problemas de I/O

Os diálogos são os recursos visuais de interface mais utilizados no programa MaxVer, em parte

porque o aplicativo do tipo QuickWin não tem restrições quanto ao uso destes recursos (excetuando-

se a impossibilidade de uso simultâneo de dois ou mais). Todas as operações de input, entrada de

dados, são realizadas via diálogo; as operação de output, saída de dados, são realizadas tanto em

diálogos (mensagens ao usuário e gráficos) como em janelas gráficas (child windows).

Figura 8 – Diálogo com gráfico de modelo F ajustado

Os motivos que justificam o amplo uso de diálogos são a facilidade do controle das rotinas

relacionadas e o direcionamento que o programador pode impor às ações do usuário. Quando um

diálogo é acionado no menu do programa MaxVer, duas ou mais sub-rotinas entram em operação.

Uma delas estrutura o diálogo, impondo aos seus controles algum tipo de configuração, enquanto

outra ficará responsável por responder prontamente a um comando do usuário. Existem controles de

diálogo que exigem sub-rotinas particulares.

Os controles ActiveX são “automation objects” [2] que exigem sub-rotinas particulares.

Dois controles deste tipo são utilizados no aplicativo MaxVer: o controle AvisGrid, responsável

pela tabela de entrada de dados (figura 4) e o controle Avis2D, responsável pelos gráficos (figuras 8

e 10). São controles disponibilizados em um dos componentes do pacote Compaq Visual Fortran.

Em geral a utilização de controles ActiveX requer a inclusão de módulos de apoio.

Como as operações de entrada de dados ocorrem em diálogos, é nas rotinas que os

controlam que devem ser tomadas as primeiras precauções quanto aos erros de execução. Vários

Page 14: BASEADO NO MÉTODO DA ESTIMATIVA DO ERRO ... - feq.unicamp…nunhez/download/pesquisa/ic/relatorio_lucas.pdf · fundamentados na linguagem Fortran 90/95 [2]. Originalmente este projeto

14

destes erros foram sanados ao longo deste semestre final de pesquisa, e o pesquisador já

desenvolveu um esboço, uma estratégia inicial de uso “seguro” de diálogos. Grande parte dos erros

de execução resultantes de falhas de programação, no entanto, só aparecem com o tempo de uso

programa e com a aplicação de diversos testes.

Quando o usuário acessa o diálogo da figura 5, e pode modificar as opções de ajuste, alguns

“controles” ou “filtros” de dados entram em ação. O programador define um conjunto de valores

que considera “ilegal” para um dado campo deste diálogo, e prepara ações que o programa realizará

caso o usuário forneça alguns destes valores. Em geral o programa lê o valor fornecido e, sendo

ilegal, substitui-o por um valor legal pré-definido.

Um primeiro controle de valor é o registro de sucesso ou falha da leitura e conversão do

valor fornecido pelo usuário. No diálogo da figura 5, as entradas do usuário são lidas como texto

(string ou character) e têm que ser convertidas em entradas numéricas (real(8) ou integer). Se o usuário

digitar um caractere indevido (letra ou pontuação) este controle acusará falha de conversão. Um

segundo controle de valor é o intervalo de validade associado a cada campo, definido

arbitrariamente pelo programador. Caso a leitura e a conversão da entrada do usuário foram bem

sucedidas, este segundo controle checa a posição desta entrada em relação ao intervalo legal. Se a

entrada do usuário estiver fora do intervalo legal, é substituída por um valor pré-definido.

Essa atitude é essencial para o aplicativo MaxVer: se o usuário entra, acidentalmente, com

um valor muito pequeno no campo erro máximo permitido, as rotinas numéricas de ajuste

trabalharão indefinidamente e o aplicativo poderá travar, sem alcançar precisão de cálculo

suficientemente alta. Em geral todos os campos de diálogo são potenciais fontes dos run-time

errors, e têm que estar associados a procedimentos de “filtragem” de valores legais. Por outro lado,

os procedimentos de “filtragem” muito rigorosos, se resguardam o programa contra erros de

execução, reduzem a liberdade do usuário e prejudicam a interface visual.

4.APLICAÇÃO DO PROGRAMA A PROBLEMAS DE INTERESSE

São muito os casos em que modelos teóricos são utilizados para representar fenômenos reais.

Modelos consistem em expressões matemáticas com um ou mais parâmetros ajustáveis, buscando

representar as especificidades do fenômeno em questão. Em engenharia química, por exemplo, a

Termodinâmica e o conjunto de ciências ligadas aos Fenômenos de Transporte, são áreas em que a

utilização de modelos ajustáveis é freqüente. Cumprindo a quinta e última etapa proposta no projeto

de pesquisa, aplicamos o programa MaxVer no problema de ajuste de dois modelos físicos de

interesse: uma equação de medida de vazão em um vertedor triangular e um modelo de difusão de

soluto em partículas esféricas.

Page 15: BASEADO NO MÉTODO DA ESTIMATIVA DO ERRO ... - feq.unicamp…nunhez/download/pesquisa/ic/relatorio_lucas.pdf · fundamentados na linguagem Fortran 90/95 [2]. Originalmente este projeto

15

4.1.Modelo de vazão em Vertedor Triangular

Um vertedor é um dispositivo apropriado para medidas de vazão em canais, e consiste basicamente

de uma barreira ou obstrução com algum tipo de abertura para escoamento do fluido. Juntamente

com os bocais, medidores Venturi, medidores ISA, rotâmetros e outros, faz parte do conjunto de

medidores de vazão, dispositivos que determinam a quantidade em peso ou volume de fluido que

escoa, em uma dada seção, por unidade de tempo [7].

Figura 9 – Esquema frontal de um vertedor triangular

O vertedor triangular é conveniente para medidas de pequenas vazões e pode ser

representado pela figura 9. Uma expressão que correlaciona a vazão Qt com a altura ou carga H do

fluxo sobre o vertedor pode ser encontrada aplicando-se convenientemente as equações de Bernoulli

(conservação de energia) e da continuidade (conservação de massa). O resultado encontrado é

teórico e despreza as contrações laterais sofridas pelo fluido escoado ao deixar o vertedor:

52215

8 2 .t HtggQ ���

� (10)

Na equação 10 � é o ângulo de cunha do vertedor e g é a gravidade local. Pode-se verificar

experimentalmente que, para um grande número de casos, o expoente de H é aproximadamente

correto, porém o seu coeficiente é cerca de 40% menor [7]. Na prática a vazão em um vertedor

triangular pode ser expressa por uma equação genérica com parâmetros ajustáveis,

experimentalmente, aos diversos casos específicos. Representamos esta equação por Q = C.H m , em

que C e m são os parâmetros ajustáveis do modelo não linear.

Tabela 1 – Ensaio com vertedor triangular [7]

H, ft 0.345 0.356 0.456 0.537 0.568 0.594 0.619 0.635 0.654 0.665

Q, cfs 0.107 0.110 0.205 0.303 0.350 0.400 0.435 0.460 0.490 0.520

Os valores de C e m podem ser calculados com o conjunto de dados da tabela 1, referente a

um ensaio de vazão encontrado na referência [7]. A tabela 2 fornece os valores ajustados segundo o

método dos Mínimos Quadrados e também com a utilização do programa MaxVer (método da

Máxima Verossimilhança). Os resultados do ajuste com MaxVer estão também na figura 7.

Page 16: BASEADO NO MÉTODO DA ESTIMATIVA DO ERRO ... - feq.unicamp…nunhez/download/pesquisa/ic/relatorio_lucas.pdf · fundamentados na linguagem Fortran 90/95 [2]. Originalmente este projeto

16

Tabela 2 – Ajuste do modelo de vazão em vertedor

Método Parâmetro C Parâmetro m ���Q2 ���H2

MQuadrados 1.395 2.437 1.437 .10-4

MaxVer 1.400829 2.444379 1.428 .10-4 7.158 .10-5

Na tabela 2 a quarta e quinta colunas apresentam os valores de ���Q2 e ���H2,

respectivamente. São as somas dos quadrados das diferenças entre os pontos experimentais e o

modelo ajustado e, portanto, são medidas diretas da qualidade do ajuste (e da representatividade do

modelo utilizado). O ajuste dos parâmetros C e m com o aplicativo MaxVer leva uma ligeira

vantagem: as somas destas diferenças são menores do que aquelas obtidas com o modelo ajustado

por Mínimos Quadrados.

4.2.Modelo de difusão de soluto em Partículas Esféricas

O fenômeno de difusão de substâncias contidas em partículas esféricas é de grande importância para

a indústria farmacêutica. Formulações como emulsões, cremes, microcapsulados em geral, todos

contêm espécies esféricas cuja taxa de liberação de princípio ativo deve ser estudada e, não raro,

controlada. Partículas orgânicas são especialmente interessantes neste meio, e a liberação da droga

anti-tumoral 5-Fluoracil contida lipossomos é discutida em [6].

A difusão de soluto em partículas orgânicas também é estudada em pesquisa conduzida

atualmente pela professora Dra. Maria Helena Andrade Santana (FEQ/Unicamp), referente à

extração de princípios ativos farmacêuticos em colunas de recheio. Sua pesquisa levantou um

conjunto de dados experimentais, ainda não publicados, com o qual é possível ajustar o modelo

estudado de difusão (10). A aplicação das rotinas numéricas do MaxVer no ajuste deste modelo foi

o primeiro emprego, com fins práticos, deste programa.

O modelo formulado é a série (10), que é comentada e demonstrada em [5], para as

seguintes condições: 1. partículas esféricas de raio constante e 2. ausência de fronteira de fase na

superfície das partículas, que implica na ausência de vagarosa transferência interfacial do fármaco

para o substrato, etapa determinante da velocidade do processo:

)exp(161 222

122 ��

nnM

Mn

t��� �

��

(10)

Na equação (10) o termo à esquerda (Mt/M ) é a fração de fármaco liberado em relação à sua

quantidade total inicial, e � é uma função do tempo, do coeficiente D de difusão integral do

substrato e do raio r0 da partícula esférica. Em particular, � pode ser escrito como � = k.t, em que k

Page 17: BASEADO NO MÉTODO DA ESTIMATIVA DO ERRO ... - feq.unicamp…nunhez/download/pesquisa/ic/relatorio_lucas.pdf · fundamentados na linguagem Fortran 90/95 [2]. Originalmente este projeto

17

é um parâmetro ajustável. A série (10) admite, ainda, as seguintes simplificações:

2/1

2/16�

��

MM t (11)

� ���

����

2/1

2/123MM t (12)

)exp(1 2262 ��

����

MM t (13)

A equação (11) é a aproximação da série para tempos bem próximos de zero, ���<< 1; a

equação (12) é a aproximação da série para tempos curtos, ��< 1; e a equação (13) é a aproximação

para tempos muito grandes, ���> 1, e corresponde ao primeiro termo da série (10). Os dados

experimentais da professora Dra. Maria Helena Andrade Santana relacionam a fração Mt/M

liberada de fármaco ao tempo t de liberação, e portanto é possível determinar o fator k ajustável do

modelo (10). Definimos como modelo implícito F, no aplicativo MaxVer, o conjunto de equações

(10), (11) e (13), aplicadas cada uma aos intervalos convenientes de tempo, sendo a série (10)

calculada com 10.000 termos.

Figura 10 – Modelo (10) ajustado com MaxVer

Um modelo como este de difusão, cuja forma de F varia segundo o valor de uma das

variáveis, não pode ser carregado por um possível usuário no aplicativo MaxVer. O módulo

“Parser” de reconhecimento de função só aceita expressões matemáticas fechadas, e que não

envolvam elementos de programação tais como estruturas de repetição e/ou decisão. A utilidade do

aplicativo não é prejudicada por esta restrição: basta que o possível usuário utilize, uma por vez,

cada uma das expressões (11), (12) e (13) no programa, obtendo os respectivos parâmetros k

ajustados. O comportamento geral do modelo (10) pode então ser obtido pela análise dos gráficos

dos modelos (11), (12) e (13) ajustados.

Page 18: BASEADO NO MÉTODO DA ESTIMATIVA DO ERRO ... - feq.unicamp…nunhez/download/pesquisa/ic/relatorio_lucas.pdf · fundamentados na linguagem Fortran 90/95 [2]. Originalmente este projeto

18

5.REFERÊNCIAS BIBLIOGRÁFICAS

[1] T. F. Anderson, E. A. Abrams, D. S. Greens II. Evaluation of parameters for nonlinear,

thermodynamic models. AIChE, 24 (1):20, 1978.

[2] M. Etzel, K. Dickinson. Digital Visual Fortran programmer’s guide. Digital Press, 1999.

[3] H. I. Britt, R. H. Luecke. The estimation of parameters in nonlinear, implicit models.

Technometrics, 15 (2):233, 1973.

[4] N. R. Drapper, H. Smith. Applied Regression Analysis. John Wiley & Sons Inc., 1981, 2nd

Edition.

[5] R. H. Guy e outros. Calculations of drug release rates from spherical particles. International

Journal of Pharmaceutics, 11: 199–207, 1982.

[6] B. Elorza e outros. Characterization of 5-fluoracil loaded liposomes prepared by reverse-phase

evaporation or freezing-thawning extrusion methods: study of drug release. Biochimica et

Biophysica Acta, 1153: 135–142, 1993.

[7] V. L. Streeter. Mecânica dos fluidos. McGraw-Hill do Brasil, 1974.

[8] S. L. Chapman. Fortran 90/95 for scientists and engineers. McGraw-Hill, 1997, 1st Edition.

[9] M. Metcalf, J. K. Reid. Fortran 90/95 Explained. Oxford University Press, 1999, 2nd Edition.