Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace ChordMethod
- {
- class Program
- {
- public void Main (string [] args) //Область x0=2, x1=10, с погрешностью e=0.001
- {
- //Стартовые данные
- int x0, x1;
- double e;
- //Ввод данных
- Console.WriteLine("-------------------Решение нелинейных уравнений методом хорд-------------------\n");
- Console.Write("Укажите первую границу отрезка, на котором будет искаться корень: ");
- x0 = Convert.ToInt32(Console.ReadLine());
- Console.Write("Укажите вторую границу отрезка, на котором будет искаться корень: ");
- x1 = Convert.ToInt32(Console.ReadLine());
- Console.Write("Укажите нужную точность: ");
- e = Convert.ToDouble(Console.ReadLine());
- //Ввод данных в уравнение
- Console.WriteLine("\nВведите коэффициенты уравнения, в формате: ax^p+bx^q+c");
- //a
- Console.Write("a = ");
- double a = double.Parse(Console.ReadLine());
- //p
- Console.Write("p = ");
- double p = double.Parse(Console.ReadLine());
- //b
- Console.Write("b = ");
- double b = double.Parse(Console.ReadLine());
- //q
- Console.Write("q = ");
- double q = double.Parse(Console.ReadLine());
- //c
- Console.Write("c = ");
- double c = double.Parse(Console.ReadLine());
- Console.WriteLine("\nУравнение имеет вид: " + a + "*x^" + p + "+" + b + "*x^" + q + "+" + c);
- //Вызов метода для проведения вычисления
- double x = method_chord(x0, x1, e);
- //Вывод найденного значения
- Console.WriteLine("\n---------------Результат решения нелинейного уравнения методом Хорд------------\n");
- Console.Write("Результат: x = ");
- Console.WriteLine (x);
- Console.ReadLine ();
- }
- //Черная коробка с вычислениями, использует метод function для вычисления
- public static double method_chord (double x_prev, double x_curr, double e)
- {
- double x_next = 0;
- double tmp;
- do {
- tmp = x_next;
- x_next = x_curr - function (x_curr) * (x_prev - x_curr) / (function (x_prev) - function (x_curr));
- x_prev = x_curr;
- x_curr = tmp;
- } while (Math.Abs (x_next - x_curr) > e);
- return x_next;
- }
- //Метод с функцией, который проводите вычисления, принимает одно значение
- public static double function (double x )
- {
- return a * (Math.Pow (x, p)) - b * (Math.Pow (x, q)) - c;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment