Вычисление определенного интеграла по формуле трапеций на равномерной сетке - Lisp

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

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

Помогите сделать программу на lisp Зная значения функции в равностоящих точках на отрезке, вычислить определенный интеграл по формуле трапеций: I= h*((0.5(f0+fn)+ f1+f2 +f3+….+ fn-1) Значения функции в точках и шаг разбиения заданы списком: (f0 fn f1 f2 f3 ….fn-1 h), h – шаг разбиения.

Решение задачи: «Вычисление определенного интеграла по формуле трапеций на равномерной сетке»

textual
Листинг программы
(defun integr (lst)
  (let ((h (car (last lst)))
        (l (cddr (butlast lst))))
    (* h (+ (* 0.5 (car lst) (cadr lst)) (apply '+ l)))))

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

В коде определена функция integr, которая вычисляет определенный интеграл по формуле трапеций на равномерной сетке. Вот список элементов кода с их номерами и описанием:

  1. (defun integr (lst) — определение функции integr, которая принимает один аргумент lst
  2. (let ((h (car (last lst))) — создание переменной h и присваивание ей значения первого элемента из списка lst, полученного с помощью функции last
  3. (l (cddr (butlast lst))) — создание переменной l и присваивание ей значения списка, полученного с помощью функций butlast и cddr
  4. ( h (+ ( 0.5 (car lst) (cadr lst)) (apply '+ l)) — вычисление значения интеграла по формуле трапеций на равномерной сетке В этом коде нет явных числовых значений переменных, только символьные обозначения функций и операций.

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


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

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

8   голосов , оценка 4 из 5
Похожие ответы