Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace MetodNewton
- {
- class Program
- {
- static void Main(string[] args)
- {
- Console.WriteLine("Решение уравнения 2x^4-24x^2-x+8 методом Ньютона.");
- Console.WriteLine();
- double[] cor = new double[] { 0.1, 0.01, 0.001 };
- double[] a = new double[] { -4, -1, 0.1, 3.2 };
- double[] b = new double[] { -3, -0.1, 1, 4 };
- double x = 0;
- double x1;
- double max;
- double min;
- for (int c = 0; c < 3; c++)
- {
- Console.WriteLine("Значения корней при точности {0}:", cor[c]);
- int k = 0;
- for (int n = 0; n < 4; n++)
- {
- double ak = a[k];
- double bk = b[k];
- int iter = 1;
- max = Math.Max(Math.Abs(Functoin2(ak)), Math.Abs(Functoin2(bk)));
- min = Math.Min(Math.Abs(Functoin1(ak)), Math.Abs(Functoin1(bk)));
- if ((Functoin(ak) > 0 && Functoin2(ak) > 0) || (Functoin(ak) < 0 && Functoin2(ak) < 0))
- x = ak;
- else
- if (((Functoin(bk) > 0) && (Functoin2(bk) > 0)) || (Functoin(bk) < 0 && Functoin2(bk) < 0))
- x = bk;
- x1 = x - Functoin(x) / Functoin1(x);
- {
- while (Math.Abs(x1 - x) >= Math.Sqrt((2 * min * cor[c]) / max))
- {
- x = x1;
- x1 = x1 - Functoin(x1) / Functoin1(x1);
- iter++;
- }
- Console.WriteLine("Корень х{0} равен {1}. Количество итераций: {2}", n + 1, x1, iter);
- }
- k++;
- }
- Console.WriteLine();
- }
- Console.ReadLine();
- }
- public static double Functoin(double x)
- {
- double an = 2 * Math.Pow(x, 4) - 24 * Math.Pow(x, 2) - x + 8;
- return an;
- }
- public static double Functoin1(double x)
- {
- double an = 8 * Math.Pow(x, 3) - 48 * x - 1;
- return an;
- }
- public static double Functoin2(double x)
- {
- double an = 24 * Math.Pow(x, 2) - 48;
- return an;
- }
- }
- }
Add Comment
Please, Sign In to add comment