注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

汇总技巧

你快乐我快乐.... 汇集各类技巧,传播技巧,让我们共同熟练运用技巧..

 
 
 

日志

 
 

几个数值分析的算法例子  

2011-06-03 21:16:44|  分类: ◆ASP技巧 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 @ Language=VBScript %
%
'几个参考点的数据已经给出,输入参数只有 X
function view(result,inputx)'输出结果,同时如果1 and 0,就在前面补0
if result1 and result0 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 inputxx(0) then k=0
if inputxx(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 inputxx(1) and inputxx(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 ij then
t= t * (inputx-x(i))/(x(j)-x(i))
end i
 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 i
 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)
endfunction
function mul(str)
mul=str*str
end function
%
  评论这张
 
阅读(81)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017