Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev3.2.0

math_expressions

Uma biblioteca para análise e avaliação de expressões matemáticas, com suporte a números reais, vetores e aritmética básica de intervalos.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
101 mil
Curtidas
382
Pontos Pub
160

Instalar pacote

flutter pub add math_expressions

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Um pacote Flutter/Dart para análise e avaliação de expressões matemáticas, com suporte a números reais, vetores e aritmética básica de intervalos. Permite cálculos dinâmicos de fórmulas matemáticas a partir de strings, sendo ideal para calculadoras, aplicações científicas e ferramentas de análise de dados. A biblioteca é leve, multiplataforma e se integra perfeitamente em projetos Flutter. Suporta operadores padrão, funções e variáveis personalizadas, com tratamento claro de erros para entradas inválidas. Ideal para desenvolvedores que precisam de avaliação flexível de expressões matemáticas sem construir um parser do zero.

Casos de uso

  • Calculadoras científicas
  • avaliação dinâmica de fórmulas
  • Análise de dados em aplicativos
  • Ferramentas matemáticas educacionais
  • simulações físicas

Principais recursos

  • Suporta números reais e vetores
  • Aritmética intervalar básica
  • Definições de variáveis e funções personalizadas
  • Compatibilidade multiplataforma
  • Tratamento robusto de erros
  • Análise de expressão baseada em string

Indicado para

  • aplicações intensivas em matemática
  • Software educacional
  • Aplicações de engenharia e física
  • Aplicativos de calculadora
  • UIs orientadas por dados

Considerações

  • Não otimizado para computação numérica de alto desempenho
  • Limitado à aritmética de intervalos básica
  • Requer validação cuidadosa de entrada para prevenir problemas semelhantes a injeção
  • Sem suporte embutido para números complexos

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

math_expressions

A library for parsing and evaluating mathematical expressions.

  • Performs evaluations in real, vector, and interval contexts.
  • Supports expression simplification and differentiation.

math_expressions is inspired by mathExpr for Java and distributed under the MIT license.

Features

  • Evaluation of expressions in various modes: Real, Vector and Interval.
  • Parsing, simplification and differentiation of mathematical expressions.
  • Supporting most basic math functions out of the box.
  • Extensible through custom function definitions in code.
  • Well documented and tested.

This package contains a very simple command-line interpreter for real numbers:

dart pub run math_expressions:interpreter
What's not working yet?
  • Some evaluations in vector and interval space (especially functions).
  • N-dimensional vectors. Curently no more than four dimensions are supported.
  • The parser only works for real numbers.
  • Complex numbers.

Suggestions and pull requests are always welcome!

Usage

Below are two basic examples of how to use this library. There also is some additional example code available.

1. Expression creation and evaluation

This example shows how to evaluate

$\frac{(x^2+\cos y)}{3}$

for $x=2, y=\pi$

Build the expression

You can either create an mathematical expression programmatically or parse a string.

  • Create the expression programmatically:
  var x = Variable('x'), y = Variable('y');
  var xSquare = Power(x, 2);
  var yCos = Cos(y);
  var three = Number(3.0);
  Expression exp = (xSquare + yCos) / three;
  • Create the expression via the parser:
  ExpressionParser p = GrammarParser();
  Expression exp = p.parse("(x^2 + cos(y)) / 3");
Evaluate the expression
  • Bind variables and evaluate the expression as real number:
  // Bind variables:
  var context = ContextModel()
    ..bindVariableName('x', Number(2.0));
    ..bindVariableName('y', Number(math.pi));

  // Evaluate expression:
  var evaluator = RealEvaluator(context);
  num eval = evaluator.evaluate(exp);

  print(eval) // = 1.0
2. Expression simplification and differentiation

This example shows how to simplify and differentiate

$x \cdot 1 - (-5)$

  • Expressions can be simplified and differentiated with respect to a given variable:
  Expression exp = p.parse("x*1 - (-5)");

  print(exp);            // = ((x * 1.0) - -(5.0))
  print(exp.simplify()); // = (x + 5.0)

  Expression expDerived = exp.derive('x');

  print(expDerived);            // = (((x * 0.0) + (1.0 * 1.0)) - -(0.0))
  print(expDerived.simplify()); // = 1.0

Alternatives

Here are some other Dart libraries that implement similar functionality to math_expression: parsing and evaluating mathematical expressions.

  • expressions: an elegant and small library to parse and evaluate simple expressions.
  • function_tree: a library for parsing, evaluating and plotting single- and multi-variables numerical functions.

To the author's knowledge math_expressions is currently the only library supporting interval arithmetics.

Categorias

Dependências

Lista de dependências 2 itens

Repositório-fonte

Projetos que usam este pacote

Rankings