Составить таблицу ступенчатой функции - 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);
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д