Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static void DifferenceMethod()
- {
- double begin = 0;
- double end = 12;
- double[] x = new double[N];
- double[] y = new double[N];
- double[] yt = new double[N];
- double[] e = new double[N];
- double[] p = new double[N + 1];
- double[] q = new double[N + 1];
- double h = end - begin;
- h /= N;
- x[0] = begin;
- for (int i = 1; i < N; i++)
- x[i] = x[i - 1] + h;
- for (int i = 0; i < N; i++)
- {
- double a, b, c, d;
- d = (Math.Pow(x[i], 6) - 12 * Math.Pow(x[i], 5) + 3 * Math.Pow(x[i], 4) - 2 * 12 * Math.Pow(x[i], 3) + 6 * x[i] - 2 * 12) *( h * h) / 2;
- a = 1 / 2 - x[i] * x[i] / 4 * h;
- b = 1 / 2 + h * x[i] * x[i] / 4;
- c = -(-1 + x[i] * x[i] * x[i] / 2 * h);
- if (i == N - 1) p[i + 1] = 0;
- else p[i + 1] = b / (c - a * p[i]);
- q[i + 1] = (d + a * q[i]) / (c - a * p[i]);
- }
- for (int i = N - 2; i > 0; i--)
- y[i] = p[i + 1] * y[i+1] + q[i + 1];
- for (int i = 1; i < N - 1; i++)
- {
- yt[i] = Math.Pow(x[i], 3) - 12 * Math.Pow(x[i], 2);
- e[i] = Math.Abs(yt[i]- y[i]);
- }
- Console.WriteLine("Шаг: ");
- foreach(double i in x)
- Console.Write("{0:F5} | ", i);
- Console.WriteLine("\n \n Y:");
- foreach(double i in y)
- Console.Write("{0:F5} | ", i);
- Console.WriteLine("\n \n Y точные:");
- foreach(double i in yt)
- Console.Write("{0:F5} | ", i);
- Console.WriteLine(" \n \n точность");
- foreach(double i in e)
- Console.Write("{0:F5} | ", i);
- }
- static void Main(string[] args)
- {
- DifferenceMethod();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement