Вычисление определенного интеграла по формуле трапеций на равномерной сетке - 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, которая вычисляет определенный интеграл по формуле трапеций на равномерной сетке. Вот список элементов кода с их номерами и описанием:
- (defun integr (lst) — определение функции integr, которая принимает один аргумент lst
- (let ((h (car (last lst))) — создание переменной h и присваивание ей значения первого элемента из списка lst, полученного с помощью функции last
- (l (cddr (butlast lst))) — создание переменной l и присваивание ей значения списка, полученного с помощью функций butlast и cddr
- ( h (+ ( 0.5 (car lst) (cadr lst)) (apply '+ l)) — вычисление значения интеграла по формуле трапеций на равномерной сетке В этом коде нет явных числовых значений переменных, только символьные обозначения функций и операций.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д