Вычислить, используя метод Монте-Карло, определенный интеграл - C (СИ)

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

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

Добрый день! Исчислить, используя метод Монте-Карло, определенный интегралом: y=sin(2x) + cos(x) x ∈ [0, 2] Правильно ли это?
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <math.h>
  5. int main()
  6. {
  7. float x, y; /* описание переменных*/
  8. if( x>0 && x<2){ /*операции сравнивания*/
  9. y = sin(2*x) + cos(x);
  10. printf(" Value: %f\n", y); }
  11. return 0;
  12. }

Решение задачи: «Вычислить, используя метод Монте-Карло, определенный интеграл»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <time.h>
  4. #include <stdlib.h>
  5.  
  6. double funkc(int x)
  7. {
  8.     return (sin(2*x) + cos(x)*x);
  9. }
  10.  
  11. int main() /* главная функция*/
  12. {
  13.     int i, a[10];
  14.     double sum=0; /* описание переменных*/
  15.     srand(time(NULL));
  16.  
  17.     for(i=0; i<10; i++) // случайные числа
  18.     {
  19.         a[i] = rand()%3;
  20.         printf("%d, ", a[i]);
  21.     }
  22.  
  23.     for(i=0; i<10; i++)
  24.     {
  25.         sum+=funkc(a[i]);
  26.     }
  27.  
  28.     printf("\nResult = %.3lf\n",sum*(2./10));
  29.  
  30.     return 0;
  31. }

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы: iostream.h, math.h, time.h, stdlib.h
  2. Определяем функцию с именем funkc, которая принимает целочисленный аргумент и возвращает значение double. Внутри функции происходит вычисление определенного интеграла методом Монте-Карло.
  3. В функции main() создаем массив из 10 элементов типа int с именем a. Инициализируем переменную sum типа double значением 0.
  4. Задаем начальное значение для генератора случайных чисел с помощью функции srand(time(NULL)).
  5. Заполняем массив a случайными целыми числами в диапазоне от 0 до 2 с помощью функции rand()%3 и оператора присваивания.
  6. Выводим на экран значения массива a с помощью цикла for и оператора printf().
  7. Проходим по массиву a с помощью цикла for и суммируем результаты вызова функции funkc для каждого элемента массива в переменную sum.
  8. Выводим на экран значение переменной sum, умноженное на коэффициент 2/10, с помощью функции printf().
  9. Возвращаем 0 из функции main(), чтобы указать, что программа успешно завершилась.

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


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

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

9   голосов , оценка 4.333 из 5

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

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

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