Приближенное вычисление производной - C#
Формулировка задачи:
Есть производная вида
Мы можем использовать формулу из определения производной, обозначив сколь угодно малую величину через такую же малую величину
h
Тогда мы сможем получить то, что называют the Forward Difference #### Как это реализовать? Пробовал сделать, но не очень понял и вышло что-то на подобии:
Листинг программы
- class Program
- {
- static void Main(string[] args)
- {
- double x0, X;
- x0 = Math.Cos(45);
- Console.WriteLine("Введите Шаг: ");
- X = Convert.ToDouble(Console.ReadLine());
- Console.WriteLine("Ответ: " + Diff(x0, X));
- Console.ReadLine();
- }
- static double Diff(double x0, double X)
- {
- double r1;
- double x = x0, h = X;
- return (Y1(x,h) - Y2(x) / h);
- }
- static double Y1(double x0, double X)
- {
- double x = x0, h = X;
- return x+h;
- }
- static double Y2(double x0)
- {
- double x = x0;
- return x;
- }
- }
Решение задачи: «Приближенное вычисление производной»
textual
Листинг программы
- using System;
- namespace ConsoleApplication207
- {
- internal class Program
- {
- private static void Main(string[] args)
- {
- //задаем функцию
- Func<double, double> f = x => Math.Cos(x);
- //вводим начальную точку
- Console.Write("Точка X: ");
- var x0 = double.Parse(Console.ReadLine());
- //вводим дельту
- Console.Write("dX: ");
- var dx = double.Parse(Console.ReadLine());
- //считаем производную в точке
- var df = Diff(f, x0, dx);
- Console.WriteLine("Производная: {0:0.000}", df);
- Console.ReadLine();
- }
- private static double Diff(Func<double, double> f, double x, double dx)
- {
- return (f(x + dx) - f(x)) / dx;
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д