几个数值分析的算法例子

算法

<%@ 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)
endfunction

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

%>

时间: 2024-08-03 18:18:06

几个数值分析的算法例子的相关文章

关于数值分析的实验程序,用c语言c++均可,需要用到数值分析课相关知识,我可以提供部分资料

问题描述 关于数值分析的实验程序,用c语言c++均可,需要用到数值分析课相关知识,我可以提供部分资料 解决方案 我只想说 数据分析 不应该用MATLAB更方便吗? 解决方案二: http://wenku.baidu.com/link?url=ZAScYogajXHrTTRa5xjpUPtS7OQQXZ_LfXaWNkczTtWf2MJgx0RZFUuca4iRGUcPwtr4Um4AJObpWKl8dg5WS6fZdx6lfoES8JYcsJtcdgi 解决方案三: 数值分析各种算法C语言数值分

目标跟踪学习笔记_1(opencv中meanshift和camshift例子的应用)

在这一节中,主要讲目标跟踪的一个重要的算法Camshift,因为它是连续自使用的meanShift,所以这2个函数opencv中都有,且都很重要.为了让大家先达到一个感性认识.这节主要是看懂和运行opencv中给的sample并稍加修改.      Camshift函数的原型为:RotatedRect CamShift(InputArray probImage, Rect& window, TermCriteria criteria).      其中probImage为输入图像直方图的反向投影

深入浅出PageRank算法

PageRank算法 PageRank算法是谷歌曾经独步天下的"倚天剑",该算法由Larry Page和http://www.aliyun.com/zixun/aggregation/16959.html">Sergey Brin在斯坦福大学读研时发明的,论文点击下载: The PageRank Citation Ranking: Bringing Order to the Web. 本文首先通过一些参考文献引出问题,然后给出了PageRank的几种实现算法,最后将其推

《算法导论(原书第3版)》一第1章 算法在计算中的作用 - 1.1 算法

第1章 算法在计算中的作用 什么是算法?为什么算法值得研究?相对于计算机中使用的其他技术来说算法的作用是什么?本章我们将回答这些问题. 1.1 算法 非形式地说,算法(algorithm)就是任何良定义的计算过程,该过程取某个值或值的集合作为输入并产生某个值或值的集合作为输出.这样算法就是把输入转换成输出的计算步骤的一个序列. 我们也可以把算法看成是用于求解良说明的计算问题的工具.一般来说,问题陈述说明了期望的输入/输出关系.算法则描述一个特定的计算过程来实现该输入/输出关系. 例如,我们可能需

[Java 泥水匠] Java Components 之二:算法篇之项目实践中的位运算符(有你不懂的哦)

2.1 前言   自从上篇[Java 泥水匠] Java Components 之一:Java String (肯定有你不懂的泥瓦匠很快又和你们聊起来了.写的还不错~ 要时刻对自己说: 得到殊荣也是昨天,看在眼里的只有今天.等待明天的只有死亡和坟墓. 回到正题,今天是讲位运算的,肯定有你不知道的.提纲: 2.2    异或基本算法 2.2.1  补充例子异或加密解密 2.3   '按位与'运算 就是那么简单 2.4    从非中,学习原码补码运算 2.5    综合算法现实案例 2.6    总

《Java特种兵》1.2 一些简单算法,你会如何理解

本文是<Java特种兵>的样章感谢博文视点和作者授权本站发布 1.2 一些简单算法你会如何理解 终于迎来第二次聚会的机会本节内容会轻松许多也许一盏茶的工夫就可以听完这个小故事. 注其实本节并不是讨论算法例子也会很简单如果你对算法很熟悉请跳过此节. 想要从一堆数据中找出一个max.min. 想要从100万个数字中找出最大的10个数字. 你的想法是什么你会如何找先排序再找或者摸不到头脑. 胖哥的一些方法也许会帮到你"想想学校里面排队.找人是怎么做的". 假如一个学校有几千人你要

如何简单解释 MapReduce 算法

在Hackbright做导师期间,我被要求向技术背景有限的学生解释MapReduce算法,于是我想出了一个有趣的例子,用以阐释它是如何工作的. MapReduce算法例子 你想数出一摞牌中有多少张黑桃.直观方式是一张一张检查并且数出有多少张是黑桃. MapReduce方法则是: 1.给在座的所有玩家中分配这摞牌 2.让每个玩家数自己手中的牌有几张是黑桃,然后把这个数目汇报给你 3.你把所有玩家告诉你的数字加起来,得到最后的结论 MapReduce算法背景 谷歌在2004年发表了可以分析大量数据的

使用 HTML5 Canvas 实现移动平台动画(游戏)的一些痛点和思路

前言 最近一直在做一些HTML5 Canvas加速方面的事情,HTML5已经出来相当长一段时间,各浏览器厂商也基本上已经支持!从目前来看,HTML5的大规模普及还是雷声大,雨点小:但从长远来看,HTML5由于其诸多优点,比如本文提到到Canvas元素支持,将会逐渐成为主流,特别是在复杂场景应用中! 本文主要从目前HTML5 Canvas 在实现动画(游戏)中遇到的部分痛点入手,尝试提供一些相应的解决办法和思路! 痛点 性能问题:目前性能问题HTML5 Canvas的性能问题在Android中表现

生成魔方阵(周记05-03)

最近加紧学C#,同时又想再看看算法.谁要咱们在科研口,就是一个自己的时间多,当然money也就少些了. 书买了不少,什么<21天学通C#>.<C#Primer>还有<Microsoft .Net框架程序设计(修订版)>.当然这些书的选择是本人看了不少书评后才买的,看了看都是不错的选择,好书! 书虽好但也要人用心来看啊,本人利用业余时间基本已浏览一遍,更细的知识点就要在以后的学习中好好掌握了. 说到这里,说出来你死都不会相信我在单位还是个小头,平日里受尽老老少少.上上下下