北航研究生数值分析A作业三

发布 2022-09-15 04:33:28 阅读 4005

数值分析(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近似即最大为多少时,该近似计算的截断误...