Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace курсач
- {
- delegate double func(double x);
- class Program
- {
- static void Main(string[] args)
- {
- const double eps = 0.00001;
- Console.WriteLine("Первый корень x1:");
- Nuton((x) => 3*Math.Sqrt(x+1)-Math.Exp(x) - 0.5,(x)=>3/(2*Math.Sqrt(x+1))-Math.Exp(x),-0.99, eps);
- Console.WriteLine("Второй корень x2:");
- Nuton((x) => 3 * Math.Sqrt(x + 1) - Math.Exp(x) - 0.5, (x) => 3 / (2 * Math.Sqrt(x + 1)) - Math.Exp(x), 1, eps);
- }
- public static double Nuton(func f, func df, double a, double eps)
- {
- double xn = a;
- int counter = 0;
- func xk = (x) => x - f(x) / df(x);
- while (Math.Abs(xk(xn) - xn) > eps)
- Console.WriteLine("Итерация № {0} , Текущее приблежение к корню x = {1}", counter++, xn = xk(xn));
- xn = Math.Round(xn, 5);
- Console.WriteLine("x * = {0}", xn);
- return xn;
- }
- public static double MPD(func f, double a, double b ,double eps)
- {
- double xn = 0;
- int counter = 0;
- while (Math.Abs(b - a) > eps)
- {
- xn = (a + b) / 2;
- Console.WriteLine("Итерация № {0} , Текущее приблежение к корню x = {1}", counter++, xn);
- if (f(xn) * f(a) < 0) b = xn;
- else if (f(xn) * f(b) < 0) a = xn;
- }
- xn = Math.Round(xn, 5);
- Console.WriteLine("x * = {0}", xn);
- return xn;
- }
- public static double MPI(func f, double x, double eps)
- {
- double xn = x;
- int counter = 0;
- while (Math.Abs(f(xn) - xn) > eps)
- Console.WriteLine("Итерация № {0} , Текущее приблежение к корню x = {1}" ,counter++, xn=f(xn));
- xn = Math.Round(xn, 5);
- Console.WriteLine("x * = {0}" ,xn);
- return xn;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement