CSharp False position求根 源代码
时间: 2023-09-19 08:08:22 浏览: 51
以下是C#实现的False position求根算法的源代码:
```csharp
using System;
public class FalsePosition {
public static double FindRoot(Func<double, double> f, double a, double b, double eps) {
double fa = f(a);
double fb = f(b);
if (fa * fb >= 0) {
throw new Exception("The function has the same sign at both endpoints of the interval.");
}
double x = a;
double fx = fa;
double xm, fxm;
while (Math.Abs(b - a) > eps) {
xm = (a * fb - b * fa) / (fb - fa);
fxm = f(xm);
if (fxm == 0) {
return xm;
}
if (fxm * fx < 0) {
b = xm;
fb = fxm;
} else {
a = xm;
fa = fxm;
}
x = xm;
fx = fxm;
}
return x;
}
}
```
使用示例:
```csharp
double root = FalsePosition.FindRoot(x => x * x - 2, 0, 2, 1e-6);
Console.WriteLine(root); // 输出:1.41421356237248
```
其中,第一个参数是要求根的函数,第二个和第三个参数是求根区间的左右端点,第四个参数是误差精度。函数返回值是求得的根。