Составить таблицу ступенчатой функции - C#
Формулировка задачи:
Составить таблицу ступенчатой функции. 1<=x<=2; dx=0.1; 1<=y<=10; dy=0.5. Определить отклонение q от среднего.
Помогите с решением пожалуйста, вот что смог сделать сам
double dx = 0.1; double x = 1; { double dy = 0.5; double y = 1; { double Z = ((Math.Sin(x) + Math.Cos(y) + 2 / Math.Sin(x) * Math.Cos(y) + 4) + 4); y += dy; } while (y <= 10); x += dx; } while (x <= 2);
Решение задачи: «Составить таблицу ступенчатой функции»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; namespace AverageAbsoluteDeviationSample { static internal class Program { static private void Main() { // Нижняя и верхняя границы и шаг переменной x. double x0 = 1.0; double x1 = 2.0; double dx = 0.1; // Нижняя и верхняя границы и шаг переменной y. double y0 = 1.0; double y1 = 2.0; double dy = 0.5; // Значения функции (переменная х принимает одиннадцать значений, переменная у принимает три значения). List<double> z = new List<double>((int)(((x1 - x0) / dx + 1) * ((y1 - y0) / dy + 1))); // Считаем значения функции и выводим результаты. Console.WriteLine("-------------------------------------"); Console.WriteLine("| x | y | z |"); Console.WriteLine("-------------------------------------"); for (double x = x0; x < x1 + dx; x += dx) { for (double y = y0; y < y1 + dy; y += dy) { // Замечание: в данном случае знаменатель можно не проверять на нулевое значение, он никогда не // будет равен нулю (см. определение sin и cos). z.Add((Math.Sin(x) + Math.Cos(x) + 2) / (Math.Sin(x) * Math.Cos(x) + 4) + 4); Console.WriteLine("| {0,7:F3} | {1,7:F3} | {2,13:F9} |", x, y, z.Last()); } } Console.WriteLine("-------------------------------------" + Environment.NewLine); // Арифметическое среднее значений функции. double zavg = z.Average(); // Среднее абсолютное отклонение значений функции. double q = Math.Sqrt(z.Sum(val => (Math.Abs(val - zavg)))) / z.Count; /* // Если предыдущее выражение не совсем понятно, то ниже тоже самое без LINQ. // Сумма абсолютных отклонений значений функции. double qsum = 0; for (int i = 0; i < z.Count; ++i) { qsum += Math.Abs(z[i] - zavg); } // Среднее абсолютное отклонение значений функции. double q = Math.Sqrt(qsum) / z.Count(); */ Console.WriteLine("Среднее абсолютное отклонение значений функции: " + q.ToString("F9") + Environment.NewLine); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д