0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 11

Решение интеграла методом трапеции и прямоугольника

18.05.2013, 16:11. Показов 19734. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объясните пожалуйста, как правильно написать программу которая будет решать определенный интеграл(интервал и шаг задается пользователем). Как я понимаю нужно написать функцию?
Изображения
 
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.05.2013, 16:11
Ответы с готовыми решениями:

Решение интеграла методом трапеции
не подскажете как осуществить решение интеграла методом трапеции, в моей проге походу вообще формула не та(подсказали так)

Вычисление определённого интеграла методом трапеции
Программа вычисляет определённый интеграл методом трапеции ->Не выводит значения переменных на экран<- using System; using...

Расчет определенного интеграла методом трапеции с заданной точностью
С математикой не очень дружу. Не могу формулу никак сделать . Форум просматривал но там с заданным количеством отрезком. Интеграл Ln2x. Не...

10
27 / 29 / 5
Регистрация: 20.02.2012
Сообщений: 350
18.05.2013, 19:07
Программа именно для этого интеграла ?
0
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 11
18.05.2013, 19:12  [ТС]
Добавлено через 1 минуту
Цитата Сообщение от Sparrow44 Посмотреть сообщение
Программа именно для этого интеграла ?
да, для этого.
0
27 / 29 / 5
Регистрация: 20.02.2012
Сообщений: 350
18.05.2013, 20:23
Тогда как то так ....
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
static void Main(string[] args)
        {
            Console.WriteLine("Введите шаг");
            double step = Convert.ToDouble(Console.ReadLine());
 
            Console.WriteLine("Введите границы в формате a-b");
            string s = Console.ReadLine();
            double a = Convert.ToDouble(s.Split('-')[0]);
            double b = Convert.ToDouble(s.Split('-')[1]);
 
            double result = 0;
 
            for (double i = a; i < b; i += step)
            {
                result += ((5 / 3) * Math.Pow(i, 3) + Math.Pow(i, 2) - 10 * i); 
            }
 
            Console.WriteLine(result);
            Console.ReadKey();
        }
2
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 11
18.05.2013, 21:30  [ТС]
Цитата Сообщение от Sparrow44 Посмотреть сообщение
for (double i = a; i < b; i += step)
* * * * * * {
* * * * * * * * result += ((5 / 3) * Math.Pow(i, 3) + Math.Pow(i, 2) - 10 * i);
* * * * * * }
я правильно понимаю, что вот это (double i = a; i < b; i += step) счетчик идет от a до b с шагом step? Извините за глупость я только учусь)

Добавлено через 9 минут
И еще, насколько помню, существует 2 метода (Метод трапеции и метод прямоугольников) какой из методов здесь?
0
27 / 29 / 5
Регистрация: 20.02.2012
Сообщений: 350
18.05.2013, 22:21
Цитата Сообщение от tgkd Посмотреть сообщение
вот это (double i = a; i < b; i += step) счетчик идет от a до b с шагом step?
да!

Цитата Сообщение от tgkd Посмотреть сообщение
И еще, насколько помню, существует 2 метода (Метод трапеции и метод прямоугольников) какой из методов здесь?
Честно хз =) Я давно это все проходил и смутно помню оба эти метода ... =) Как мне помнится они вообще для графического приближенного решения интегралов но я могу и ошибаться ( почти наверняка) так что это ИМХА....
1
212 / 214 / 44
Регистрация: 20.12.2011
Сообщений: 635
19.05.2013, 02:17
Цитата Сообщение от Sparrow44 Посмотреть сообщение
for (double i = a; i < b; i += step)
* * * * * * {
* * * * * * * * result += ((5 / 3) * Math.Pow(i, 3) + Math.Pow(i, 2) - 10 * i);
* * * * * * }
скажу сразу - задумка верная, реализация - нет
значение интеграла - это площадь, которая ограничивается прямыми x = a, x = b, осью ОХ и Вашей функцией
метод прямоугольников(левых или правых):
эта область разбивается на несколько прямоугольников(зависит от шага) и считается сумма их площадей:
как ширина * высота
ширина - это шаг, высота варьируется от метода. для левых берётся левая высота(а, а+h, a+2h...b-h), для правых - правая(а+h, a+2h..b)
высота = f(x) - подинтегральная функция

метод трапеций:
область разбивается на трапеции
площадь: (левая_высота+правая_высота)*шаг/2

Добавлено через 45 секунд

Не по теме:

Цитата Сообщение от tgkd Посмотреть сообщение
существует 2 метода (Метод трапеции и метод прямоугольников)
их намного больше :)

1
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 11
19.05.2013, 07:54  [ТС]
Цитата Сообщение от Fler Посмотреть сообщение
для левых берётся левая высота(а, а+h, a+2h...b-h), для правых - правая(а+h, a+2h..b)
высота = f(x) - подинтегральная функция
не понимаю насчет высоты, она будет равна (5x^2)+2x-10? так?
0
212 / 214 / 44
Регистрация: 20.12.2011
Сообщений: 635
19.05.2013, 08:11
Цитата Сообщение от tgkd Посмотреть сообщение
так?
да
примерно так будет:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        static double func(double x)
        {
            return 5 * Math.Pow(x, 2) + 2 * x - 10;
        }
 
....
 
            for (double x = a; x < b; x += step)
            {
                result1 += func(x) * step;          //левых прямоугольников
                result2 += func(x + step) * step;   //правых прямоугольников
                result3 += step * (func(x) + func(x + step)) / 2;   //трапеций
            }
Добавлено через 6 минут
Если решить этот интеграл руками, то получается функция 5(x^3)/3 + x^2 - 10x
Тогда значение можно найти так:
C#
1
2
3
4
5
6
        static double func2(double x)
        {
            return 5.0 * Math.Pow(x, 3) / 3 + x * x - 10 * x;
        }
....
double result1 = func2(b) - func2(a);
Если сравнить все 4 значения, то разбежка должна быть небольшой. Чем меньше шаг - тем точнее.
Можно ещё посмотреть в сторону алгоритмов с заданной точностью, там шаг не задаётся.
2
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 11
19.05.2013, 08:55  [ТС]
Цитата Сообщение от Fler Посмотреть сообщение
примерно так будет:
А в пропуск вставить:


Цитата Сообщение от Sparrow44 Посмотреть сообщение
static void Main(string[] args)
* * * * {
* * * * * * Console.WriteLine("Введите шаг");
* * * * * * double step = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Введите границы в формате a-b");
* * * * * * string s = Console.ReadLine();
* * * * * * double a = Convert.ToDouble(s.Split('-')[0]);
* * * * * * double b = Convert.ToDouble(s.Split('-')[1]);
double result = 0;
или нет?
0
 Аватар для spymonk
3 / 3 / 0
Регистрация: 08.06.2016
Сообщений: 39
19.08.2016, 19: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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Simpson_cs
{
    class Program
    {
        static double Y(double p)
        {
            return (5 * Math.Pow(p, 2) + 2 * p - 10);
        }
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.GetEncoding("cp866");
            double x, a, b, h, s;
            int n;
            Console.WriteLine("Отрезок интегрирования [a,b] --> (a) =");
            a = int.Parse(Console.ReadLine());
            Console.WriteLine("Отрезок интегрирования [a,b] --> (b) =");
            b = Double.Parse(Console.ReadLine());
            Console.WriteLine("На сколько частей нужно разделить отрезок? n=");
            n = int.Parse(Console.ReadLine());
 
            h = (b - a) / n;
            s = 0; x = a + h;
            while (x < b)
            {
                s = s + 4 * Y(x);
                x = x + h;
                s = s + 2 * Y(x);
                x = x + h;
            }
            s = h / 3 * (s + Y(a) - Y(b));
            Console.WriteLine("Интеграл = {0}", s);
            Console.ReadKey();
        }
    }
}
При увеличении числа n повышаешь точность. Проверено MathCAD-ом))
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.08.2016, 19:16
Помогаю со студенческими работами здесь

Решение интеграла методом трапеций
Необходимо решить интеграл используя метод трапеций Добавлено через 24 минуты \int(sqrt(4-x^2)) (2,0) Добавлено через 7 минут ...

Решение интеграла методом прямоугольников
Помогите, пожалуйста, улучшить программу.Вся проблема в том, что если задать количество прямоугольников больше 25,то программа выдаёт...

Решение интеграла методом левых прямоугольник в C# с точностью до 0,001
Здравствуйте! Ребята возникла вот такая проблема в цикле. По сути он должен проверять если разность интегралов с n=1 и n=2 больше 0,001, то...

Решение СЛАУ методом простой итерации, Методом Зейделя, Методом Релаксации
Всем доброго времени суток, помогите пожалуйста реализовать данные методы, а то у меня не получаеться даже понять полной сути данных...

Решение интеграла
Здравствуйте! Я здесь новичок, в C# - аналогично. У меня есть вопрос: Имеется интеграл, его надо решить посредством C#. Не могли бы вы...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

Новые блоги и статьи
EmBitz, создание проекта, отладка, прошивка
locm 15.07.2025
Создание проекта для Blue Pill (STM32F103C8T6) в EmBitz 2. 30, написания кода blink, запуск отладки в ОЗУ, заливка релизной прошивки во flash используя ST-Link и др. . . .
Трассировка корутин Kotlin с OpenTelemetry
mobDevWorks 14.07.2025
Асинхронное программирование меняет правила игры, особенно когда речь заходит о трассировке операций. В Kotlin с его корутинами эта проблема приобретает особый оттенок, который я хотел бы детально. . .
Облачные приложения на Rust: руководство по архитектуре микросервисов
golander 13.07.2025
Когда я впервые взялся за проектирование облачной платформы для одного из наших клиентов, выбор стоял между привычными Go и Java. Но после нескольких месяцев разработки микросервисной системы,. . .
Как Node.js выполняет асинхронные операции
Reangularity 13.07.2025
Каждый раз, когда я рассказываю про Node. js, возникает один и тот же вопрос: "Как эта штука может быть быстрой, если JavaScript — однопоточный язык?" И это действительно кажется парадоксом. Ведь в. . .
Как писать чистый, тестируемый и качественный код на Python
py-thonny 12.07.2025
Помню свой первый проект на Python. Работал тогда быстро, грязно, лишь бы работало. Код был похож на запутанный клубок - переменные по одной букве, функции на 200 строк, комментарии отсутствовали как. . .
Blazor и контроллер сервопривода IoT Meadow Maple
Wired 11.07.2025
Я решил разобраться, как можно соединить современные веб-технологии с миром "железа". Интересная комбинация получилась из Blazor в качестве веб-интерфейса и микроконтроллера Meadow с его веб-сервером. . .
Генерация OpenQASM из кода Q#
EggHead 10.07.2025
Летом 2024-го я начал эксперименты с библиотекой Q# Bridge, и знаете что? Она оказалась просто находкой для тех, кто работает на стыке разных квантовых экосистем. Основная фишка этой библиотеки -. . .
Изучаем новый шаблон ИИ-чата .NET AI Chat Web App
stackOverflow 10.07.2025
В . NET появилось интересное обновление - новый шаблон ИИ-чата под названием . NET AI Chat Web App. Когда я впервые наткнулся на анонс этого шаблона, то сразу понял, что Microsoft наконец-то. . .
Результаты исследования от команды ARP (июль 2025 г.)
Programma_Boinc 10.07.2025
Результаты исследования от команды ARP (июль 2025 г. ) Африканский проект по дождям (ARP) World Community Grid снова запущен! Мы рады поделиться обновленной информацией о нашем прогрессе с осени. . .
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru