数值分析(a)》计算实习题目三。
一、题目。关于x,y,t,u,v,w的下列方程组。
0.5cost+u+v+w-x=2.67
t+0.5sinu+v+w-y=1.07
0.5t+u+cosv+w-x=3.74
t+0.5u+v+sinw-y=0.79
以及关于z,t,u的下列二维数表。
确定了一个二元函数z=f(x,y)。
1.试用数值方法求出f(x,y)在区域d=上的一个近似表达式。
要求p(x,y)一最小的k值达到以下的精度。
其中xi=0.08i,yj=0.5+0.05j。
2.计算f(xi*,yj*),p(xi*,yj*)(i=1,2,…,8;j=1,2,…,5)的值,以观察p(x,y)逼近f(x,y)的效果,其中xi*=0.1i,yj*=0.5+0.
2j。二、算法设计方案。
1.将和代入非线性方程组中,用牛顿法解出和;
2.以采取分片二次插值,选择(m,n)满足。
如果或,则m=1或4;如果或,则n=1或n=4。选择为插值节点,相应的lagrange形式的插值多项式为。
其中。(k=m-1, m, m+1)
(r=n-1, n, n+1)
并将和代入,便得到了数表。
3.进行曲面拟和系数矩阵, 其中。
k从0逐渐增大,直到,便得到了要求精度的系数。
4.由前面得到的函数关系,根据重新取值的x,y可以分别得到新的数表,比较两组数据观察逼近效果。
三、全部源程。
#include ""
#include ""
#include ""
/高斯列主元法解线性方程组。
void gauss(double a[4][4],double b[4],double x[4])
int k,i,j,ik;
double mik,temp,maxa,sum,tempb;
for (k=0;k<3;k++)
x[3]=b[3]/a[3][3];
for (k=2;k>=0;k--)
/求无穷范数。
double findmax(double arr[4])
int i;
double maxval;
maxval=fabs(arr[0]);
for (i=0;i<4;i++)
if(fabs(arr[i])>maxval)
maxval=fabs(arr[i]);
return (maxval);
void newton(double x, double y,double tuvw[4])
/牛顿法解非线性方程组。
double a[4][4],b[4],var[4]=,d_var[4],maxvar,maxd_var;
int i;
while(1)
for (i=0;i<4;i++)
var[i]=var[i]+d_var[i
/拉格朗日插值系数lk
double lagrange_t(double x,int i,int k)
int m;
double value=1,t[6]=;
for (m=i-1;m<=i+1;m++)
if(m!=k)value=value*(x-t[m])/t[k]-t[m]);
return value;
/拉格朗日插值系数lr
double lagrange_u(double y,int j,int r)
int m;
double value=1;
double u[6]=;
for (m=j-1;m<=j+1;m++)
if(m!=r)value=value*(y-u[m])/u[r]-u[m
return value;
/二元二次分片代数插值。
double interpolation(double tt,double uu)
int i,j,k,r;
double zvalue;
double z[6][6]=,
switch (int(10*tt))
switch (int(5*uu))
zvalue=0;
for (k=i-1;k<=i+1;k++)
for (r=j-1;r<=j+1;r++)
zvalue+=z[k][r]*lagrange_t(tt,i,k)*lagrange_u(uu,j,r);/拉格朗日插值系数lk,lr
return zvalue;
/初始化矩阵b
void init_b(double b[10],int k)
double x[11],sum;
int i,j,m;
for (i=0;i<11;i++)
x[i]=0.08*i;
for (i=0;i<11;i++)
/初始化矩阵g
void init_g(double g[10],int k)
int i,j,m;
double y[21],sum;
for (i=0;i<21;i++)
y[i]=0.5+0.05*i;
for (i=0;i<21;i++)
/求逆矩阵。
void inverse(double a[10],int n)
double b[10][20],c[10][10],temp;
int i,j,k;
for (i=0;i for (j=0;j<2*n;j++)
if(jb[i][j]=a[i][j];
else b[i][j]=0;
for (i=0;i b[i][n+i]=1;
北航研究生数值分析B作业
设有的矩阵。其中矩阵的特征值满足 试求 1.的值。2.的与数最接近的特征值。3.的 谱范数 条件数和行列式。1.算法的设计方案 本题的核心算法是幂法 带原点平移的幂法 反幂法和lu分解法,要点在于选择算法时,应使的所有零元素都不存储。故算法设计的思路如下,第一步,对使用幂法 powermethod ...
北航研究生数值分析作业第二题
一 算法设计方案。1.按照题目给出的矩阵定义对矩阵a赋初值 对应的函数为a init 2.对矩阵a进行householder变换,使其拟上三角化 对应的函数为householder 3.输出拟上三角化后的a 对应的函数为aout int 4.对拟上三角化后的矩阵a使用带双步位移的qr分解法逐次迭代 ...
研究生数值分析作业题
11级研究生数值分析习题。第一章误差及相关问题。1.设的相对误差为,求的绝对误差。2.要使的相对误差不超过0.1 应取几位有效数字?解 知识点 有效数字和相对误差间的关系。因为的首位数字为4,设近视数有n位有效数字,所以有 令 解得 所以有4位有效数字。3.用x近似即最大为多少时,该近似计算的截断误...