積分如何計(jì)算

2022-08-07 16:30

2022-08-07 21:22

  積分計(jì)算公式如下:

  1.含有a+bx的積分公式


  2.含有√(a+bx)的積分公式

  3.含有x^2±α^2的積分

  4.

  含有ax^2+b(a>0)的積分

  5.含有√(a^2+x^2) (a>0)的積分

  6.含有ax^2+b(a>0)的積分

更多回答
這是一段可以對(duì)任意一個(gè)一元函數(shù)進(jìn)行數(shù)值積分的vbs代碼,不僅可以算有限區(qū)間上的積分,還能計(jì)算無(wú)限區(qū)間上的廣義積分,有效數(shù)位可以自由選擇,最高達(dá)12位。新建一個(gè)文本文檔,復(fù)制粘貼這段代碼,另存為“積分器.vbs”,雙擊即可運(yùn)行。
--------------------------------------------------------------------------------------------------------------------

PI=4*atn(1)
EN=exp(1)

function arcsin(x)
if abs(x)=1 then
arcsin=sgn(x)*PI/2
else
arcsin=atn(x/sqr(-x*x+1))
end if
end function

function arccos(x)
if x=1 then
arccos=0
elseif x=-1 then
arccos=PI
else
arccos=atn(-x/sqr(-x*x+1))+PI/2
end if
end function

function arctan(x)
arctan=atn(x)
end function

function hsin(x)
hsin=(exp(x)-exp(-x))/2
end function

function hcos(x)
hcos=(exp(x)+exp(-x))/2
end function

function htan(x)
htan=(exp(x)-exp(-x))/(exp(x)+exp(-x))
end function

function aexp(a,x)
aexp=exp(x*log(a))
end function

function logn(n,x)
logn=log(x)/log(n)
end function

function h(u)
dim s(),q()
dim t(2),f(2)
dim a(),b()
redim q(u)
n=u

for i0=0 to n
on error resume next
err.clear
q(i0)=0
k=2^i0
e=(b0-a0)/k
redim a(k-1)
redim b(k-1)
redim s(k-1)

for j=0 to k-1
a(j)=a0+j*e
b(j)=a(j)+e
t(0)=-sqr(3/5)
t(1)=0
t(2)=sqr(3/5)

for r=0 to 2
x=((b(j)-a(j))*t(r)+b(j)+a(j))/2
f(r)=eval(hs)
next
s(j)=e*(5*(f(0)+f(2))+8*f(1))/18
q(i0)=q(i0)+s(j)
next
next

m=1
do while n>0
on error resume next
err.clear
for i0=0 to n-1
q(i0)=((2^m)*q(i0+1)-q(i0))/(2^m-1)
next
n=n-1
m=m+1
loop
h=q(0)
end function

function pk
u=1
p2=h(1)
diff=1
do until diff<=1*10^(-(dr+3))
if pk>1e100 then
pk=2e100
exit do
elseif u>15 then
exit do
elseif abs(b0-a0)/(2^u)<1e-100 then
exit do
end if
p1=p2
p2=h(u+1)
if abs(p2)<1e-100 then
diff=0
pk=0
else
diff=abs((p2-p1)/p2)
u=u+1
pk=p2
end if
loop
end function

hs=inputbox("請(qǐng)輸入被積函數(shù):f(x)=","204的幽靈","x")
a0=inputbox("請(qǐng)輸入積分下限a=","204的幽靈",1)
b0=inputbox("請(qǐng)輸入積分上限b=","204的幽靈",2)
dr=inputbox("請(qǐng)輸入有效位數(shù)n" & chr(10) & "n∈[1,12]","204的幽靈",8)
d=1

if a0="-w" and b0="+w" then
i=0
p=0
a0=0
b0=10
p=pk
a0=-10
b0=0
p=p+pk
g=1
do until g<=p*10^(-(dr+3))
if p>1e100 then
p=2e100
exit do
elseif p<-1e100 then
p=-2e100
exit do
elseif i>10 then
p="???"
msgbox "請(qǐng)檢查f(x)廣義積分是否存在",48,"204的幽靈"
exit do
end if
a0=-a0
b0=a0+2^i
g1=pk
p=p+g1
v=-a0
a0=-b0
b0=v
g2=pk
p=p+g2
i=i+1
g=abs(g1)+abs(g2)
loop
p0=p
p2=p
elseif a0="-w" then
p=0
i=0
a0=b0-10
p=pk
g=1
do until abs(g)<=p*10^(-(dr+3))
if p>1e100 then
p=2e100
exit do
elseif p<-1e100 then
p=-2e100
exit do
elseif i>10 then
p="???"
msgbox "請(qǐng)檢查f(x)廣義積分是否存在",48,"204的幽靈"
exit do
end if
b0=a0
a0=b0-2^i
g=pk
p=p+g
i=i+1
loop
p0=p
p2=p
elseif b0="+w" then
p=0
i=0
b0=a0+10
p=pk
g=1
do until abs(g)<=p*10^(-(dr+3))
if p>1e100 then
p=2e100
exit do
elseif p<-1e100 then
p=-2e100
exit do
elseif i>10 then
p="???"
msgbox "請(qǐng)檢查f(x)廣義積分是否存在",48,"204的幽靈"
exit do
end if
a0=b0
b0=a0+2^i
g=pk
p=p+g
i=i+1
loop
p0=p
p2=p
else
a0=eval(a0)
b0=eval(b0)

if a0>b0 then
v=b0
b0=a0
a0=v
d=-1
end if
p=pk
if p=0 then
p2=1
p0=0
else
p2=p
p0=p2
end if
end if

if isnumeric(p0) then
if p0>1e100 then
msgbox "∫f(x)dx=+∞",64,"204的幽靈"
elseif p0<-1e100 then
msgbox "∫f(x)dx=-∞",64,"204的幽靈"
else
z=int(logn(10,abs(p2)))
p0=p0/(1*10^z)
p0=round(p0,(dr-1))
p0=d*p0*10^z
msgbox ("∫f(x)dx=" & p0),64,"204的幽靈"
end if
else
msgbox ("∫f(x)dx=" & p0),64,"204的幽靈"
end if

-------------------------------------------------------------------------------------------------------------------

注釋:(1)按提示輸入被積函數(shù)f(x),f(x)由基本初等函數(shù)構(gòu)成,具體輸入如下:
1.三角函數(shù):sin(x);cos(x);tan(x);
2.反三角函數(shù):arcsin(x);arccos(x);arctan(x);
3.雙曲三角函數(shù):hsin(x);hcos(x);htan(x);
4.對(duì)數(shù)函數(shù):logn(n,x)其中n表示底數(shù),如logn(10,5)表示以10為底對(duì)5求對(duì)數(shù);
5.指數(shù)函數(shù):aexp(a,x)其中a表示底數(shù),如aexp(3,11)表示3的11次方;
6.其他函數(shù):絕對(duì)值abs(x);開方sqr(x);e的次x冪exp(x);自然底數(shù)對(duì)數(shù)log(x);
7.運(yùn)算符號(hào):加(+);減(-);乘(*);除(/);冪(^);
8.注意以上函數(shù)中的括號(hào)不能省略,比如exp(-(x^2))中的括號(hào)就不能省略;
9.PI表示圓周率;EN表示自然底數(shù)。
(2)輸入積分上下限(可以輸入計(jì)算式),PI表示圓周率,EN表示自然底數(shù),-w表示負(fù)無(wú)窮,+w表示正無(wú)窮;
(3)輸入有效數(shù)位(1到12間的任意一個(gè)整數(shù));
(4)計(jì)算廣義積分時(shí),建議先將有效數(shù)位調(diào)低一些,如果結(jié)果是無(wú)窮大,就不必計(jì)算了,如果是有限數(shù)字,提高有效數(shù)位再次計(jì)算;
(5)代碼內(nèi)添加了防止“死循環(huán)”的代碼,所以不會(huì)出現(xiàn)死循環(huán),如果某次計(jì)算耗時(shí)太長(zhǎng)(一般不會(huì)出現(xiàn)這種情況,兩三秒內(nèi)就能搞定),想中斷計(jì)算,按Ctrl+Alt+del呼出任務(wù)管理器,結(jié)束wscript.exe進(jìn)程即可。
熱門問(wèn)答