主站首页 ● 视频下载 ● 书籍下载 ● 软件下载 ● 论坛交流 ● 综合娱乐 ● 站内搜索 ● 网站地图
豆豆技术网----中国最大的计算机教程网,伴你学习,助你成长的良师益友!
几个数值分析的算法例子
作者:未知 更新人:Legume 来源:开发者俱乐部 更新时间:2004.08.05 投稿信箱: tg*ddvip.com
'几个参考点的数据已经给出,输入参数只有 X
function view(result,inputx)'输出结果,同时如果0,就在前面补0
if result0 then result=0&result
Response.Write "计算结果:"&""
Response.Write "F("&inputx&")="& result
end function
'********分段线性Lagrange插值**********
function Lagrange1(inputx)
dim k,i
dim x,y
x=array("0.1","0.2","0.3","0.4")
y=array("0.0998","0.1987","0.2955","0.3894")
if inputx if inputx>x(3) then k=2
for i=0 to 2
if inputx>=x(i) and inputx result=((inputx-x(k+1))/(x(k)-x(k+1)))*y(k) + ((inputx-x(k))/(x(k+1)-x(k)))*y(k+1)
next
result= view(result,inputx)
end function?
'********分段三点二次Lagrange插值**********
function Lagrange2(inputx)
dim i,j,k,t
dim x,y
result=0
x=array("0.1","0.2","0.3","0.4")
y=array("0.0998","0.1987","0.2955","0.3894")
if inputx if inputx>=x(2) then k=1
if inputx>x(1) and inputx
for j=k to k+2
t=1
for i= k to k+2
if ij then
t= t * (inputx-x(i))/(x(j)-x(i))
end if
next
result = result + t*y(j)
next
result= view(result,inputx)
end function
'**********一元n点拉格朗日插值***********
function Lagrange3(inputx)
dim i,j
dim x,y
result=0
x=array("0","0.1","0.195","0.4","0.401","0.5")
y=array("0.39894","0.39695","0.39142","0.38138","0.36812","0.35206")
for j=0 to 5
t=1
for i=0 to 5
if ij then
t= t * (inputx-x(i))/(x(j)-x(i))
end if
next
result = result + t * y(j)
next
result= view(result,inputx)
end function
'***********牛顿(Newton)插值***********
function Newton(inputx)
dim x,y
dim i,j
result=0.39894
t=1
x=array("0","0.1","0.195","0.3","0.401","0.5")
y=array("0.39894","0.39695","0.39142","0.38138","0.36812","0.35206")
for j=1 to 5
t=t*(inputx - x(j-1))
for i=0 to 5-j
y(i)=(y(i+1) - y(i)) / (x(i+j) - x(i))
next
result = result + t * y(0)
next
result= view(result,inputx)
end function
'***********埃特金(Aitken)插值***********
function Aitken(inputx)
dim i,j
dim x,y
x=array("0.5","0.65","0.8","1.0")
y=array("0.4794","0.6052","0.7174","0.8415")
for j=1 to 3
for i=j to 3
y(i)=y(j-1) + (y(i)-y(j-1)) / (x(i)-x(j-1))* (inputx-x(j-1))
next
next
result= view(y(3),inputx)
end function
'***********分段两点三次埃(厄)尔米特(Hermit)插值***********
function Hermit(inputx)
dim i,k
dim x,y,yy
x=array("0.1","0.3","0.5")
y=array("0.099833","0.295520","0.479426")
yy=array("0.995004","0.995336","0.877583")
if inputx if inputx>=x(2) then k=1
for i=0 to 1
if x(i) next
hx1=(1+2*(inputx-x(k)) / (x(k+1)-x(k))) * mul((x(k+1)-inputx) / (x(k+1)-x(k)))
hx2=(1+2*(x(k+1)-inputx) / (x(k+1)-x(k))) * mul((inputx-x(k)) / (x(k+1)-x(k)))
hx3=(inputx - x(k))* mul((x(k+1)-inputx)/(x(k+1)-x(k)))
hx4=(inputx - x(k+1))* mul((inputx-x(k))/(x(k+1)-x(k)))
result=y(k)*hx1 + y(k+1)*hx2 + yy(k)*hx3 + yy(k+1)*hx4
result= view(result,inputx)
endfunction
function mul(str)
mul=str*str
end function
%>
--------------------------------------------------------------------------------