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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
#include <math.h>
#include <time.h>
#include <stdlib.h>
 
double funkc(int x)
{
    return (sin(2*x) + cos(x)*x);
}
 
int main() /* главная функция*/
{
    int i, a[10];
    double sum=0; /* описание переменных*/
    srand(time(NULL));
 
    for(i=0; i<10; i++) // случайные числа
    {
        a[i] = rand()%3;
        printf("%d, ", a[i]);
    }
 
    for(i=0; i<10; i++)
    {
        sum+=funkc(a[i]);
    }
 
    printf("\nResult = %.3lf\n",sum*(2./10));
 
    return 0;
}

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

  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
Похожие ответы