Автор |
Сообщение |
Members


2 сообщений
Где: ---
Род занятий:
Возраст:
|
#7692
2016-01-23 22:38 GMT+3 часа(ов)
|
У меня стоит задача сделать функцыю, которая бы решала интегралы. Сначала у меня есть функцыя которая определяет есть ли даная переменная в функции. Потом функцыя, которая высчитывает простые интегралы, которые просто записаны в ней. Помогите написать хотя бы паре примеров.
|
|
Members


42 сообщений
Где: Russia
Род занятий:
Возраст:
|
#7693
2016-01-24 12:58 GMT+3 часа(ов)
|
(defun left-rectangle (f a b n &aux (d (/ (- b a) n)))
(* d (loop for x from a below b by d sum (funcall f x))))
> (left-rectangle (lambda (x) x) 0 5 100)
99/8
> (float (left-rectangle (lambda (x) x) 0 5 100))
12.375
> (left-rectangle (lambda (x) (* x x)) 0 5 100)
6567/160
> (float (left-rectangle (lambda (x) (* x x)) 0 5 100))
41.04375
> (left-rectangle (lambda (x) (/ 1 (log x))) 2 5 5)
2.8637977
|
|
Members


42 сообщений
Где: Russia
Род занятий:
Возраст:
|
#7694
2016-01-24 12:58 GMT+3 часа(ов)
|
(defun right-rectangle (f a b n &aux (d (/ (- b a) n)))
(* d (loop for x from b above a by d sum (funcall f x))))
> (right-rectangle (lambda (x) x) 0 5 100)
101/8
> (float (right-rectangle (lambda (x) x) 0 5 100))
12.625
> (right-rectangle (lambda (x) (* x x)) 0 5 100)
6767/160
> (float (right-rectangle (lambda (x) (* x x)) 0 5 100))
42.29375
> (right-rectangle (lambda (x) (/ 1 (log x))) 2 5 5)
2.3709817
|
|
Members


42 сообщений
Где: Russia
Род занятий:
Возраст:
|
#7695
2016-01-24 12:58 GMT+3 часа(ов)
|
(defun midpoint-rectangle (f a b n &aux (d (/ (- b a) n)))
(* d (loop for x from (+ a (/ d 2)) below b by d
sum (funcall f x))))
> (midpoint-rectangle (lambda (x) x) 0 5 100)
25/2
> (float (midpoint-rectangle (lambda (x) x) 0 5 100))
12.5
> (midpoint-rectangle (lambda (x) (* x x)) 0 5 100)
13333/320
> (float (midpoint-rectangle (lambda (x) (* x x)) 0 5 100))
41.665627
> (midpoint-rectangle (lambda (x) (/ 1 (log x))) 2 5 5)
2.5757823
|
|
Members


42 сообщений
Где: Russia
Род занятий:
Возраст:
|
#7696
2016-01-24 12:59 GMT+3 часа(ов)
|
(defun trapezium (f a b n &aux (d (/ (- b a) n)))
(* 0.5 d (+ (funcall f a)
(* 2 (loop for x from (+ a d) below b by d
sum (funcall f x)))
(funcall f b))))
> (trapezium (lambda (x) x) 0 5 100)
12.5
> (trapezium (lambda (x) (* x x)) 0 5 100)
41.66875
> (trapezium (lambda (x) (/ 1 (log x))) 2 5 5)
2.6173894
|
|
Members


42 сообщений
Где: Russia
Род занятий:
Возраст:
|
#7697
2016-01-24 12:59 GMT+3 часа(ов)
|
(defun simpson (f a b n
&aux
(h (/ (- b a) n))
(s1 (funcall f (+ a (/ h 2))))
(s2 0))
(loop for i from 1 below n do
(let ((z (+ a (* h i))))
(incf s1 (funcall f (+ z (/ h 2))))
(incf s2 (funcall f z)))
finally (return (* (/ h 6) (+ (funcall f a)
(funcall f b)
(* s1 4)
(* s2 2))))))
> (simpson (lambda (x) x) 0 5 100)
25/2
> (float (simpson (lambda (x) x) 0 5 100))
12.5
> (simpson (lambda (x) (* x x)) 0 5 100)
125/3
> (float (simpson (lambda (x) (* x x)) 0 5 100))
41.666668
> (simpson (lambda (x) (/ 1 (log x))) 2 5 5)
2.589651
|
|