欢迎光临
我们一直在努力

几个 数值分析 的算法例子

建站超值云服务器,限时71元/月

<%@ language=vbscript %>
<%
几个参考点的数据已经给出,输入参数只有 x

function view(result,inputx)  输出结果,同时如果<1 and >0,就在前面补0
  if result<1 and result>0 then result=0&result
  response.write "计算结果:"&"<br>"
  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<x(0) then k=0
if inputx>x(3) then k=2

for i=0 to 2
   if inputx>=x(i) and inputx<=x(i+1)  then k=i
   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<=x(1) then k=0
if inputx>=x(2) then k=1
if inputx>x(1) and inputx<x(2) and abs(inputx-x(1))<=abs(inputx-x(2)) then k=0 else k=1

for j=k to k+2
t=1
for i= k to k+2
   if i<>j 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 i<>j 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<=x(0) then k=0
  if inputx>=x(2) then k=1
for i=0 to 1  
  if x(i)<=inputx and inputx<=x(i+1) then k=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)
end  function

function mul(str)
   mul=str*str  
end function

%>

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 几个 数值分析 的算法例子
分享到: 更多 (0)

相关推荐

  • 暂无文章