積分如何計(jì)算

2022-08-07 16:30

2個回答

  積分計(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)的積分

這是一段可以對任意一個一元函數(shù)進(jìn)行數(shù)值積分的vbs代碼,不僅可以算有限區(qū)間上的積分,還能計(jì)算無限區(qū)間上的廣義積分,有效數(shù)位可以自由選擇,最高達(dá)12位。新建一個文本文檔,復(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("請輸入被積函數(shù):f(x)=","204的幽靈","x")
a0=inputbox("請輸入積分下限a=","204的幽靈",1)
b0=inputbox("請輸入積分上限b=","204的幽靈",2)
dr=inputbox("請輸入有效位數(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 "請檢查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 "請檢查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 "請檢查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.對數(shù)函數(shù):logn(n,x)其中n表示底數(shù),如logn(10,5)表示以10為底對5求對數(shù);
5.指數(shù)函數(shù):aexp(a,x)其中a表示底數(shù),如aexp(3,11)表示3的11次方;
6.其他函數(shù):絕對值abs(x);開方sqr(x);e的次x冪exp(x);自然底數(shù)對數(shù)log(x);
7.運(yùn)算符號:加(+);減(-);乘(*);除(/);冪(^);
8.注意以上函數(shù)中的括號不能省略,比如exp(-(x^2))中的括號就不能省略;
9.PI表示圓周率;EN表示自然底數(shù)。
(2)輸入積分上下限(可以輸入計(jì)算式),PI表示圓周率,EN表示自然底數(shù),-w表示負(fù)無窮,+w表示正無窮;
(3)輸入有效數(shù)位(1到12間的任意一個整數(shù));
(4)計(jì)算廣義積分時,建議先將有效數(shù)位調(diào)低一些,如果結(jié)果是無窮大,就不必計(jì)算了,如果是有限數(shù)字,提高有效數(shù)位再次計(jì)算;
(5)代碼內(nèi)添加了防止“死循環(huán)”的代碼,所以不會出現(xiàn)死循環(huán),如果某次計(jì)算耗時太長(一般不會出現(xiàn)這種情況,兩三秒內(nèi)就能搞定),想中斷計(jì)算,按Ctrl+Alt+del呼出任務(wù)管理器,結(jié)束wscript.exe進(jìn)程即可。
相關(guān)問答
有關(guān)面積計(jì)算的數(shù)學(xué)故事(三個)
1個回答2024-01-21 20:01
一天,媽媽突然對我說:“晶晶,請你回答一個問題?!蔽蚁肓讼?,說:“那好吧?!眿寢岄_始說問題了:“請聽題:臥室長4米,寬是3米,還有個臥室長也是4米,寬也是3米,書房的長時4米,寬是2.5米,請問...
全文
有關(guān)面積計(jì)算的數(shù)學(xué)故事(三個)
1個回答2024-01-26 05:03
一天,媽媽突然對我說:“晶晶,請你回答一個問題.”我想了想,說:“那好吧.”媽媽開始說問題了:“請聽題:臥室長4米,寬是3米,還有個臥室長也是4米,寬也是3米,書房的長時4米,寬是2.5米,請問...
全文
有關(guān)面積計(jì)算的數(shù)學(xué)故事(三個)
1個回答2024-01-21 09:13
一天,媽媽突然對我說:“晶晶,請你回答一個問題?!蔽蚁肓讼?,說:“那好吧。”媽媽開始說問題了:“請聽題:臥室長4米,寬是3米,還有個臥室長也是4米,寬也是3米,書房的長時4米,寬是2.5米,請問臥室和...
全文
長方形面積的計(jì)算
1個回答2022-08-25 10:48
稿自己寫,長乘以寬
怎么計(jì)算三角形的面積啊
1個回答2024-10-03 12:35
已知三角形底a,高h(yuǎn),則S=ah/2 已知三角形三邊a,b,c,半周長p,則S= √[p(p - a)(p - b)(p - c)] (海倫公式)(p=(a+b+c)/2) 已知三...
全文
什么是材積,材積怎么計(jì)算?
1個回答2023-01-22 15:24
35.15材
積分是怎么計(jì)算的啊?
1個回答2023-05-06 07:52
您好,電信積分是通過消費(fèi)積攢的,用戶每消費(fèi)一元即可積攢一個積分,另外星級用戶可以享受積分倍增服務(wù)。 電信積分倍增是指以消費(fèi)積分為基數(shù)(消費(fèi)1元得1分),乘以星級對應(yīng)的積分倍數(shù),就是最終的到的積分。 1...
全文
面積分別是多少了?發(fā)現(xiàn)了什么?寫出計(jì)算過程!!
1個回答2024-01-30 00:23
5x5÷2-5x2÷2=7.5 發(fā)現(xiàn)甲的面積等于乙的面積
長方形的面積怎么計(jì)算公式?
1個回答2024-08-28 15:31
公式:長方形面積=長×寬 長方形長與寬的定義: 1、長方形長的那條邊叫長,短的那條邊叫寬。 2、和水平面同方向的叫做長,反之就叫做寬。長方形的長和寬是相對的,不能絕對的說“長比寬長...
全文
長方體體積計(jì)算公式是什么?
1個回答2024-09-10 03:58
長方體體積=長X寬X高 V=abh=Sh ?長方體的長、寬、高分別為a、b、h。 (1)長方體的面:圍成封閉幾何體的平面多邊形稱為多面體的面。長方體有6個面。其中每個面都是長方形(有可能有2個...
全文
熱門問答