PDF de programación - Uso de .NET Framework para el Desarrollo de Software Matemático y de Ingeniería

Imágen de pdf Uso de .NET Framework para el Desarrollo de Software Matemático y de Ingeniería

Uso de .NET Framework para el Desarrollo de Software Matemático y de Ingenieríagráfica de visualizaciones

Publicado el 27 de Enero del 2021
588 visualizaciones desde el 27 de Enero del 2021
123,3 KB
7 paginas
Creado hace 17a (28/03/2007)
Uso de .NET Framework para el Desarrollo de Software Matemá-

tico y de Ingeniería

Esquivel, Gabriel A., Pellettieri, Daniel N.



Universidad Tecnológica Nacional, Facultad Regional Buenos Aires



Abstract
El presente trabajo pretende presentar un resumen
de los logros alcanzados en el desarrollo de biblio-
tecas para aplicaciones matemáticas, científicas y
de ingeniería utilizando la plataforma .NET Frame-
work y las bibliotecas gráficas DirectX de Micro-
soft.

Palabras Clave
Bode – Clases - C# - Estructuras - FFT - Fourier -
GDI – IDE - Instancia - Laplace - Nyquist- .NET
Framework - POO – Parser – Realimentación -
String - Tipo de dato - Visual Basic - Visual Studio
2005

Introducción
Durante el dictado de la asignatura Electró-
nica Aplicada II (en FRBA de la UTN) es
frecuente estudiar el comportamiento de los
circuitos electrónicos mediante análisis grá-
ficos que responden a las ecuaciones circui-
tales.

Desafortunadamente no todo el software
disponible hace algunos años atrás permitía
realizar esto de forma efectiva y simple, sin
mencionar el costo del software especiali-
zado, que por lo general se halla fuera del
alcance de los alumnos.

El objetivo inicial en ese entonces fue poder
trazar gráficas de Bode para funciones ra-
cionales de variable compleja, a partir de la
especificación de sus polos y ceros, utili-
zando una aplicación Windows realizada en
Visual Basic, pero los buenos resultados
obtenidos derivaron en el trabajo que aquí
se describe.

Elementos del Trabajo y metodología
Como lenguaje de programación en un
principio se utilizó Visual Basic 6.0, inten-



tando con éste graficar funciones matemáti-
cas de diferente índole.

A fines de 2003 el software denominado
para ese entonces BodeViewer permitía
graficar funciones a partir de polos y ceros
o de su expresión algebraica, en 2 o 3 di-
mensiones. Incluso era posible obtener grá-
ficas de Nyquist y lugar de raíces para las
funciones racionales, o buscar las raíces
reales en forma interactiva por diferentes
métodos.

Sin embargo, el desarrollo de la aplicación
con programación estructurada impuso mu-
chísimas limitaciones, sobre todo para la
expansión del soft, ya que cada mejora
agregada implicaba la modificación de gran
parte del código.

La inclusión del software en un proyecto de
desarrollo patrocinado por Microsoft a co-
mienzos de 2004, motivó la necesidad de
migración a un lenguaje relativamente nue-
vo llamado C# (léase C sharp) que estaba
montado sobre una plataforma muy robusta
denomina .NET Framework.

Esto implicó el cambiar el paradigma de
programación, adoptando desde ese mo-
mento POO 1 (programación orientada a
objetos), y obligó a reescribir el código
completo, propiciando todo tipo de mejoras.

Sin embargo, diferentes desarrollos parale-
los implementados en visual Basic .NET
nos brindaron más experiencia en este últi-
mo. Esa es la razón por la cual el código se
rescribió definitivamente en Visual Ba-

1 Programación Orientada a Objetos

sic.NET, y dado que ambos se compilan en
el lenguaje intermedio denominado IL 2, el
resultado obtenido es tan eficiente y estable
como si fuese escrito en C#.

Desde el punto de vista de un programador,
el .NET Framework ofrece una vasta y ro-
busta base de desarrollo que permite crear
tanto aplicaciones como bibliotecas (archi-
vos con extensión .DLL) de la más variada
índole. En cuanto al entorno de desarrollo
(IDE3 por sus siglas en ingles) denominado
Visual Studio 2005, ofrece un entorno muy
amigable y a la vez potente por ofrecer una
gran variedad de herramientas útiles para el
programador.

Con respecto al código, fue posible crear en
forma simple y eficaz clases y estructuras
básicas para los números complejos y de-
más tipos básicos, y a la vez contar en éstos
con operadores y funciones que permiten
resolver las más variadas expresiones ma-
temáticas.

Por ejemplo, para definir el tipo de un nú-
mero complejo se puede escribir una estruc-
tura simple como la siguiente:

Public Structure Complex

Public Real As Double
Public Imaginary As Double

Public Shared Operator +(ByVal
Z1 As Complex, ByVal Z2 As Complex)
As Complex
Return New Complex(Z1.Real
+ Z2.Real, Z1.Imaginary +
Z2.Imaginary)
End Operator

Public Shared Operator -(ByVal
Z1 As Complex, ByVal Z2 As Complex)
As Complex
Return New Complex(Z1.Real
- Z2.Real, Z1.Imaginary -
Z2.Imaginary)
End Operator
End Structure

2 IL: Intermediate Language. Lenguaje intermedio al
que son compilados las diferentes secuencias de
código de alto nivel (VB .Net, C#, J#, etc.) de .Net
3 Integrated Development Environment

En éste ejemplo básico la estructura posee
dos variables miembro o campos ( Real e
Imaginary) que almacenarán respectiva-
mente la parte real e imaginaria del número
complejo al que representan.

Además, se han definido en éste caso dos
operadores, con lo cual podremos de ahora
en adelante en nuestro código sumar y res-
tar variables complejas como si de cual-
quier otro tipo numérico se tratase, por
ejemplo:

Sub CodigoCualquiera()
Dim a, b, c As Complex

a.Real = 10
b.Imaginary = 5
c = a + b

End Sub

Si se observa la penúltima línea, a la varia-
ble c se le asigna el resultado de la suma de
a con b, mediante el uso del operador +
definido dentro de la estructura, y con una
sintaxis que no podía ser más clara.

Es más, es posible darle aún mayor versati-
lidad a la estructura si en lugar de campos
utilizamos propiedades, ya que éstas se
comportan en parte como campos, pero
admiten además la inclusión de código, con
lo cual se le brinda mayor operatividad a
éste pseudo-campo.

También reutilizamos y reemplazamos
miembros heredados, como por ejemplo la
función ToString, la cual ahora devuelve un
, donde i es la
string con el formato RI i
unidad imaginaria, R es la parte real e
I la
imaginaria del número complejo.

Después de todas las modificaciones y
agregados, y tras renombrarla a
plexUndefinied la estructura adquirió la
siguiente apariencia que ejemplificamos en
la Fig. 1

Com-



La creación de una biblioteca para operar
con números complejos no es tan difícil
después lo visto, por lo que después de cier-
to tiempo se obtuvo un arsenal completo de
clases accesorias que permitan manipular
datos de éste y de otros tipos, así como pre-
sentar los resultados en la forma deseada.

Para poder obtener funciones a partir de
expresiones expresadas en la simbología
matemática convencional, se creó una clase
con métodos capaces de “parsear” 4 strings5,
además de toda una arquitectura de clases
que representan a funciones matemáticas y
son administradas en forma centralizada por
ésta. Ello permitió que las funciones pudie-
ran ser compuestas, es decir, tener funcio-
nes que dependen de otras funciones.

También se tuvo en cuenta la necesidad de
prever futuros tipos de funciones que no
necesariamente tuviesen como base una
expresión matemática habitual, como por
ejemplo las funciones expresadas mediante
la Transformada de Laplace, que se pueden
definir a partir de sus polos y ceros, y las
que se les dio soporte en éstas bibliotecas.

Para la visualización de las funciones y
como una forma extra de verificar los resul-
tados obtenidos, se crearon complejas bi-
bliotecas de controles a los que se denomi-
nó Visualizadores, los que aceptan datos
con diferentes formatos, y son capaces de
presentar los resultados con el estilo o esca-
la requerida por el investigador.

La versatilidad de .NET Framework junto
al entorno de desarrollo permitieron la
construcción de herramientas accesorias
para el análisis de funciones y las graficas
2D, como por ejemplo clases que realizan el
análisis FFT 6, o el caso de una clase para
manipular cursores. También se han des-
arrollado herramientas de Zoom para inter-

4 Parsing: Mecanismo que permite analizar una se-
cuencia, determinar su estructura y “traducirla”
5 Cadenas de caracteres
6 Fast Fourier Transform (Transformada Rápida de
Fourier)

Figura 1: Diagrama de clases de la Estructura

ComplexUndefinied



Como puede apreciarse, el uso de propieda-
des permite disponer de otras características
de un número complejo, como ser el módu-
lo y su argumento, que se (calculan sin que
el usuario se dé cuenta) a partir de la parte
real e imaginaria almacenadas en la estruc-
tura.

En cuanto a los métodos implementados,
existe una gran variedad de los mismos. El
método GetConjugated, por ejemplo, per-
mite obtener una instancia con el valor con-
jugado del número complejo examinado.
FromString,
Otro ejemplo es el método
que permite establecer los valores internos a
partir de una cadena de caracteres.


actuar cómodamente con las gráficas, y
objetos que permiten la búsqueda de raíces
reales dentro de un intervalo dado, presen-
tando una gran variedad de opciones de
configuración que pueden ser establecidas
fácilmente por el usuario.

Finalmente, es preciso destacar que, me-
diante el uso de las bibliotecas graficas Di-
rectX7 de Microsoft (las que usualmente se
utilizan para juegos de PC de gran veloci-
dad), fue posible obtener en forma más que
satisfactoria graficas 3D de funciones de 2
variables y funciones de variable compleja,
y estas podían ser manipulas prácticamente
en tiempo real por el .usuario

Resultados
La fig. 2 muestra el aspecto de la aplicación
principal.


sentando los datos de dos funciones reales,
más precisamente un coseno de amplitud
unitaria y una parábola cuya expresión es:
y =
0,01
Dichas funciones se evalúan en el intervalo
)
(
0;10 :

- +
x
2



1

x

Figura 3: Visualización en 2D de las funciones
1

x=(cid:21
  • Links de descarga
http://lwp-l.com/pdf18774

Comentarios de: Uso de .NET Framework para el Desarrollo de Software Matemático y de Ingeniería (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad