Branch |
Build |
latest |
![Build status](https://camo.githubusercontent.com/764e11b4d1c4f8824246ec0fcef7e07947cdba87eecbc55e25462d82150c7ae7/68747470733a2f2f63692e6170707665796f722e636f6d2f6170692f70726f6a656374732f7374617475732f7934347334766d6a72376e766e796b303f7376673d74727565) |
master |
![Build status](https://camo.githubusercontent.com/7cbd9d652e94f219da61068f73aa0d5d164c8c92048d3f5f0f4106bbca3df32d/68747470733a2f2f63692e6170707665796f722e636f6d2f6170692f70726f6a656374732f7374617475732f7934347334766d6a72376e766e796b302f6272616e63682f6d61737465723f7376673d74727565) |
develop |
![Build status](https://camo.githubusercontent.com/2f53aceb19c6cf17ed5d8678d8839c175fa437a785297fc3b9c04489a65cecd9/68747470733a2f2f63692e6170707665796f722e636f6d2f6170692f70726f6a656374732f7374617475732f7934347334766d6a72376e766e796b302f6272616e63682f646576656c6f703f7376673d74727565) |
Решение алгебраических уравнений любой степени с заданной точностью
var s = "x^3-2x^2-x+2";
var eps = 1e-8;
var p = Polynomial.Parse(s);
var e = new PolynomialEquation(p, eps);
e.Solve();
Assert.AreEqual(-1, e.Roots[0], 1e-7);
Assert.AreEqual(0, p.Calculate(e.Roots[0]), 1e-7);
Assert.AreEqual(1, e.Roots[1], 1e-7);
Assert.AreEqual(0, p.Calculate(e.Roots[1]), 1e-7);
Assert.AreEqual(2, e.Roots[2], 1e-7);
Assert.AreEqual(0, p.Calculate(e.Roots[2]), 1e-7);
Создание функции из строки
var s = "sin(x)";
var c = new CodeDomEval(s);
Func<double, double> f = c.Calculate;
Assert.AreEqual(0, f(0), 1e-7);
Assert.AreEqual(1, f(Math.PI / 2), 1e-7);
Assert.AreEqual(0, f(Math.PI), 1e-7);
Assert.AreEqual(Math.Sqrt(2) / 2, f(Math.PI / 4), 1e-7);
Графический интерфейс для этого и постройка графиков
![Build status](https://raw.githubusercontent.com/prekel/MyExpression/develop/MyExpression.Wpf/Screenshot.png)