- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)