拉格朗日插值 适合任意个插值点 解多元一次方程组fortran程序.doc

拉格朗日插值 适合任意个插值点 解多元一次方程组fortran程序.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
!拉格朗日插值 适合任意个插值点的程序. implicit none real,dimension(:),allocatable::x real,dimension(:),allocatable::y real,dimension(:),allocatable::a real f,x0 integer i,j,h,n print*,请输入插值点的个数 read*,n allocate(x(n)) allocate(y(n)) allocate(a(n)) print*,请输入x(i)的值 do i=1,n read*,x(i) enddo print*,请输入y(i)的值 do i=1,n read*,y(i) enddo print*,请输入x的值 read*,x0 do i=1,n-1 a(i)=1 h=i+1 do j=h,n a(i)=a(i)*(x0-x(j))/(x(i)-x(j)) enddo enddo a(n)=1 do i=2,n h=i-1 do j=1,h a(i)=a(i)*(x0-x(j))/(x(i)-x(j)) enddo enddo f=0 do i=1,n f=y(i)*a(i)+f enddo print*,f=,f deallocate(x) deallocate(y) deallocate(a) end !********************************* !解多元一次方程组的程序 implicit none integer i,j,k,g,e,h,f,n real,dimension(:,:),allocatable::w real,dimension(:),allocatable::m real x,sum print*,请输入未知数的个数 read*,n allocate(w(n,n+1)) allocate(m(n+1)) print*,请输入方程的增广矩阵 do i=1,n do j=1,n+1 read*,w(i,j) enddo enddo print*,你输入的增广矩阵是 do i=1,n print 10,w(i,:) 10 format(2x,6f5.1) enddo do j=1,n-1 e=j+1 f=e do g=e,n if(w(j,j)w(g,j)) then do h=j,n+1 m(h)=w(j,h) w(j,h)=w(g,h) w(g,h)=m(h) enddo endif enddo do i=e,n x=w(i,j)/w(j,j) do k=f,n+1 w(i,k)=w(i,k)-x*w(j,k) enddo w(i,j)=0 enddo enddo m(n)=w(n,n+1)/w(n,n) do i=n-1,1,-1 e=i+1 sum=0 do j=n,e,-1 sum=sum+m(j)*w(i,j) enddo m(i)=(w(i,n+1)-sum)/w(i,i) enddo print*,答案是x(i)=... do i=1,n print 10000,m(i) 10000 format(2x,6f5.1) enddo deallocate(w) deallocate(m) END

文档评论(0)

yurixiang1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档