Составить таблицу ступенчатой функции - C#

Узнай цену своей работы

Формулировка задачи:

Составить таблицу ступенчатой функции. 1<=x<=2; dx=0.1; 1<=y<=10; dy=0.5. Определить отклонение q от среднего. Помогите с решением пожалуйста, вот что смог сделать сам
Листинг программы
  1. double dx = 0.1;
  2. double x = 1;
  3. {
  4. double dy = 0.5;
  5. double y = 1;
  6. {
  7. double Z = ((Math.Sin(x) + Math.Cos(y) + 2 / Math.Sin(x) * Math.Cos(y) + 4) + 4);
  8.  
  9. y += dy;
  10. }
  11. while (y <= 10);
  12. x += dx;
  13. }
  14. while (x <= 2);

Решение задачи: «Составить таблицу ступенчатой функции»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace AverageAbsoluteDeviationSample
  6. {
  7.     static internal class Program
  8.     {
  9.         static private void Main()
  10.         {
  11.             // Нижняя и верхняя границы и шаг переменной x.
  12.             double x0 = 1.0; double x1 = 2.0; double dx = 0.1;
  13.             // Нижняя и верхняя границы и шаг переменной y.
  14.             double y0 = 1.0; double y1 = 2.0; double dy = 0.5;
  15.  
  16.             // Значения функции (переменная х принимает одиннадцать значений, переменная у принимает три значения).
  17.             List<double> z = new List<double>((int)(((x1 - x0) / dx + 1) * ((y1 - y0) / dy + 1)));
  18.  
  19.             // Считаем значения функции и выводим результаты.
  20.             Console.WriteLine("-------------------------------------");
  21.             Console.WriteLine("|    x    |    y    |       z       |");
  22.             Console.WriteLine("-------------------------------------");
  23.             for (double x = x0; x < x1 + dx; x += dx)
  24.             {
  25.                 for (double y = y0; y < y1 + dy; y += dy)
  26.                 {
  27.                     // Замечание: в данном случае знаменатель можно не проверять на нулевое значение, он никогда не
  28.                     // будет равен нулю (см. определение sin и cos).
  29.                     z.Add((Math.Sin(x) + Math.Cos(x) + 2) / (Math.Sin(x) * Math.Cos(x) + 4) + 4);
  30.                     Console.WriteLine("| {0,7:F3} | {1,7:F3} | {2,13:F9} |", x, y, z.Last());
  31.                 }
  32.             }
  33.             Console.WriteLine("-------------------------------------" + Environment.NewLine);
  34.  
  35.             // Арифметическое среднее значений функции.
  36.             double zavg = z.Average();
  37.  
  38.             // Среднее абсолютное отклонение значений функции.
  39.             double q = Math.Sqrt(z.Sum(val => (Math.Abs(val - zavg)))) / z.Count;
  40.  
  41.             /*
  42.             // Если предыдущее выражение не совсем понятно, то ниже тоже самое без LINQ.
  43.  
  44.             // Сумма абсолютных отклонений значений функции.
  45.             double qsum = 0;
  46.             for (int i = 0; i < z.Count; ++i)
  47.             {
  48.                 qsum += Math.Abs(z[i] - zavg);
  49.             }
  50.             // Среднее абсолютное отклонение значений функции.
  51.             double q = Math.Sqrt(qsum) / z.Count();
  52.             */
  53.  
  54.             Console.WriteLine("Среднее абсолютное отклонение значений функции: " + q.ToString("F9") + Environment.NewLine);
  55.         }
  56.     }
  57. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы