积分如何计算

2022-08-07 16:30

2个回答

  积分计算公式如下:

  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)的积分

这是一段可以对任意一个一元函数进行数值积分的vbs代码,不仅可以算有限区间上的积分,还能计算无限区间上的广义积分,有效数位可以自由选择,最高达12位。新建一个文本文档,复制粘贴这段代码,另存为“积分器.vbs”,双击即可运行。
--------------------------------------------------------------------------------------------------------------------

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("请输入被积函数:f(x)=","204的幽灵","x")
a0=inputbox("请输入积分下限a=","204的幽灵",1)
b0=inputbox("请输入积分上限b=","204的幽灵",2)
dr=inputbox("请输入有效位数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)按提示输入被积函数f(x),f(x)由基本初等函数构成,具体输入如下:
1.三角函数:sin(x);cos(x);tan(x);
2.反三角函数:arcsin(x);arccos(x);arctan(x);
3.双曲三角函数:hsin(x);hcos(x);htan(x);
4.对数函数:logn(n,x)其中n表示底数,如logn(10,5)表示以10为底对5求对数;
5.指数函数:aexp(a,x)其中a表示底数,如aexp(3,11)表示3的11次方;
6.其他函数:绝对值abs(x);开方sqr(x);e的次x幂exp(x);自然底数对数log(x);
7.运算符号:加(+);减(-);乘(*);除(/);幂(^);
8.注意以上函数中的括号不能省略,比如exp(-(x^2))中的括号就不能省略;
9.PI表示圆周率;EN表示自然底数。
(2)输入积分上下限(可以输入计算式),PI表示圆周率,EN表示自然底数,-w表示负无穷,+w表示正无穷;
(3)输入有效数位(1到12间的任意一个整数);
(4)计算广义积分时,建议先将有效数位调低一些,如果结果是无穷大,就不必计算了,如果是有限数字,提高有效数位再次计算;
(5)代码内添加了防止“死循环”的代码,所以不会出现死循环,如果某次计算耗时太长(一般不会出现这种情况,两三秒内就能搞定),想中断计算,按Ctrl+Alt+del呼出任务管理器,结束wscript.exe进程即可。
相关问答
有关面积计算的数学故事(三个)
1个回答2024-01-21 20:01
一天,妈妈突然对我说:“晶晶,请你回答一个问题。”我想了想,说:“那好吧。”妈妈开始说问题了:“请听题:卧室长4米,宽是3米,还有个卧室长也是4米,宽也是3米,书房的长时4米,宽是2.5米,请问...
全文
有关面积计算的数学故事(三个)
1个回答2024-01-26 05:03
一天,妈妈突然对我说:“晶晶,请你回答一个问题.”我想了想,说:“那好吧.”妈妈开始说问题了:“请听题:卧室长4米,宽是3米,还有个卧室长也是4米,宽也是3米,书房的长时4米,宽是2.5米,请问...
全文
有关面积计算的数学故事(三个)
1个回答2024-01-21 09:13
一天,妈妈突然对我说:“晶晶,请你回答一个问题。”我想了想,说:“那好吧。”妈妈开始说问题了:“请听题:卧室长4米,宽是3米,还有个卧室长也是4米,宽也是3米,书房的长时4米,宽是2.5米,请问卧室和...
全文
长方形面积的计算
1个回答2022-08-25 10:48
稿自己写,长乘以宽
什么是材积,材积怎么计算?
1个回答2023-01-22 15:24
35.15材
积分是怎么计算的啊?
1个回答2023-05-06 07:52
您好,电信积分是通过消费积攒的,用户每消费一元即可积攒一个积分,另外星级用户可以享受积分倍增服务。 电信积分倍增是指以消费积分为基数(消费1元得1分),乘以星级对应的积分倍数,就是最终的到的积分。 1...
全文
面积分别是多少了?发现了什么?写出计算过程!!
1个回答2024-01-30 00:23
5x5÷2-5x2÷2=7.5 发现甲的面积等于乙的面积
积分的计算规则是怎样计算的?
1个回答2022-12-01 02:48
电信积分是根据您的实际消费计算的积分(即消费实缴费用),每消费一元积一分。 再以您的消费积分为基数,乘以星级对应的积分倍数。不同星级回馈不同的积分倍数。 1星是1倍,2星是1.5倍,3星是2倍,4星是...
全文
面积怎么计算计算公式
3个回答2023-09-29 00:01
常见的面积公式如下: 三角形面积公式是:底x高÷2 长方形面积公式是:长x宽 正方兆仿形面积公式是:边长x边长族空纤 圆形的面积公式是:πr² 平亏答行四边形面积公式是:底×高 梯形面积公式是:(上底...
全文