数值分析常用算法C程序

源代码在线查看: suanfa.txt

软件大小: 199 K
上传用户: l991090150
关键词: 数值分析 C程序 算法
下载地址: 免注册下载 普通下载 VIP

相关代码

				主站首页 ● 视频下载 ● 书籍下载 ● 软件下载 ● 论坛交流 ● 综合娱乐 ● 站内搜索 ● 网站地图 
				 
				 
				    豆豆技术网----中国最大的计算机教程网,伴你学习,助你成长的良师益友!    
				几个数值分析的算法例子 
				  作者:未知 更新人: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
				
				%>
				
				   
				 
				  
				 
				
				--------------------------------------------------------------------------------
							

相关资源