Resolvendo problemas reais

Sinceramente, fico decepcionado com a modinha agora de fazer aplicativo para tudo. É fantástico o mundo da computação estar mais acessível, claro!, mas os desenvolvedores tem que sempre focar em fazer coisas decentes (úteis e bem feitas) com o que aprendem.

Mas o post não é sobre desabafo e sim sobre uma novidade pra Top!Calc (minha calculadora): resolver problemas nos números reais. Direto ao exemplo:

Para resolver {x²+y²+z²=8, z=x²+y²}, basta usar o comando

solve([x, y, z], [x^2+y^2+z^2-8, x^2+y^2-z], [1, 1, 1])

, onde [1, 1, 1] é um chute inicial. Ele funciona para um sistema qualquer, com um número qualquer de variáveis e equações. O próximo passo é resolver no campo dos números complexos, mas isso fica para depois.

Como foi difícil chegar num algoritmo para isso (e não achei muita coisa pela Internet, nem na documentação de outros softwares matemáticos), resolvi deixar aqui uma discussão sobre resolução numérica real de sistemas não lineares e não quadrados.

Para acessar diretamente o código em JS: https://github.com/sitegui/topCalc/blob/master/funcoes/solver.js

[Atualização] Agora ela também resolve sistemas no campo dos complexos, basta usar o comando solveComplex

Tags: , ,

Deixe um comentário