小弟最近在编一个工程方面的计算软件,在求解非线性方程组的根时遇到了一些问题,特来向各位大神请教。
方程组如下所示(双曲线方程), s,b,h2 未知量,其他为符号为已知数
(r1-s)^2 / (r2-s)^2 - (h1-h2)^2 / b^2 - 1 = 0
(r3-s)^2 / (r2-s)^2 - (h3-h2)^2 / b^2 - 1 = 0
[b*(r3-s) / (r2-s)^2 ] / [(r3-s)^2 / (r2-s)^2-1)]^0.5 - k = 0
以往是用的 matlab 的 solve 函数来求解方程组的符号解,现在希望脱离 matlab 环境,程序能够独立运行。
最好能直接使用 C#能够调用的数学库,当前搜集到的方法有:
1.利用 Matlab 二次开发,需要电脑上安装有 Matlab 或者 mablab 环境,不方便
2.C#有第三方的 mathnet 数学库,但是只能用来解线性方程,没有非线性方程的功能
3.C++的 gsl 库,貌似是利用牛顿迭代法求的根,但只能得到一个解,并且需要事先指定初始值
4.python 的相关数学库,没有试过
请大家提供下思路,还有有什么库或者方法,最好是能像 matlab 那样计算出所有的符号解或者多个数值解来,再次感谢。