Метод итерации - C#
Формулировка задачи:
Составить программу вычисления последовательности {an}, используя метод тремя
разными способами (return, ref, out). Используя метод, найти номер того элемента
итерационной последовательности, для которого выполняется условие |an| < e, где 0 < e < 0.01 задать датчиком случайных чисел. Значение x задать вводом. Значение члена
последовательности {an} вычисляется по итерационной формуле: (-1)n * (x2n/(2n)!), n = 0, ∞.
Решение задачи: «Метод итерации»
textual
Листинг программы
using System;
using System.Linq;
class Program
{
private static void Main(string[] args)
{
Console.WriteLine(Foo(2.5));
Console.ReadKey();
}
static double Foo(double x)
{
int n = 0;
double res = 0d;
double eps = new Random().Next(0, 1000)/100000d;
for(;;)
{
res = Math.Pow(-1d, n)*Math.Pow(x, 2*n)/Fact(2*n);
n++;
if (Math.Abs(res) < eps)
break;
}
Console.WriteLine("Iteration {0}",n);
return res;
}
static int Fact(int n)
{
if(n<0)
throw new ArgumentException();
if (n < 2)
return 1;
return Enumerable.Range(1,n).Aggregate((i, i1) => i*i1);
}
}