c# - 如何将方程式转换为单个变量的公式?

标签 c# .net math logic expression-trees

如何将方程式转换为单个变量的公式?我正在考虑如下数学方程式:

c^2 = a^2 + b^2

我想要一个可以处理任何公式的函数,并给我各个变量公式。上面的等式将产生以下结果:

a = (c^2 - b^2)^0.5
b = (c^2 - a^2)^0.5
c = (a^2 + b^2)^0.5

我还想开始:

a = (c^2 - b^2)^0.5

和输出:

b = (c^2 - a^2)^0.5
c = (a^2 + b^2)^0.5

我看过表达式树,但我无法想象它是如何工作的。我想要一个 .NET(C#、VB.NET 或 F#)解决方案。有任何想法吗?

类似于:

public string[] GetFormulas(string equation)
{
   ...
}

谢谢。

最佳答案

符号方程求解是一个复杂的问题,许多方程没有封闭解。自己写 Computer Algebra System不是微不足道的,但您可以为简单的方程式编写程序。

您必须构建输入字符串的表达式树并定义用于操作表达式树的转换规则。为了求解一个变量,您可以在表达式树的空间上执行搜索(在良好的启发式引导下保持运行时间可接受),表达式树可以通过多次应用从原始树派生 转换规则。

关于c# - 如何将方程式转换为单个变量的公式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/760604/

相关文章:

c# - Encoding.Default 在 .NET 中如何工作?

c# - 序列化列表<T>问题

c# - 坚持解析

python - 如何使 scipy.interpolate 给出超出输入范围的推断结果?

c# - 将程序集反编译到项目中

C# 单例模式和 MEF

c# - 语言学习语音识别工具

c# - AWS Lambda 中的空白环境变量

algorithm - 使用堆排序可以排序的元素数量?

php - 我如何在 PHP 中找到所有加起来等于给定总和的 N 个单位数、非重复数字集?