Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 10.11.2015
Сообщений: 9

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

10.11.2015, 14:24. Показов 3015. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Составить таблицу ступенчатой функции. 1<=x<=2; dx=0.1; 1<=y<=10; dy=0.5. Определить отклонение q от среднего.

Помогите с решением пожалуйста, вот что смог сделать сам
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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);
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.11.2015, 14:24
Ответы с готовыми решениями:

Составить таблицу ступенчатой функции
Помогите пожалуйста, не уверен в правильности... Составить таблицу ступенчатой функции. -3&lt;=a&lt;=3; da = 1.5. x изменяется от 5 до...

Вычислить значение функции заданной графически и составить таблицу значений этой функции
Доброго дня всем, очень необходима ваша помощь, нужно: Написать программу, которая по введенному значению аргумента вычисляет значение...

Построить таблицу значений для функции. Табулирование функции
Помогите, пожалуйста, уже ничего не соображаю Построить таблицу значений для функции f (x) = ctg(x) на отрезке с числом разбиений...

5
 Аватар для Melif
76 / 67 / 47
Регистрация: 26.03.2015
Сообщений: 205
10.11.2015, 15:16
Примерно так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 {
            int N = 0;
            double x = 1;
            double y = 1;
            double [] Zi = new double [1000];
            double Zav = 0;
            double qN = 0;
            double q = 0;
            int i=0;
            int j = 0;
 
            //считаем значения Z, "прогоняя" все х и все y по формуле
            for (x=1;x<2.1;x+=0.1)
            {
                for (y=1;y<10.5;y+=0.5)
                {
                    Zi[i] = ((Math.Sin(x) + Math.Cos(y) + 2 / Math.Sin(x) * Math.Cos(y) + 4) + 4);
                    Console.WriteLine("x=" + x.ToString() + " y=" + y.ToString() + " Z=" + Zi[i].ToString()+"\n"); //тут получается как раз таблица значений. В этом примере она только выводится на экран, а сохраняются только значения Z
                    N++;
                    i++;
                }
            }            
 
            //считаем среднее значение Z
            for ( j = 0; j<N; j++)
            {
                Zav = Zav + (Zi[j] / N);               
            }
 
            //считаем сумму отклонений  Z от среднего
            for (j =0; j<N; j++)
            {
                qN = qN + Math.Abs(Zi[j] - Zav);
            }
 
            //считаем итоговое значение
            q = Math.Sqrt(qN) / N;
 
            Console.WriteLine("q " + q.ToString());            
            Console.ReadKey();
        }
1
 Аватар для Alterex
26 / 12 / 6
Регистрация: 06.11.2015
Сообщений: 37
11.11.2015, 03:16
Первая ошибка.
Цитата Сообщение от Vladislav_77 Посмотреть сообщение
double Z = ((Math.Sin(x) + Math.Cos(y) + 2 / Math.Sin(x) * Math.Cos(y) + 4) + 4);
Цитата Сообщение от Melif Посмотреть сообщение
Zi[i] = ((Math.Sin(x) + Math.Cos(y) + 2 / Math.Sin(x) * Math.Cos(y) + 4) + 4);
Вы не правильно реализовали функцию.

Вот так дана функция:
https://www.cyberforum.ru/cgi-bin/latex.cgi?z=\frac{sin(x)+cos(y)+2}{sin(x)cos(y)+4}+4

А вот то, что считаете вы:
https://www.cyberforum.ru/cgi-bin/latex.cgi?z=sin(x)+cos(x)+\frac{2}{sin(x)}+4+4

Нужно как-то так:
C#
1
z[i] = (Math.Sin(x) + Math.Cos(x) + 2) / (Math.Sin(x) * Math.Cos(x) + 4) + 4
Надеюсь, с приоритетом математических операций (в математике!!!) у вас все в порядке, а ошибка только в приоритете операторов C#, потому см. Приоритет и порядок вычислений.

и далее у вас далее серьезная ошибка
1
0 / 0 / 0
Регистрация: 10.11.2015
Сообщений: 9
11.11.2015, 08:54  [ТС]
Не мог бы ты помочь исправить ошибки, буду очень благодарен)
0
 Аватар для Melif
76 / 67 / 47
Регистрация: 26.03.2015
Сообщений: 205
11.11.2015, 16:06
Alterex, да, спасибо. Ошибка моя в том, что не глядя скопировал функцию у топик-стартера, ступил

C#
1
 Zi[i] = (Math.Sin(x) + Math.Cos(y) + 2 )/ (Math.Sin(x) * Math.Cos(y) + 4) + 4);
А какую еще ошибку ты видишь?
0
 Аватар для Alterex
26 / 12 / 6
Регистрация: 06.11.2015
Сообщений: 37
12.11.2015, 04:12

Не по теме:

Не дописал вчера, отвлекся и забыл... И про "серьезную ошибку" случайно попало.


Цитата Сообщение от Melif Посмотреть сообщение
А какую еще ошибку ты видишь?
В общем это не совсем ошибка. Просто мне кажется странным, как вы считаете среднее арифметическое. Сравните результаты, чтобы понять, что к чему, когда и какой метод лучше использовать:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
double avg = 0;
 
Console.WriteLine("Среднее арифметическое очень малениких чисел");
double[] z = new[] { 5e-324, 6e-324, 7e-324 };
foreach (var v in z)
{
    avg += v / z.Length;
}
Console.WriteLine("Ручной способ 1 : " + avg);
foreach (var v in z)
{
    avg += v;
}
avg /= z.Length;
Console.WriteLine("Ручной способ 2 : " + avg);
Console.WriteLine("Метод Average   : " + z.Average() + Environment.NewLine);
 
Console.WriteLine("Среднее арифметическое очень больших чисел");
z[0] = 1.7e308; z[1] = 1.6e308; z[2] = 1.5e308;
foreach (var v in z)
{
    avg += v / z.Length;
}
Console.WriteLine("Ручной способ 1 : " + avg);
foreach (var v in z)
{
    avg += v;
}
avg /= z.Length;
Console.WriteLine("Ручной способ 2 : " + avg);
Console.WriteLine("Метод Average   : " + z.Average() + Environment.NewLine);
Enumerable.Average(IEnumerable<Double>) использует алгоритм подобный второму способу. Полагаю это более оптимальный по производительности способ (делим всего один раз). И если нет оснований предполагать, что в результате суммирования произойдет переполнение, то лучше использовать второй способ.

Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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);
        }
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.11.2015, 04:12
Помогаю со студенческими работами здесь

Составить таблицу ступенчатой функции
Дошел до ступенчатой функции, не могу понять как делать,помогите y=(tgx*sqrt(p^2-x^2))/(ln(p+2)) , 0&lt;=x&lt;1;dx=0.2; ...

Составить таблицу ступенчатой функции. 1<=x<=2; dx=0.1; 1<=y<=10; dy=0.5. Определить отклонение q от среднего
Помогите с ошибками double x; double y = 1; double z = 0; double N = 0; double z1 = 0; int i = 1; double q = 0; for (x =...

Составить таблицу ступенчатой функции, определить среднеквадратичное отклонение
Составить таблицу ступенчатой функции xk&lt;=x&lt;=xk; dx=0.1; yn&lt;=y&lt;=yk; dy=0.5. Определить среднеквадратичное отклонение ...

Составить таблицу ступенчатой функции, не все варианты выводятся
необходимо составить таблицу ступенчатой функции,т.е вывести значения функции после каждой итерации. 0&lt;=x&lt;1;dx=0,2; ...

Выполнить Хаар анализ ступенчатой функции
Добрый вечер! Кто может расписать по пунктам, как выполнить Хаар анализ ступенчатой функции (MathCad). Сигнал уже задан, а что дальше...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru