从Matlab到C#:我应该用什么来代替fsolve?

时间:2015-04-13 12:43:48

标签: c# matlab numerical-methods

我必须将Matlab脚本转换为C#。 matlab代码使用fsolve()来查找函数的固定点。

function Pr2=adiab(Pr1,Tr1,Pv1,Tv1,Pv2,k,kv,Vv,Vr)
    Pr2=(Pr1^(1/k)-Vv/Vr*Tr1/Tv1*Pr1^((1-k)/k)*(Pv2^(1/kv)/Pv1^((1-kv)/kv)-Pv1))^k;
end
% ...
Prav(i+1)=fsolve(@(Pr2) Pr2-adiab(Prav(i),Trav(i),Pa,Ta,Pr2,k,kv,Vvt,Vrt),Prav(i));

我知道我需要一个数值解算器,但有很多我不知道哪种方法最适合这个问题。

  • Math.NET有一堆根查找算法。
  • Numerical有解决非线性方程的方法:

      

    非线性方程组求解

         
        
    • 牛顿法
    •   
    • 正割方法
    •   
    • 半分法
    •   
    • 和弦方法
    •   
  • 我无法使用alglib:免费版本有GPL许可证,商业版本太贵了。

0 个答案:

没有答案