Метод определения минимума функции с шагом h. С использованием делегата - C#
Формулировка задачи:
Составить метод определения минимума функции y=f(x), заданной в дискретных точках отрезка [a, b] с постоянным шагом h. Используя метод, найти минимумы функций y=(sinx)^2*cosx-ln|x| , используя делегат. Шаг h и точки отрезка пользватель задает сам
Решение задачи: «Метод определения минимума функции с шагом h. С использованием делегата»
textual
Листинг программы
class Program
{
static double Func(double x)
{
//y=(sinx)^2*cosx-ln|x|
return Math.Pow(Math.Sin(x), 2) * Math.Cos(x) - Math.Log(Math.Abs(x));
}
static double GetMinimum(Func<double,double> f, double a, double b, double h)
{
double min = double.MaxValue;
for (double i = a; i <= b; i+=h)
{
double y = f(i);
if (y < min)
min = y;
}
return min;
}
static void Main(string[] args)
{
Console.WriteLine("Введите начло отрезка: ");
double a = double.Parse(Console.ReadLine());
Console.WriteLine("Введите конец отрезка: ");
double b = double.Parse(Console.ReadLine());
Console.WriteLine("Введите шаг: ");
double h = double.Parse(Console.ReadLine());
Console.WriteLine("Минимум функции на отрезке [{0},{1}] равен {2}", a, b, GetMinimum(Func, a, b, h));
Console.ReadKey();
}
}