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 :

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"... - Veja mais em https://educacao.uol.com.br/disciplinas/matematica/teorema-de-pitagoras-2-catetos-e-hipotenusa.htm?cmpid=copiaecola
Em um triângulo retângulo a soma dos quadrados dos catetos é igual ao quadrado da hipotenusa",... - Veja mais em https://educacao.uol.com.br/disciplinas/matematica/teorema-de-pitagoras-2-catetos-e-hipotenusa.htm?cmpid=copiaecola

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.

  1. Complex32 Hypotenuse(Complex32 a, Complex32 b)

  2. float Hypotenuse(float a, float b)

  3. Complex Hypotenuse(Complex a, Complex b)

  4. double Hypotenuse(double a, double b)

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:


José Carlos Macoratti