C# - Usando a biblioteca Math.NET (.Net Core)
Hoje vou apresentar o projeto de código aberto Math.NET que podemos usar para realizar diversos tipos de cálculos na plataforma .NET. |
O projeto Math.NET é uma iniciativa de código aberto para construir e manter kits de ferramentas que abrangem a matemática fundamental, necessidades avançadas mas também as necessidades diárias dos desenvolvedores .Net.
O projeto apresenta diversas bibliotecas :
Math.NET Numerics - Fornece métodos e algoritmos para cálculos numéricos científicos, engenharia e para uso diário. Os tópicos cobertos incluem funções especiais, álgebra linear, modelos de probabilidade, números aleatórios, interpolação, transformações integrais e muito mais.
Math.NET Symbolics - é uma biblioteca básica de álgebra computacional opensource para .Net e Mono, escrita inteiramente em F#.
Math.NET Filtering - Fornece um kit de ferramentas para o processamento digital de sinais, oferecendo uma infra-estrutura para o projeto de filtros digitais, aplicando esses filtros a fluxos de dados usando conversores de dados, bem como geradores de sinais digitais.
Math.NET Spatial - Pretende tornar-se uma biblioteca de geometria para .NET e Mono.
Neste artigo vou mostrar como usar a biblioteca Math.NET Numerics e realizar alguns cálculos usando os métodos estáticos contidos em SpecialFunctions.
A Math.NET Numerics faz parte da iniciativa Math.NET e esta disponível gratuitamente sob a licença MIT/X11. Ele é voltado para o Microsoft .Net 4.0 e superior, incluindo o Mono e o .Net Standard 1.3 e superior (com versões do .Net Standard 2.0). Além de uma implementação puramente gerenciada, também suporta otimização de hardware nativa.
Os pacotes Nuget deste recurso são:
Para poder usar os recursos da Math.NET Numerics no Visual Studio com a linguagem C# basta incluir uma referência ao pacote Nuget MathNet.Numerics.
Recursos Usados:
Criando o projeto Console no .NET Core
Abra o VS 2017 Community e crie um projeto usando o template .NET Core -> Console App(.NET Core) informando o nome MathNET.FuncoesEspeciais;
A seguir via menu Tools-> Manage Nuget Packages for Solution inclua o pacote MathNet.Numerics no projeto:
1- Vamos calcular o fatorial de um número inteiro
Na matemática, o fatorial de um número natural n, representado por n!, é o produto de todos os inteiros positivos menores ou iguais a n.
Para calcular o fatorial de um número usamos o método SpecialFunctions.Factorial(n).
Este método calcula a função fatorial x -> x! de um número inteiro > 0. A função pode representar todos os números até 22! exatamente e todos os números até 170! usando uma representação dupla.
Inclua os seguintes namespaces no arquivo Program.cs :
using System;
using MathNet.Numerics;
A seguir inclua o código abaixo no método Main()
Executando o projeto iremos obter o seguinte resultado:
2 - Vamos calcular o coeficiente binomial
Vejamos a definição de coeficiente binomial
"Sendo n e p dois números naturais , chamamos de coeficiente binomial de classe p, do número n, o número , que indicamos por (lê-se: n sobre p). Podemos escrever:
fonte: https://www.somatematica.com.br/emedio/binomio/binomio1.php
Assim, inclua o código abaixo no método Main() do arquivo Program.cs :
A seguir crie o método CalcularCoeficienteBinomial() conforme mostrado abaixo:
Executando o programa iremos obter:
3 - Vamos calcular a hipotenusa
Em um triângulo retângulo a soma dos quadrados dos catetos é igual ao quadrado da hipotenusa.
Existem 4 sobrecargas para o método que permite calcular a hipotenusa.
Vamos usar a última opção que permite calcular a hipotenusa de um triãngulo retângulo que retorna um double. O teorema nos leva à fórmula : (a, b) -> sqrt (a ^ 2 + b ^ 2) que pode ser obtido usando o método SpecialFunctions.Hypotenuse(c1,c2).
Inclua o código abaixo no método Main() do arquivo Program.cs :
Crie o método CalcularHipotenusa() usando o código abaixo:
Executando o programa iremos obter:
Além desses métodos temos diversos outros métodos que podemos usar. Consulte a documentação da API neste link: https://numerics.mathdotnet.com/api/MathNet.Numerics/
Em outro artigo irei abordar outros recursos deste projeto.
Pegue o projeto aqui : MathNET.FuncoesEspeciais.zip
"Há um só corpo e um só Espírito, como também
fostes chamados em uma só esperança da vossa vocação;
Um só Senhor, uma só fé, um só batismo;
Um só Deus e Pai de todos, o qual é sobre todos, e por todos e em todos vós."
Efésios 4:4-6
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET
VB - Avaliador de expressões numéricas - Macoratti
VB - Avaliando expressões matemáticas - Macoratti
C# - Avaliando Expressões Matemáticas - Macoratti