Upload
nguyennhan
View
213
Download
0
Embed Size (px)
Citation preview
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
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).
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.
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)
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
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
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
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.
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
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.
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
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
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
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.
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.
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
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.
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.