Перейти к содержимому

Фотография

Определённый Интеграл


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 LKhiger

LKhiger

    Активный участник

  • Members
  • PipPip
  • 76 сообщений
  • ФИО:Леонид Хигер
  • Город:NY

Отправлено 26 сентября 2009 - 22:31

Definite Integral interval [a, b]: Sf(x)dx = G(b) - G(a) where G'(x) = f(x) , or differential of G(x) = f(x).

Integrals appear in many practical situations.
Consider a swimming pool. If it is rectangular, then from its length, width, and depth we can easily determine the volume of water it can contain (to fill it), the area of its surface (to cover it), and the length of its edge (to rope it).

But if it is oval with a rounded bottom, all of these quantities call for integrals. Practical approximations may suffice for such trivial examples, but precision engineering (of any discipline) requires exact and rigorous values for these elements.

I create the query which calculate integral of 3 * X^2 - 2 * X in interval [2, 4]....

S(3 * X^2 - 2 * X)dx = X^3 - X^2 and exact value of integral will be
S = (4^3 - 4^2) - (2^3 - 2^2) = 48 - 4 = 44.

We know nothing in our solution about exact value and differential and suppose to calculate approximate value of integral.
Process will stop when the absolute difference between current value of integral and previous become less or equal some eps real number.

With
Source (Xstart, Xfinish, imgFunc, eps) as
(select double(2), double(4), '3 * X^2 - 2 * X', double(1.e-3)
   from sysibm.sysdummy1 
)
,
Integral_calc (Xs, Xf, Xc, step, curint, prevint, eps, iterno) as
(select Xstart, Xfinish, double(Xstart - (Xfinish - Xstart) / 10.) Xc, 
				double((Xfinish - Xstart) / 10.) step,  double(0), double(0), eps, int(0) 
 from Source
union All
select Xs, Xf, Xc + step, step, curint + Fc * step, prevint, eps, iterno + 1
  from Integral_calc, table
(select 3 * power(Xc + step, 2) - 2 * (Xc + step) Fc 
   from sysibm.sysdummy1 ) it
where  Xc + step <= Xf 
Union All
select Xs, Xf, Xs - (step / 2.), step / 2., 0., curint, eps, iterno + 1
  from Integral_calc
where Xc + step > Xf 
  and abs(curint - prevint) > eps
)
,
Integral(integral_value, integral_image) as 
(select curint, 'interval: [' || varchar(Xs) || ', ' || varchar(Xf) || ']:  S' || '(' 
							  || imgFunc || ')dx = ' || varchar(round(curint, 3))	
from Integral_calc, Source 
where iterno = (select max(iterno) from Integral_calc)
)
select integral_value, integral_image from Integral

Result of calculation:

INTEGRAL_VALUE............................ INTEGRAL_IMAGE
4.40005859378289E+001............... interval: [2.0E0, 4.0E0]: S(3 * X^2 - 2 * X)dx = 4.4001E1



Could be very useful for students and engineers.

Lenny
  • 0

#2 LKhiger

LKhiger

    Активный участник

  • Members
  • PipPip
  • 76 сообщений
  • ФИО:Леонид Хигер
  • Город:NY

Отправлено 27 сентября 2009 - 03:24

Определённый интеграл определённо никого не интересует. :dirol: :blush:

А ведь на этом деле :friends: можно стричь капусту.... :diablo:
  • 0

#3 LKhiger

LKhiger

    Активный участник

  • Members
  • PipPip
  • 76 сообщений
  • ФИО:Леонид Хигер
  • Город:NY

Отправлено 27 сентября 2009 - 17:20

Example with trigonometric function:

interval [0, 3/4pi] S sin(x)dx:

With
Source (Xstart, Xfinish, imgFunc, eps) as
(select double(0), 1.5 * asin(1.), 'sin(x)', double(1.e-4)
   from sysibm.sysdummy1 
)
,
Integral_calc (Xs, Xf, Xc, step, CurInt, PrevInt, eps, iterno) as
(select Xstart, Xfinish, double(Xstart - (Xfinish - Xstart) / 10.) Xc, 
				double((Xfinish - Xstart) / 10.) step,  double(0), double(0), eps, int(0) 
 from Source
union All
select Xs, Xf, Xc + step, step, CurInt + FuncVal * step, PrevInt, eps, 
		iterno + 1

From Integral_calc, 
table (select sin(x) as FuncVal 
		   From 
		   (select (Xc + step) as X rom sysibm.sysdummy1 ) ii	 ) it
where  Xc + step <= Xf 

Union All
select Xs, Xf, Xs - (step / 2.), step / 2., 0., CurInt, eps, iterno + 1
  from Integral_calc
where Xc + step > Xf 
  and abs(curint - prevint) > eps
)
,
Integral(integral_value, integral_image) as 
(select curint, 'interval: [' || varchar(Xs) || ', ' || varchar(Xf) || ']:  S' || '(' 
							  || imgFunc || ')dx = ' || varchar(round(curint, 4))	
from Integral_calc, Source 
where iterno = (select max(iterno) from Integral_calc)
)
select integral_value, integral_image from Integral

Lenny
  • 0

#4 LKhiger

LKhiger

    Активный участник

  • Members
  • PipPip
  • 76 сообщений
  • ФИО:Леонид Хигер
  • Город:NY

Отправлено 28 сентября 2009 - 13:11

We have to change

Integral(integral_value, integral_image) as 
(select curint, 'interval: [' || varchar(Xs) || ', ' || varchar(Xf) || ']:  S' 
								   || '('  || imgFunc || ')dx = ' 
								   || varchar(round(curint, 4))	
from Integral_calc, Source 
where iterno = (select max(iterno) from Integral_calc)

Because of

round(curint, 4)

depends on eps

Lenny :friends:
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных