2002级《工程应用数学》课程考试题目
专业和学号 姓名 成绩
一. 用追赶法求解如下的三对角形方程组:
可用下面的FORTRAN求解程序,请指出主程序中的错误之处,并写出相应正确的语句。
PROGRAM xtridag
C driver for routine tridag
INTEGER NP
INTEGER k,n
REAL diag(NP),superd(NP),subd(NP),rhs(NP),u(NP)
open(7,file='MATRX2.DAT',status='new')
10 read(7,*) n
read(7,*)
read(7,*) (diag(k), k=1,n)
read(7,*)
read(7,*) (superd(k), k=1,n-1)
read(7,*)
read(7,*) (subd(k), k=2,n)
read(7,*)
read(7,*) (rhs(k), k=1,n)
close(7)
C carry out solution
call tridag(n, subd, diag, superd, rhs, x)
write(*,*) 'The solution vector is:'
write(*,'(1x,6f12.6)') (u(k), k=1,n)
END
C
SUBROUTINE tridag(a,b,c,r,u,n)
INTEGER n,NMAX
REAL a(n),b(n),c(n),r(n),u(n)
PARAMETER (NMAX=500)
INTEGER j
REAL bet,gam(NMAX)
if(b(1).eq.0.)pause 'tridag: rewrite equations'
bet=b(1)
u(1)=r(1)/bet
do 11 j=2,n
gam(j)=c(j-1)/bet
bet=b(j)-a(j)*gam(j)
if(bet.eq.0.)pause 'tridag failed'
u(j)=(r(j)-a(j)*u(j-1))/bet
11 continue
do 12 j=n-1,1,-1
u(j)=u(j)-gam(j+1)*u(j+1)
12 continue
return
END
数据程序MATRX2.DAT为:
3
Diagonal elements (N)
1.0 2.0 3.0
Super-diagonal elements (N-1)
2.0 3.0
Sub-diagonal elements (N-1)
2.0 3.0
Right-hand side vector (N)
1.0 2.0 3.0
二. 设函数在等距节点处的函数值为。(1) 写出2次Lagrange插值多项式;(2) 利用,推导三点数值微分公式
三. 根据Ritz变分原理,求解对称正定的线性方程组,等价于求一个多元二次函数的极小值问题,若这时我们用最速下降法进行迭代求解。请写出在迭代点处的迭代方向和步长。
四. 解释下
中SS、df、MS、F和p的统计学定义:
MAIN EFFECT
SS
df
MS
F
p
Effect
24.0
1
24.0
24.0
.008
Error
4.0
4
1.0
五. 如使用神经网络方法求解问题时出现不收敛的情况,该如何做,保证得到收敛解?
六. 对于4阶Runge-Kutta公式, 有
1.
将4阶Runge-Kutta公式用于微分方程时, 有下列形式:
并写出解的稳定区间。
2. 用Runge-Kutta公式求解初值问题,设自变量t的变化范围为区间,步长。请写出确定数值解和的递推表达式。
七. 运用BESIRK程序求解常微分方程
其中a,b为常数
1. 1. 请写出修改后的子程序SUBRUITN FUNC()以及SUBROUTINE INIT();
2. 2. 采用BESIRK程序求解常微分方程组与微分代数方程组,程序有何不同;
3. 3. 如果要控制输出结果的最大步长,程序需要修改何处。
八. 二维波动方程为:
边界和初始条件为:
对空间变量采用正交配置方法进行离散化,使方程成为一阶常微分方程组,可用微分代数方程求解程序求解,获得数值解的形式。要求:
对内配置个数为的情形,写出一阶常微分方程组和代数方程的形式与数目。