西北工业大学数值分析(附答案)

合集下载

西工大研究生复试数值分析试题

西工大研究生复试数值分析试题

解:Euler 预测校正公式为
(0) yn 1 yn 1
由 x0 0,
y1(0) y 1
y0 y ( x0 ) 1 , h 0.1 求得 y ( x1 ) 近似值计算如下
求得 y ( x2 ) 近似值计算如下
y1(0) y 1
4. (12 分)已知矩阵 A ( aij )33 过程精确进行,不要用计算器)
1 1 1 (计算 1 1 1 ,使用 Jacobi 方法求矩阵 A 的所有特征值。 1 1 2
第 3 页 共 8 页
解:将第二行第一列的元素化为零,因
a11 a22

a12 0 ,所以选择的旋转矩阵为

* *
(2) 有效数 x1 0.5 , x2 2.0 ,依据绝对误差限传播公式, 函数值 x1 x2 的近似值 x1 x2 的绝对误差限近似为____ __(小数点后保留三位) ;
x1 x2 1 (3) 线 性 方 程 组 x1 2 x2 1.5 的 最 小 二 乘 解 满 足 的 法 方 程 组 ( 正 规 方 程 组 ) 是 2 x 2 x 2.5 2 1 x1 x2 ;
b b

b
a
f ( x)dx Ai f ( xi ) 是 一 种 高 斯 型 求 积 公 式 , 则 有 积 分
i 0
n
n

a
li ( x)dx li2 ( x)dx , 其中 li ( x)
a
k 0 k i
( x xk ) . 该论断 ( xi xk )

数值分析期末考试和答案

数值分析期末考试和答案

数值分析期末考试和答案一、单项选择题(每题2分,共20分)1. 在数值分析中,下列哪个方法用于求解线性方程组?A. 插值法B. 迭代法C. 直接法D. 拟合法答案:C2. 以下哪个数值方法是用于求解非线性方程的?A. 高斯消元法B. 牛顿迭代法C. 线性插值法D. 拉格朗日插值法答案:B3. 在数值积分中,梯形法则的误差与下列哪个因素无关?A. 被积函数的二阶导数B. 积分区间的长度C. 积分区间的划分数量D. 被积函数的一阶导数答案:D4. 以下哪个数值方法是用于求解常微分方程的?A. 欧拉方法B. 牛顿迭代法C. 拉格朗日插值法D. 高斯消元法答案:A5. 在数值分析中,下列哪个方法用于求解特征值问题?A. 高斯消元法B. 幂迭代法C. 牛顿迭代法D. 梯形法则答案:B6. 以下哪个数值方法是用于求解线性最小二乘问题的?A. 高斯消元法B. 梯形法则C. 正交分解法D. 牛顿迭代法答案:C7. 在数值分析中,下列哪个方法用于求解非线性方程组?A. 高斯消元法B. 牛顿迭代法C. 线性插值法D. 欧拉方法答案:B8. 在数值分析中,下列哪个方法用于求解偏微分方程?A. 有限差分法B. 牛顿迭代法C. 线性插值法D. 梯形法则答案:A9. 在数值分析中,下列哪个方法用于求解优化问题?A. 高斯消元法B. 梯形法则C. 牛顿迭代法D. 单纯形法答案:D10. 在数值分析中,下列哪个方法用于求解插值问题?A. 高斯消元法B. 梯形法则C. 牛顿迭代法D. 拉格朗日插值法答案:D二、填空题(每题2分,共20分)1. 在数值分析中,求解线性方程组的直接法包括______消元法和______消元法。

答案:高斯;LU2. 牛顿迭代法的收敛速度是______阶的。

答案:二3. 梯形法则的误差与被积函数的______阶导数有关。

答案:二4. 欧拉方法是一种求解______阶常微分方程的数值方法。

答案:一5. 幂迭代法是求解______特征值问题的数值方法。

西工大noj答案解析(完整版)

西工大noj答案解析(完整版)

西北工业大学POJ答案绝对是史上最全版(不止100题哦……按首字母排序)1.“1“的传奇2.A+B3.A+BⅡ4.AB5.ACKERMAN6.Arithmetic Progressions7.Bee8.Checksum algorithm9.Coin Test10.Dexter need help11.Double12.Easy problem13.Favorite number14.Graveyard15.Hailstone16.Hanoi Ⅱ17.Houseboat18.Music Composer19.Redistribute wealth20.Road trip21.Scoring22.Specialized Numbers23.Sticks24.Sum of Consecutive25.Symmetric Sort26.The Clock27.The Ratio of gainers to losers28.VOL大学乒乓球比赛29.毕业设计论文打印30.边沿与内芯的差31.不会吧,又是A+B32.不屈的小蜗33.操场训练34.插入链表节点35.插入排序36.插入字符37.成绩表计算38.成绩转换39.出租车费40.除法41.创建与遍历职工链表42.大数乘法43.大数除法44.大数加法45.单词频次46.迭代求根47.多项式的猜想48.二分查找49.二分求根50.发工资的日子51.方差52.分离单词53.分数拆分54.分数化小数55.分数加减法56.复数57.高低交换58.公园喷水器59.韩信点兵60.行程编码压缩算法61.合并字符串62.猴子分桃63.火车站64.获取指定二进制位65.积分计算66.级数和67.计算A+B68.计算PI69.计算π70.计算成绩71.计算完全数72.检测位图长宽73.检查图像文件格式74.奖金发放75.阶乘合计76.解不等式77.精确幂乘78.恐怖水母79.快速排序80.粒子裂变81.链表动态增长或缩短82.链表节点删除83.两个整数之间所有的素数84.路痴85.冒泡排序86.你会存钱吗87.逆序整数88.排列89.排列分析90.平均值函数91.奇特的分数数列92.求建筑高度93.区间内素数94.三点顺序95.山迪的麻烦96.删除字符97.是该年的第几天98.是该年的第几天?99.数据加密100.搜索字符101.所有素数102.探索合数世纪103.特殊要求的字符串104.特殊整数105.完全数106.王的对抗107.危险的组合108.文件比较109.文章统计110.五猴分桃111.小型数据库112.幸运儿113.幸运数字”7“114.选择排序115.寻找规律116.循环移位117.延伸的卡片118.羊羊聚会119.一维数组”赋值“120.一维数组”加法“121.勇闯天涯122.右上角123.右下角124.圆及圆球等的相关计算125.圆及圆球等相关计算126.程序员添加行号127.找出数字128.找幸运数129.找最大数130.整数位数131.重组字符串132.子序列的和133.子字符串替换134.自然数立方的乐趣135.字符串比较136.字符串复制137.字符串加密编码138.字符串逆序139.字符串排序140.字符串替换141.字符串左中右142.组合数143.最次方数144.最大乘积145.最大整数146.最小整数147.最长回文子串148.左上角149.左下角1.“1“的传奇#include <stdio.h>#include <stdlib.h>#include <math.h>int main(){int n,i,j,k=0,x=1,y,z,m,p,q,a,s=0; scanf("%d",&n);m=n;for(i=1;i<12;i++){m=m/10;k++;if(m==0)break;}q=n;k=k-1;for(a=1;a<=k;a++){x=x*10;}y=q%x;z=q/x;p=q-y;if(z>=2)s=s+x+z*k*(x/10);elses=s+z*k*(x/10);for(j=p;j<=n;j++){m=j;for(i=1;i<12;i++) {x=m%10;if(x==1)s++;m=m/10;if(m==0)break;}}printf("%d",s);return 0;}2.A+B#include <stdio.h>int doubi(int n,int m) {n=n+m;n=n%100;return n;}int main(){int t,i,a[100],n,m;scanf("%d",&t);for (i=0;i<=(t-1);i++){ scanf("%d%d",&n,&m); a[i]=doubi(n,m);}for (i=0;i<=(t-1);i++)printf("%d\n",a[i]); return 0;}3.A+BⅡ#include <stdio.h>int main(){int A,B,sum;scanf("%d%d",&A,&B);sum=A+B;printf("%d\n",sum); return 0;}4.AB#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){char s[100],q[100];double a,b,c;int n=0,i;scanf("%lf%lf",&a,&b);c=a*b;sprintf(s,"%.0lf",c);for(i=0;i<strlen(s);i++){n=n+s[i]-48;}while(n>=10){sprintf(q,"%d",n);n=0;for(i=0;i<strlen(q);i++) n=n+q[i]-48;}printf("%d",n);return 0;}5.ACKERMAN#include <stdio.h>#include <stdlib.h>#include <math.h>int ack(int x,int y){int n;if (x==0) {n=y+1;return n;}else if (y==0) n=ack(x-1,1);else n=ack(x-1,ack(x,y-1)); return n;}int main(){int m,b;scanf("%d%d",&m,&b);m=ack(m,b);printf("%d",m);return 0;}6.Arithmetic Progressions#include <stdio.h>#include <stdlib.h>#include <math.h>int g(int n){int i;if(n==1) return 0;if(n==2) return 1;if(n==3) return 1;for(i=2;i<=sqrt(n);i++) if(n%i==0) return 0; return 1;}int f(int a,int b,int c){int i=0,s=a-b;if(c==1&&g(a)==1) return a;if(b==0&&g(a)!=1) return -1;while(1){s=s+b;if(g(s)) i++;if(i>=c) break;}return s;int main(){int a,b,c,d[100],i=0,n;while(1){scanf("%d%d%d",&a,&b,&c); if(a==0&&b==0&&c==0) break; d[i]=f(a,b,c);i++;}n=i;for(i=0;i<n;i++)printf("%d\n",d[i]);return 0;}7.Bee#include <stdio.h>#include <stdlib.h>int main()int A[100],i=0,j,k,female=0,male=1,x; for(;;i++){scanf("%d",&A[i]);if(A[i]==-1)break;}for(j=0;j<i;j++){female=0,male=1;for(k=1;k<A[j];k++){x=female;female=male;male=x+male+1;}printf("%d %d\n",male,female+male+1);}return 0;}8.Checksum algorithm#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){int i,n,t,j;char s[100][100];for(i=0;;i++){gets(s[i]);if(s[i][0]=='#') break;}n=i;for(i=0;i<n;i++){t=0;for(j=0;j<strlen(s[i]);j++)if(s[i][j]==32) t=t;else t=t+(j+1)*(s[i][j]-64);printf("%d\n",t);}return 0;}9.Coin Test#include <stdio.h>#include <stdlib.h>int main(){char A[100000];int n,i=0,a=0,b=0,j; double x;while(1){scanf("%c",&A[i]);if(A[i]=='\n')break;i++;}for(j=0;j<i;j++){if(A[j]=='S'){printf("WA");goto OH;}if(A[j]=='U')a++;if(A[j]=='D')b++;}x=a*1.0/(a+b)*1.0;if(x-0.5>0.003||x-0.5<-0.003) printf("Fail");elseprintf("%d/%d",a,a+b);OH:return 0;}10.Dexter need help#include <stdio.h>int fun(int a){if(a==1) return 1;elsereturn fun(a/2)+1;}int main(){int a,b[100],i=0,j; while(1){scanf("%d",&a);if(a==0)break;b[i]=fun(a);i++;}for(j=0;j<i;j++){printf("%d\n",b[j]); }return 0;}11.Double#include <stdio.h>#include <stdlib.h>#include <math.h>int main(){int a[100],b[100],i,j,n,t=0; for(i=0;;i++){scanf("%d",&a[i]);if(a[i]==0) break;}n=i;for(i=0;i<n;i++)b[i]=2*a[i];for(i=0;i<n;i++)for(j=0;j<n;j++)if(a[i]==b[j]) t++;printf("%d",t);return 0;}12.Easy problem#include <stdio.h>#include <stdlib.h>#include <math.h>int main(){int N,i,n,j=0;scanf("%d",&N);for(i=2;i<N+1;i++){if((N+1)%i==0)j++; }printf("%d",j/2);return 0;}13.Favorite number#include <stdio.h>#include <string.h>#define MAXNUM 100000int prime_number = 0;int prime_list[MAXNUM]; bool is_prime[MAXNUM];int ans[MAXNUM + 2];int dp[MAXNUM + 2];void set_prime() {int i, j;memset(is_prime, 0, sizeof(is_prime));for (i = 2; i < MAXNUM; i++) {if (is_prime[i] == 0) {prime_list[prime_number++] = i;if (i >= MAXNUM / i) continue;for (j = i * i; j < MAXNUM; j+=i) { is_prime[j] = 1;}}}}int main() {int i, j, k,o=0,d[100];memset(dp, -1, sizeof(dp));set_prime();ans[0] = 0;dp[1] = 0;for (i = 1; i <= MAXNUM; i++) {ans[i] = ans[i - 1] + dp[i];if (dp[i + 1] == -1 || dp[i + 1] > dp[i] + 1) {dp[i + 1] = dp[i] + 1;}for (j = 0; j < prime_number; j++) {if (i > MAXNUM / prime_list[j]) break; k = i * prime_list[j];if (dp[k] == -1 || dp[k] > dp[i] + 1) { dp[k] = dp[i] + 1;}}}while (scanf("%d%d", &i, &j) == 2 && (i || j)) { d[o]=ans[j] - ans[i - 1];o++;}for(i=0;i<o;i++)printf("%d\n",d[i]);}14.Graveyard#include <stdio.h>#include <stdlib.h>#include <math.h>int main(){int a[100],b[100],n,i,j;double s,p,l,t;for(i=0;;i++){scanf("%d%d",&a[i],&b[i]);if(a[i]==0&&b[i]==0) break;}n=i;for(i=0;i<n;i++){p=10000;if(b[i]%a[i]==0){printf("0.0000\n");continue;}; t=10000/((double)a[i]);for(j=1;j<a[i]+b[i];j++){l=10000/((double)(a[i]+b[i]));l=t-j*l;l=fabs(l);if(l<p) p=l;}s=(a[i]-1)*p;printf("%.4lf\n",s); }return 0;}15.Hailstone#include <stdio.h>#include <stdlib.h>#include <string.h>int f(int n){int s=1;while(1){if(n==1) return s;else if(n%2==0) n=n/2,s++; else n=3*n+1,s++;}}int main(){int n,m,i,j=0,t;scanf("%d%d",&m,&n);printf("%d %d",m,n);if(m>n) t=m,m=n,n=t;for(i=m;i<=n;i++)if(f(i)>j) j=f(i);printf(" %d",j);return 0;}16.Hanoi Ⅱ#include <stdio.h>#include <stdlib.h>#define M 70int start[M], targe[M];long long f(int *p, int k, int fina) {if(k==0) return 0;if(p[k]==fina) return f(p,k-1,fina);return f(p,k-1,6-fina-p[k])+(1LL<<(k-1));}int main (){long long ans;int n;while(scanf("%d",&n),n){int i;for(i=1;i<=n;i++) scanf("%d",&start[i]);for(i=1;i<=n;i++) scanf("%d",&targe[i]);int c=n;for(;c>=1&&start[c]==targe[c];c--);if(c==0){printf("0\n"); continue;}int other=6-start[c]-targe[c];ans=f(start,c-1,other)+f(targe,c-1,other)+1; printf("%lld\n",ans);}return 0;}17.Houseboat#include <stdio.h>#include <stdlib.h>#include <math.h>#define pi 3.1415926int f(float x,float y){int i;for(i=0;;i++)if(50*i>sqrt(x*x+y*y)*sqrt(x*x+y*y)*pi/2) break;return i;}int main(){int n,i,a[100];float x,y;scanf("%d",&n);for(i=0;i<n;i++){scanf("%f%f",&x,&y);a[i]=f(x,y);}for(i=0;i<n;i++)printf("%d %d\n",i+1,a[i]);return 0;}18.Music Composer19.Redistribute wealth#include <stdio.h>#include <stdlib.h>#include <math.h>int main(){inta[1000],b[1000],n,i,j,s,sum,t,m,mid,c[100],k=0; while(1){scanf("%d",&n);if(n==0) break;{s=0;for(i=1;i<=n;i++){scanf("%d",&a[i]);s=s+a[i];}m=s/n;b[1]=a[1]-m;b[0]=0;for(i=2;i<n;++i)b[i]=b[i-1]+a[i]-m;for(i=0;i<n;i++)for(j=0;j<n-1-i;j++)if(b[j]>b[j+1])t=b[j],b[j]=b[j+1],b[j+1]=t;mid=b[n/2];sum=0;for(i=0;i<=n-1;++i) sum=sum+fabs(mid-b[i]); c[k]=sum;k++;}}for(i=0;i<k;i++) printf("%d\n",c[i]);return 0;}20.Road trip#include <stdio.h>#include <stdlib.h>#include <math.h>int f(int n){int a[100],b[100],i,s;for(i=0;i<n;i++)scanf("%d%d",&a[i],&b[i]); s=a[0]*b[0];for(i=1;i<n;i++)s=s+a[i]*(b[i]-b[i-1]);return s;}int main(){int n,c[100],i=0;while(1){scanf("%d",&n);if(n==-1) break;c[i]=f(n);i++;}n=i;for(i=0;i<n;i++)printf("%d\n",c[i]);return 0;}21.Scoring#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){int i,j,sum,min,c,count,n,a,b; char s1[50],s2[50];scanf("%d",&n);for(i=0;i<n;i++){count=sum=0;scanf("%s",s2);for(j=0;j<4;j++){scanf("%d%d",&a,&b);if(b!=0){sum+=(a-1)*20+b;count++;}}if(i==0){c=count,min=sum;strcpy(s1,s2);}else if(count>c||(count==c&&sum<min)) {min=sum;c=count;strcpy(s1,s2);}}printf("%s %d %d\n",s1,c,min); return 0;}22.Specialized Numbers#include <stdio.h>#include <stdlib.h>int main(){int i,n,sum10,sum12,sum16;for(i=2992;i<3000;i++){n=i;sum10=0;while(n){sum10+=n%10;n/=10;}n=i;sum12=0;while(n){sum12+=n%12;n/=12;}n=i;sum16=0;while(n){sum16+=n%16;n/=16;}if(sum10==sum12&&sum12==sum16) printf("%d\n",i);}return 0;}23.Sticks#include <stdio.h>#include <string.h>#include <stdlib.h>int len[64], n, minlen, get;bool b[64];int cmp(const void *a, const void *b){return *(int *)a < *(int *)b ? 1 : -1;}bool dfs(int nowlen, int nowget, int cnt){if(cnt >= n) return false;if(get == nowget) return true;int i;bool f = false;if(nowlen == 0) f = true;for(i = cnt; i < n; i++){if(!b[i]){if(len[i] + nowlen == minlen) {b[i] = true;if(dfs(0, nowget+1, nowget)) return true;b[i] = false;return false;}else if(len[i] + nowlen < minlen){b[i] = true;if(dfs(nowlen+len[i], nowget, i+1)) return true;b[i] = false;if(f) return false;while(i + 1 < n && len[i] == len[i+1]) i++;}}}return false;}int main(){int i, tollen;while(scanf("%d", &n), n){tollen = 0;int j = 0, p;for(i = 0; i < n; i++){scanf("%d", &p);if(p <= 50){len[j] = p;tollen += len[j];j++;}}n = j;if(n == 0){printf("0\n");continue;}qsort(len, n, sizeof(int), cmp); for(minlen = len[0]; ; minlen++) {if(tollen % minlen) continue; memset(b, 0, sizeof(b));get = tollen / minlen;if(dfs(0, 0, 0)){printf("%d\n", minlen);break;}}}return 0;}24.Sum of Consecutive#include <stdio.h>#include <stdlib.h>#include <string.h>int len[64],n,minlen,get;int b[64];int cmp(const void *a,const void *b){return *(int *)a<*(int *)b?1:-1;}int dfs(int nowlen,int nowget,int cnt){if(cnt>=n) return 0;if(get==nowget) return 1;int i,f=0;if(nowlen==0) f=1;for(i=cnt;i<n;i++){if(len[i]+nowlen==minlen){b[i]=1;if(dfs(0,nowget+1,nowget)) return 1;b[i]=0;return 0;}else if(len[i]+nowlen<minlen){b[i]=1;if(dfs(nowlen+len[i],nowget,i+1)) return 1;b[i]=0;if(f) return 0;while(i+1<n&&len[i]==len[i+1]) i++;}}return 0;}int main(){int i,tollen,q=0,c[100];while(scanf("%d",&n),n){tollen=0;int j=0,p;for(i=0;i<n;i++){scanf("%d",&p);if(p<=50){len[j]=p;tollen+=len[j];j++;}}n=j;if(n==0){printf("0\n");continue;}qsort(len,n,sizeof(int),cmp); for(minlen=len[0];;minlen++){if(tollen%minlen) continue; memset(b,0,sizeof(b));get=tollen/minlen;if(dfs(0,0,0)){c[q]=minlen;q++;break;}}}for(i=0;i<q;i++)printf("%d\n",c[i]);return 0;}25.Symmetric Sort#include <stdio.h>#include <stdlib.h>#include <math.h>int main(){double A[100];int i=0,j=0,k=0,l=0,sum=0; while(1){scanf("%lf",&A[i]);if(A[i]==0)break;i++;}for(j=0;j<i;j++){if(A[j]==2)printf("1\n");else{int B[10000],m=1,number=0;double n;B[0]=2;for(k=3;k<=A[j];k+=2){n=(double)k;for(l=2;l<=sqrt(n);l++){if(k%l==0)goto ai;}B[m]=k;m++;ai:;}for(k=0;k<m;k++){sum=0;for(l=k;l<m;l++){sum+=B[l];if(sum==A[j]){number++;break;}}}printf("%d\n",number);}}return 0;}26.The Clock#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){char s[100][100],a[100];int i,j,n;scanf("%d",&n);for(i=0;i<n;i++) scanf("%s",s[i]);for(i=0;i<n-1;i++)for(j=0;j<n-1-i;j++)if(strlen(s[i])>strlen(s[i+1]))strcpy(a,s[i]),strcpy(s[i],s[i+1]),strcpy(s[i+1],a) ;if(n%2==0){for(i=0;i<n-1;i=i+2) printf("%s ",s[i]);printf("%s ",s[n-1]);for(i=i-3;i>0;i=i-2) printf("%s ",s[i]);}else{for(i=0;i<n-1;i=i+2) printf("%s ",s[i]); printf("%s ",s[n-1]);for(i=i-1;i>0;i=i-2) printf("%s ",s[i]); }return 0;}27.The Ratio of gainers to losers#include<stdio.h>int main(){char s[5];int i,sum=0;gets(s);for(i=0;s[i]!='\0';i++){switch(s[i]){case'I': sum+=1;break;case'V': sum=5-sum;break; case'X':sum=10-sum;break; }}printf("%d\n",sum);return 0;}28.VOL大学乒乓球比赛#include <stdio.h>#include <stdlib.h>int main(){printf("A=Z\nB=X\nC=Y\n"); return 0;}29.毕业设计论文打印#include <stdio.h>#include <stdlib.h>int main(){int a[100],j=1,i,n,m;scanf("%d%d",&n,&m);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n;i++)if(a[i]>a[m]) j++;printf("%d",j++);return 0;}30.边沿与内芯的差#include <stdio.h>#include <stdlib.h>int main(){int A[100][100],i,j,m,n,s=0,t=0; scanf("%d%d",&n,&m);for(i=1;i<=n;i++){for(j=1;j<=m;j++){scanf("%d",&A[i][j]);。

数值分析课后习题答案

数值分析课后习题答案

习 题 一 解 答1.取3.14,3.15,227,355113作为π的近似值,求各自的绝对误差,相对误差和有效数字的位数。

分析:求绝对误差的方法是按定义直接计算。

求相对误差的一般方法是先求出绝对误差再按定义式计算。

注意,不应先求相对误差再求绝对误差。

有效数字位数可以根据定义来求,即先由绝对误差确定近似数的绝对误差不超过那一位的半个单位,再确定有效数的末位是哪一位,进一步确定有效数字和有效数位。

有了定理2后,可以根据定理2更规范地解答。

根据定理2,首先要将数值转化为科学记数形式,然后解答。

解:(1)绝对误差:e(x)=π-3.14=3.14159265…-3.14=0.00159…≈0.0016。

相对误差:3()0.0016()0.51103.14r e x e x x -==≈⨯有效数字:因为π=3.14159265…=0.314159265…×10,3.14=0.314×10,m=1。

而π-3.14=3.14159265…-3.14=0.00159…所以│π-3.14│=0.00159…≤0.005=0.5×10-2=21311101022--⨯=⨯所以,3.14作为π的近似值有3个有效数字。

(2)绝对误差:e(x)=π-3.15=3.14159265…-3.14=-0.008407…≈-0.0085。

相对误差:2()0.0085()0.27103.15r e x e x x --==≈-⨯有效数字:因为π=3.14159265…=0.314159265…×10,3.15=0.315×10,m=1。

而π-3.15=3.14159265…-3.15=-0.008407…所以│π-3.15│=0.008407……≤0.05=0.5×10-1=11211101022--⨯=⨯所以,3.15作为π的近似值有2个有效数字。

(3)绝对误差:22() 3.141592653.1428571430.0012644930.00137e x π=-=-=-≈-相对误差:3()0.0013()0.4110227r e x e x x--==≈-⨯有效数字: 因为π=3.14159265…=0.314159265…×10, 223.1428571430.3142857143107==⨯,m=1。

《数值分析》所有参考答案

《数值分析》所有参考答案
解:
等价三角方程组
, ,
11.设计算机具有4位字长。分别用Gauss消去法和列主元Gauss消去法解下列方程组,并比较所得的结果。
解:Gauss消去法
回代
列主元Gauss消去
15.用列主元三角分解法求解方程组。其中
A= ,
解:
等价三角方程组
回代得
, , ,
16.已知 ,求 , , 。
解:
, ,
17.设 。证明
,(II)

当 时
当 时
迭代格式(II)对任意 均收敛
3) ,
构造迭代格式 (III)

当 时
当 时
迭代格式(III)对任意 均收敛
4)
取格式(III)
, , ,
4.用简单迭代格式求方程 的所有实根,精确至有3位有效数。
解:
当 时, ,
1 2
当 时


, ,
1)
迭代格式 ,
,
当 时, ,
任取 迭代格式收敛于
是中的一种向量范数。
解:
当 时存在 使得

,
所给 为 上的一个范数
18.设 。证明
(1) ;
(2) ;
(3) 。
解:(1)
(2)
(3)
19.设
A=
求 , , 及 , 。
解: ,
Newton迭代格式
,
20.设 为 上任意两种矩阵(算子)范数,证明存在常数
, 使得
对一切 均成立。
解:由向量范数的等价性知道存在正常数 使得
,
=0.187622
[23.015625 , 23.015625+0.187622]

西北工业大学数值分析(附答案)

西北工业大学数值分析(附答案)

西北工业大学数值分析习题集第一章 绪 论1. 设x >0,x 的相对误差为δ,求ln x 的误差.2. 设x 的相对误差为2%,求nx 的相对误差.3. 下列各数都是经过四舍五入得到的近似数,即误差限不超过最后一位的半个单位,试指出它们是几位有效数字: *****123451.1021,0.031,385.6,56.430,7 1.0.x x x x x =====⨯4. 利用公式(3.3)求下列各近似值的误差限:********12412324(),(),()/,i x x x ii x x x iii x x ++其中****1234,,,x x x x 均为第3题所给的数.5. 计算球体积要使相对误差限为1%,问度量半径R 时允许的相对误差限是多少?6. 设028,Y =按递推公式1n n Y Y -= ( n=1,2,…)计算到100Y .27.982(五位有效数字),试问计算100Y 将有多大误差?7. 求方程25610x x -+=的两个根,使它至少具有四位有效数字≈27.982).8. 当N 充分大时,怎样求211Ndx x +∞+⎰?9. 正方形的边长大约为100㎝,应怎样测量才能使其面积误差不超过1㎝2?10. 设212S gt =假定g 是准确的,而对t 的测量有±0.1秒的误差,证明当t 增加时S 的绝对误差增加,而相对误差却减小.11. 序列{}n y 满足递推关系1101n n y y -=-(n=1,2,…),若0 1.41y =≈(三位有效数字),计算到10y 时误差有多大?这个计算过程稳定吗?12. 计算61)f =, 1.4≈,利用下列等式计算,哪一个得到的结果最好?3--13.()ln(f x x =,求f (30)的值.若开平方用六位函数表,问求对数时误差有多大?若改用另一等价公式ln(ln(x x =-计算,求对数时误差有多大?14. 试用消元法解方程组{101012121010;2.x x x x +=+=假定只用三位数计算,问结果是否可靠?15. 已知三角形面积1sin ,2s ab c =其中c 为弧度,02c π<<,且测量a ,b ,c 的误差分别为,,.a b c ∆∆∆证明面积的误差s ∆满足.s a b c s a b c ∆∆∆∆≤++第二章 插值法1. 根据(2.2)定义的范德蒙行列式,令2000011211121()(,,,,)11n n n n n n n n n x x x V x V x x x x x x x xxx ----==证明()n V x 是n 次多项式,它的根是01,,n x x -,且 101101()(,,,)()()n n n n V x V x x x x x x x ---=--.2. 当x = 1 , -1 , 2 时, f (x)= 0 , -3 , 4 ,求f (x )的二次插值多项式.3.4. 给出cos x ,0°≤x ≤90°的函数表,步长h =1′=(1/60)°,若函数表具有5位有效数字,研究用线性插值求cos x 近似值时的总误差界.5. 设0k x x kh =+,k =0,1,2,3,求032max ()x x x l x ≤≤.6. 设jx 为互异节点(j =0,1,…,n ),求证:i) 0()(0,1,,);nk kj jj x l x x k n =≡=∑ii) 0()()1,2,,).nk jj j xx l x k n =-≡0(=∑1. 设[]2(),f x C a b ∈且()()0f a f b ==,求证21()()().8max max a x ba xb f x b a f x ≤≤≤≤≤-"2. 在44x -≤≤上给出()xf x e =的等距节点函数表,若用二次插值求xe 的近似值,要使截断误差不超过610-,问使用函数表的步长h 应取多少? 3. 若2nn y =,求4n y ∆及4n y δ. 4. 如果()f x 是m 次多项式,记()()()f x f x h f x ∆=+-,证明()f x 的k 阶差分()(0)k f x k m ∆≤≤是m k -次多项式,并且()0(m l f x l +∆=为正整数).5. 证明1()k k k k k k f g f g g f +∆=∆+∆.6. 证明110010.n n kkn n k k k k f gf g f g g f --+==∆=--∆∑∑7. 证明1200.n j n j y y y -=∆=∆-∆∑8. 若1011()n n n n f x a a x a x a x --=++++有n 个不同实根12,,,n x x x ,证明{10,02;, 1.1()n k njk n a k n j jx f x -≤≤-=-=='∑9. 证明n 阶均差有下列性质: i)若()()F x cf x =,则[][]0101,,,,,,n n F x x x cf x x x =;ii) 若()()()F x f x g x =+,则[][][]010101,,,,,,,,,n n n F x x x f x x x g x x x =+.10. 74()31f x x x x =+++,求0172,2,,2f ⎡⎤⎣⎦及0182,2,,2f ⎡⎤⎣⎦.11. 证明两点三次埃尔米特插值余项是(4)22311()()()()/4!,(,)k k k k R x f x x x x x x ++=ξ--ξ∈并由此求出分段三次埃尔米特插值的误差限.12. 求一个次数不高于4次的多项式()P x ,使它满足(0)(1)P P k =-+并由此求出分段三次埃尔米特插值的误差限. 13. 试求出一个最高次数不高于4次的函数多项式()P x ,以便使它能够满足以下边界条件(0)(0)0P P ='=,(1)(1)1P P ='=,(2)1P =.14. 设[](),f x C a b ∈,把[],a b 分为n 等分,试构造一个台阶形的零次分段插值函数()n x ϕ并证明当n →∞时,()n x ϕ在[],a b 上一致收敛到()f x .15. 设2()1/(1)f x x =+,在55x -≤≤上取10n =,按等距节点求分段线性插值函数()h I x ,计算各节点间中点处的()h I x 与()f x 的值,并估计误差. 16. 求2()f x x =在[],a b 上的分段线性插值函数()h I x ,并估计误差. 17. 求4()f x x =在[],a b 上的分段埃尔米特插值,并估计误差.试求三次样条插值并满足条件i) (0.25) 1.0000,(0.53)0.6868;S S '='= ii)(0.25)(0.53)0.S S "="=19. 若[]2(),f x C a b ∈,()S x 是三次样条函数,证明 i)[][][][]222()()()()2()()()bbbbaaaaf x dx S x dx f x S x dx S x f x S x dx"-"="-"+""-"⎰⎰⎰⎰;ii) 若()()(0,1,,)i i f x S x i n ==,式中i x 为插值节点,且01n a x x x b =<<<=,则[][][]()()()()()()()()()baS x f x S x dx S b f b S b S a f a S a ""-"="'-'-"'-'⎰.20. 编出计算三次样条函数()S x 系数及其在插值节点中点的值的程序框图(()S x 可用(8.7)式的表达式).第三章 函数逼近与计算1. (a)利用区间变换推出区间为[],a b 的伯恩斯坦多项式.(b)对()sin f x x =在[]0,/2π上求1次和三次伯恩斯坦多项式并画出图形,并与相应的马克劳林级数部分和误差做比较. 2. 求证:(a)当()m f x M ≤≤时,(,)n m B f x M ≤≤. (b)当()f x x =时,(,)n B f x x =.3. 在次数不超过6的多项式中,求()sin 4f x x =在[]0,2π的最佳一致逼近多项式.4. 假设()f x 在[],a b 上连续,求()f x 的零次最佳一致逼近多项式.5. 选取常数a ,使301max x x ax≤≤-达到极小,又问这个解是否唯一?6. 求()sin f x x =在[]0,/2π上的最佳一次逼近多项式,并估计误差.7. 求()x f x e =在[]0,1上的最佳一次逼近多项式.8. 如何选取r ,使2()p x x r =+在[]1,1-上与零偏差最小?r 是否唯一? 9. 设43()31f x x x =+-,在[]0,1上求三次最佳逼近多项式.10. 令[]()(21),0,1n n T x T x x =-∈,求***0123(),(),(),()T x T x T x T x .11. 试证{}*()nTx 是在[]0,1上带权ρ=的正交多项式.12. 在[]1,1-上利用插值极小化求11()f x tg x -=的三次近似最佳逼近多项式. 13. 设()xf x e =在[]1,1-上的插值极小化近似最佳逼近多项式为()n L x ,若n f L ∞-有界,证明对任何1n ≥,存在常数n α、n β,使11()()()()(11).n n n n n T x f x L x T x x ++α≤-≤β-≤≤14. 设在[]1,1-上234511315165()128243843840x x x x x x ϕ=-----,试将()x ϕ降低到3次多项式并估计误差.15. 在[]1,1-上利用幂级数项数求()sin f x x =的3次逼近多项式,使误差不超过0.005.16. ()f x 是[],a a -上的连续奇(偶)函数,证明不管n 是奇数或偶数,()f x 的最佳逼近多项式*()n n F x H ∈也是奇(偶)函数.17. 求a 、b 使[]220sin ax b x dx π+-⎰为最小.并与1题及6题的一次逼近多项式误差作比较.18. ()f x 、[]1(),g x C a b ∈,定义()(,)()();()(,)()()()();b baaa f g f x g x dxb f g f x g x dx f a g a =''=''+⎰⎰问它们是否构成内积?19. 用许瓦兹不等式(4.5)估计6101x dx x +⎰的上界,并用积分中值定理估计同一积分的上下界,并比较其结果.20. 选择a ,使下列积分取得最小值:1122211(),x ax dx x ax dx----⎰⎰.21. 设空间{}{}10010121,,,span x span x x 1ϕ=ϕ=,分别在1ϕ、2ϕ上求出一个元素,使得其为[]20,1x C ∈的最佳平方逼近,并比较其结果.22.()f x x =在[]1,1-上,求在{}2411,,span x x ϕ=上的最佳平方逼近.23.sin (1)arccos ()n n x u x +=是第二类切比雪夫多项式,证明它有递推关系()()()112n n n u x xu x u x +-=-.24. 将1()sin2f x x=在[]1,1-上按勒让德多项式及切比雪夫多项式展开,求三次最佳平方逼近多项式并画出误差图形,再计算均方误差.25. 把()arccos f x x =在[]1,1-上展成切比雪夫级数.26.2y a bx =+.27.用最小二乘拟合求.29. 编出用正交多项式做最小二乘拟合的程序框图. 30. 编出改进FFT 算法的程序框图. 31. 现给出一张记录{}{}4,3,2,1,0,1,2,3k x =,试用改进FFT 算法求出序列{}k x 的离散频谱{}k C (0,1,,7).k =第四章 数值积分与数值微分1. 确定下列求积公式中的待定参数,使其代数精度尽量高,并指明所构造出的求积公式所具有的代数精度:(1)101()()(0)()hh f x dx A f h A f A f h --≈-++⎰; (2)21012()()(0)()hh f x dx A f h A f A f h --≈-++⎰;(3)[]1121()(1)2()3()/3f x dx f f x f x -≈-++⎰;(4)[][]20()(0)()/1(0)()hf x dx h f f h ah f f h ≈++'-'⎰.2. 分别用梯形公式和辛普森公式计算下列积分:(1)120,84xdx n x =+⎰; (2)1210(1),10x e dx n x --=⎰;(3)1,4n =⎰;(4),6n =.3. 直接验证柯特斯公式(2.4)具有5次代数精度.4. 用辛普森公式求积分10xedx-⎰并计算误差.5. 推导下列三种矩形求积公式:(1)2()()()()()2ba f f x dxb a f a b a 'η=-+-⎰; (2)2()()()()()2ba f f x dxb a f b b a 'η=---⎰;(3)3()()()()()224baa b f f x dx b a f b a +"η=-+-⎰. 6. 证明梯形公式(2.9)和辛普森公式(2.11)当n →∞时收敛到积分()baf x dx⎰.7. 用复化梯形公式求积分()baf x dx⎰,问要将积分区间[],a b 分成多少等分,才能保证误差不超过ε(设不计舍入误差)?8.1x e dx-,要求误差不超过510-.9. 卫星轨道是一个椭圆,椭圆周长的计算公式是S a =θ,这里a 是椭圆的半长轴,c 是地球中心与轨道中心(椭圆中心)的距离,记h 为近地点距离,H 为远地点距离,6371R =公里为地球半径,则(2)/2,()/2a R H h c H h =++=-.我国第一颗人造卫星近地点距离439h =公里,远地点距离2384H =公里,试求卫星轨道的周长. 10. 证明等式3524sin3!5!n nn n ππππ=-+-试依据sin(/)(3,6,12)n n n π=的值,用外推算法求π的近似值.11. 用下列方法计算积分31dyy ⎰并比较结果.(1) 龙贝格方法;(2) 三点及五点高斯公式;(3) 将积分区间分为四等分,用复化两点高斯公式.1. 用三点公式和五点公式分别求21()(1)f x x =+在x =1.0,1.1和1.2处的导数值,并估计误()f x第五章 常微分方程数值解法1. 就初值问题0)0(,=+='y b ax y 分别导出尤拉方法和改进的尤拉方法的近似解的表达式,并与准确解bx ax y +=221相比较。

数值分析 (1)

数值分析 (1)

e * − e = (e * − en ) + (en − e )
2009-09-26 zhwang@ 17
2. 误差的度量
1) 2) 3) 4)
绝对误差 相对误差 有效数字 度量间的关系
2009-09-26
zhwang@
18
1)绝对误差
绝对误差定义:
zhwang@
22
相对误差(续2)
* * e ε ( x r 相对误差限: 的上界,记为 r ) 。 相对误差限:数值
相对误差限也可以通过
ε r* = ε * / x*
来计算。
Remark: 当要求计算相对误差,是指估计一个尽 可能小的相对误差限。 相对误差与相对误差限没有量纲。
分类方法1:若算法包含 有一个进程则称其为串行算法, 否则为并行算法。 分类方法2:从算法执行所 花费的时间角度来讲,若算术运 算占绝大多数时间则称其为数值 型算法,否则为非数值型算法。 本课程介绍数值型串行算 法。(其它类型算法参阅数据结 构、并行算法等课程)
2009-09-26
zhwang@
19
绝对误差(续)
•绝对误差限:
* * 如果存在正数 ε = ε(x ) ,使得有绝对误差
e * = x * − x ≤ ε* ,
则称 ε* 为 x*近似 x 的一个绝对误差限 绝对误差限。 绝对误差限
x ∈ [x * − ε * , x * + ε * ] , x = x * ± ε * 。
Remark: 通常计算中所要求的误差,是指 估计一个尽可能小的绝对误差限。 绝对误差与绝对误差限有量纲。
2009-09-26 zhwang@ 10
算法应用状态
数值分析研究对象以及解决问题方法的 广泛适用性,著名流行软件如Maple、Matlab、 Mathematica等已将其绝大多数内容设计成函 数,简单调用之后便可以得到运行结果。 但由于实际问题的具体特征、复杂性, 以及算法自身的适用范围决定了应用中必须选 择、设计适合于自己特定问题的算法,因而掌 握数值方法的思想和内容是至关重要的。

《数值分析》练习题及答案解析

《数值分析》练习题及答案解析

《数值分析》练习题及答案解析第一章 绪论主要考查点:有效数字,相对误差、绝对误差定义及关系;误差分类;误差控制的基本原则;。

1. 3.142和3.141分别作为π的近似数具有( )和( )位有效数字.A .4和3B .3和2C .3和4D .4和4 答案:A2. 设 2.3149541...x *=,取5位有效数字,则所得的近似值x=___________ .答案:2.31503.若近似数2*103400.0-⨯=x 的绝对误差限为5105.0-⨯,那么近似数有几位有效数字 解:2*103400.0-⨯=x ,325*10211021---⨯=⨯≤-x x 故具有3位有效数字。

4 . 14159.3=π具有4位有效数字的近似值是多少?解:10314159.0⨯= π,欲使其近似值*π具有4位有效数字,必需!41*1021-⨯≤-ππ,3*310211021--⨯+≤≤⨯-πππ,即14209.314109.3*≤≤π即取( , )之间的任意数,都具有4位有效数字。

第二章 非线性方程求根 主要考查点:二分法N 步后根所在的区间,及给定精度下二分的次数计算;非线性方程一般迭代格式的构造,(局部)收敛性的判断,迭代次数计算; 牛顿迭代格式构造;求收敛阶;1.用二分法求方程012=--x x 的正根,要求误差小于0.05。

(二分法)解:1)(2--=x x x f ,01)0(<-=f ,01)2(>=f ,)(x f 在[0,2]连续,故[0,2]为函数的有根区间。

"(1)计算01)1(<-=f ,故有根区间为[1,2]。

(2)计算041123)23()23(2<-=--=f ,故有根区间为]2,23[。

(3)计算0165147)47()47(2>=--=f ,故有根区间为]47,23[。

(4)计算06411813)813()813(2>=--=f ,故有根区间为]813,23[。

计算方法 西北工业大学第一章答案

计算方法 西北工业大学第一章答案

故arctan(x 1) arctan(x) arctan 1 1 xx1
(4)
1 cos x sin x
2sin2 x 2
2sin x cos x 22
2sin x 2
2cos x 2
(5) sin x 的 Taylor 展开为:
2sin x cos x 22
2cos x cos x 22
x3 x5 sin x x

12������∗������∗ ������������������ ������∗������������(������∗) 12������∗������∗ ������������������ ������∗
+
12������∗������∗ ������������������ ������∗������������(������∗) 12������∗������∗ ������������������ ������∗
������������ (������2∗ )
=
������(������2∗) |������2∗|
=
1 2
× 10−3 0.002
=
0.25
������������ (������3∗ )
=
������(������3∗) |������3∗|
=
1 2
× 10−3 0.200
=
0.25
×
10−2

|12
1 √������2∗
������2∗ ������2∗
������������ (������2∗ )|

1 2
������������ (������2∗ )

西北工业大学聂老师数值分析

西北工业大学聂老师数值分析

Mi
+
hi+1 6
M i+1
=
f [xi , xi+1] −
f [xi−1, xi ]
November 6, 2007
yfnie@
19
弯矩方程组
hi 6
M i−1 + hi
+ hi+1 3
Mi
+
hi+1 6
M i+1 =
f [xi , xi+1] −
f [xi−1, xi ]
μ
n−2
⎥ ⎥
⎢ ⎢ ⎢
M3 M
⎥ ⎥ ⎥
=
⎢⎢⎢L6 fL[xL2 , xL3,Lx4 ]
⎥ ⎥ ⎥
⎢⎣
λn−1 2 ⎥⎦ ⎢⎣M n−1 ⎥⎦ ⎢⎣6 f [xn−2 , xn−1, xn ] − μn−1M n ⎥⎦
方程组的解存在惟一(系数矩阵严格对角占优), 进而已知弯矩边界条件的三次样条插值函数存在惟一。
+
⎜⎜⎝⎛
f
(xi−1) −
M
i
h2
−1 i
6
⎟⎟⎠⎞
xi − hi
x
+ ⎜⎜⎝⎛
f
(xi )

M ihi2 6
⎟⎟⎠⎞
x
− xi−1 hi
s′( x)
=
−M i−1
(xi − x)2 2hi
+
Mi
(x − xi−1)2 2hi
+
f
( xi
)
−f hi
( xi −1 )

Mi
− M i−1 6
hi

数值分析课后习题答案

数值分析课后习题答案

x2 6.6667x2 8.205
再解
1
15 56
x31.785,7得 x35.769
1 25069x4 0.47847x4 1.4872
1 x5 5.3718 x5 5.3718
2-10.证明下列不等式:
(1)x-yx-z+z-y; (2)|x-y|x-y;
证明 (1)x-y=(x-z)+(z-y)x-z+z-y
b.用Gauss消元法
102 x y 1 x y 2
回代得解: y=1, x=0.
102 x Байду номын сангаасy 1
100y 100
再用列主元Gauss消元法
102 x y 1 x y 2
回代得解: y=1, x=1.
x y
y 1
2
2-8.用追赶法求解方程组:
4 1
x1 100
1 4 1
x2 0
3-8.判定求解下列方程组的SOR方法的收敛性.
2 1 0 0 x1 1
1
0 0
2 1 0
1 2 1
0 12
x2 x3 x4
0 00
解 直接可验证系数矩阵A是负定矩阵,所以-A是对称
1-3.为了使101/2的相对误差小于0.01%,试问应取几位 有效数字?
解 因为101/2=3.162…=0.3162…10,若具有n位有效 数字,则其绝对误差限为0.5 101-n ,于是有
r=0.5101-n/3.162…<0.5101-n/3<0.01% 因此只需n=5.即取101/2=3.1623
1 2
0
12 1,
1 2
1 2
0
12

西北工业大学偏微数值解第一章复习、练习题

西北工业大学偏微数值解第一章复习、练习题

1 第一章 复习题1、建立差分格式的三个主要步骤。

2、差分格式的相容性、收敛性概念。

3、Poisson 方程的5点菱形差分格式,矩形、非矩形区域情形边界条件的处理(离散化)。

4、对长方形区域作正方形网格剖分,求解Poisson 方程边值问题的五点菱形差分格式,按什么顺序对节点编号,可使差分方程带宽更窄?5、差分方程有哪些共同特性,求解选用哪类方法?6、极值原理。

7、5点菱形差分格式求解Poisson 方程第一边值问题的收敛性。

第一章 练习题1、设有边值问题⎪⎪⎪⎩⎪⎪⎪⎨⎧=⎥⎦⎤⎢⎣⎡+∂∂-=-==<<<<=∆====x u n u u y u u y x x u y y x x 2,1122.00,3.00,2.003.00 取h =0.1的正方形网格。

(1) 用5点菱形格式在内点建立差分格式;(2) 用截断误差为)(2h O 的方法离散化第三边界条件(有两种方式);(3) 写出整理后的差分方程的矩阵形式 ⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎭⎫ ⎝⎛D C B A u u u u 2、定义方形算子如下:2 (),1,11,11,11,1,2142i j i j i j i j i j i j u u u u u u h ---++-++=+++- 试讨论5点方形差分方程,,i j i j u f =逼近微分方程(,)u f x y ∆=的截断误差是几阶?3、设有{}220,(,)0,1ln (1)u x y x y u x y ∂Ω∆=∈Ω=<<⎧⎪⎨⎡⎤=++⎪⎣⎦⎩,取h =1/3,列出5点方形差分格式所得的差分方程。

(1) 写出相应的特征线方程及特征线上的微分关系;(2) 熟悉特征线差分计算过程。

(完整版)数值分析课后习题答案

(完整版)数值分析课后习题答案

第一章绪论习题一1.设x>0,x*的相对误差为δ,求f(x)=ln x的误差限。

解:求lnx的误差极限就是求f(x)=lnx的误差限,由公式(1.2.4)有已知x*的相对误差满足,而,故即2.下列各数都是经过四舍五入得到的近似值,试指出它们有几位有效数字,并给出其误差限与相对误差限。

解:直接根据定义和式(1.2.2)(1.2.3)则得有5位有效数字,其误差限,相对误差限有2位有效数字,有5位有效数字,3.下列公式如何才比较准确?(1)(2)解:要使计算较准确,主要是避免两相近数相减,故应变换所给公式。

(1)(2)4.近似数x*=0.0310,是 3 位有数数字。

5.计算取,利用:式计算误差最小。

四个选项:第二、三章插值与函数逼近习题二、三1. 给定的数值表用线性插值与二次插值计算ln0.54的近似值并估计误差限. 解:仍可使用n=1及n=2的Lagrange插值或Newton插值,并应用误差估计(5.8)。

线性插值时,用0.5及0.6两点,用Newton插值误差限,因,故二次插值时,用0.5,0.6,0.7三点,作二次Newton插值误差限,故2. 在-4≤x≤4上给出的等距节点函数表,若用二次插值法求的近似值,要使误差不超过,函数表的步长h 应取多少?解:用误差估计式(5.8),令因得3. 若,求和.解:由均差与导数关系于是4. 若互异,求的值,这里p≤n+1.解:,由均差对称性可知当有而当P=n+1时于是得5. 求证.解:解:只要按差分定义直接展开得6. 已知的函数表求出三次Newton均差插值多项式,计算f(0.23)的近似值并用均差的余项表达式估计误差.解:根据给定函数表构造均差表由式(5.14)当n=3时得Newton均差插值多项式N3(x)=1.0067x+0.08367x(x-0.2)+0.17400x(x-0.2)(x-0.3) 由此可得f(0.23) N3(0.23)=0.23203由余项表达式(5.15)可得由于7. 给定f(x)=cosx的函数表用Newton等距插值公式计算cos 0.048及cos 0.566的近似值并估计误差解:先构造差分表计算,用n=4得Newton前插公式误差估计由公式(5.17)得其中计算时用Newton后插公式(5.18)误差估计由公式(5.19)得这里仍为0.5658.求一个次数不高于四次的多项式p(x),使它满足解:这种题目可以有很多方法去做,但应以简单为宜。

西北工业大学_计算方法作业_答案

西北工业大学_计算方法作业_答案

西工大计算方法作业答案参考答案 第一章1 *1x =1.7; *2x =1.73; *3x =1.732 。

2.3. (1) ≤++)(*3*2*1x x x e r 0.00050; (注意:应该用相对误差的定义去求) (2) ≤)(*3*2*1x x x e r 0.50517; (3) ≤)/(*4*2x x e r 0.50002。

4.设6有n 位有效数字,由6≈2.4494……,知6的第一位有效数字1a =2。

令3)1()1(1*1021102211021)(-----⨯≤⨯⨯=⨯=n n r a x ε 可求得满足上述不等式的最小正整数n =4,即至少取四位有效数字,故满足精度要求可取6≈2.449。

5. 答:(1)*x (0>x )的相对误差约是*x 的相对误差的1/2倍; (2)n x )(* 的相对误差约是*x 的相对误差的n 倍。

6. 根据********************sin 21)(cos 21sin 21)(sin 21sin 21)(sin 21)(c b a c e c b a c b a b e c a c b a a e c b S e r ++≤ =******)()()(tgcc e b b e a a e ++ 注意当20*π<<c 时,0**>>c tgc ,即1*1*)()(--<c tgc 。

则有)()()()(****c e b e a e S e r r r r ++<7.设20=y ,41.1*0=y ,δ=⨯≤--2*001021y y由 δ1*001*111010--≤-=-y y y y ,δ2*111*221010--≤-=-y y y yδ10*991*10101010--≤-=-y y y y即当0y 有初始误差δ时,10y 的绝对误差的绝对值将减小1010-倍。

而11010<<-δ,故计算过程稳定。

数值分析(西北工业大学出版社) 最佳一致逼近

数值分析(西北工业大学出版社) 最佳一致逼近

n 1,2,
性质2 : Tn ( x )是n次代数多项式
性质3 : Tn ( x )的最高次幂 n的系数为 n1 x 2
性质4 : | Tn ( x ) | 1, | x | 1
性质5 : n为奇数, Tn ( x )为奇函数 ; n为偶数, Tn ( x )为偶函数.
性质6: Tn ( x )是[1,上带权 ( x ) 1] 1 1 x2 的正交多项式
1 1 x
2
的正交多项式
证:由
1
Tn ( x ) cos n
n m
得到
1
( x )T ( x )T
0
( x )dx
1

1
Tm ( x )Tn ( x ) 1 x
2
dx
x cos
cos m cos n sin ( sin )d , m n 0 cos m cos nd , m n 0 2 0 0, m n
Tn ( x ) cos(n arccos x ), 1 x 1 Tn ( x ) cos n , 0
有了明确的认识。 在这里给出契贝晓夫多项式是为了解决前面提出的 最佳一致逼近问题:
max | f ( x ) ci* x i | max | f ( x ) ci x i |
2、正交多项式
关于多项式族:
gk ( x ) Ak x k Ak 1 x k 1 A1 x A0
如果存在权函数 ( x ), 使得
b
Ak 0, k 0,1,2,
mn 0, b 2 ( x ) gm ( x ) gn ( x )dx ( x ) gn ( x )dx 0, a a

西北工业大学聂老师数值分析71

西北工业大学聂老师数值分析71
4 1 4
4
4
故该公式代数精确度为三次
November 30, 2007
yfnie@
7
求积系数的确定

b
a
dx = ∑ Ak
n

b
a
xdx = ∑ Ak xk
k =0
k =0 n

b
a
n x n dx = ∑ Ak xk k =0
M
⎡1 ⎢x ⎢ 0 ⎢M ⎢ n ⎣ x0
1 x1
November 30, 2007
yfnie@
9
确定求积公式 h h[ f (0) + f (h)] 2 f ( x ) dx ≈ α h [ f ′(0) − f ′(h)] + ∫0 2 中的待定参数,使其代数精度尽量高,并指明该求 积公式的代数精度。

当f(x)=x2
h 解: 当f(x)=1,x时,有 ∫ dx = [1 + 1] 0 2 h h 2 xdx = [ 0 + h ] + α h [1 − 1] ∫ 0 3 2 h h 2
(k = 0,1, L , m) .对于一般被积
定义 7.3 如果随着求积节点的增加 ( n → +∞ ) ,且相邻求积节点间距离的 最 大 值 趋 于 0 , 即 有 max ( xi − xi −1 ) → 0 , 对 任 意 连 续 的 被 积 函 数 有
1≤i ≤ n
En ( f ) → 0 ,则称这一族求积公式收敛.
20
•常用Newton-Cotes公式
当 n=1时(梯形公式) :
c
(1) 0 1 ( s − 1) (−1) ( s − 1)ds = (−1) × = ∫ 2 1 ⋅ 0!⋅(1 − 0)! 0 1− 0 2 1

数值分析

数值分析

2013/9/10
zhwang@
24
有效数字(续1)


有效数:当 有效数 当x* 准确到末位,即 准确到末位 即n=p,则称 则称x*为 有效数 举例 x=π, x1*=3.141, x2*=3.142 举例:
1 13 x x 0.00059 0.005 10 2
2013/9/10
zhwang@
9
设计高效可靠的算法(续2)

鉴于实际问题的复杂性,通常将其具体地 分解为 系列 问 进行 究 本 程 分解为一系列子问题进行研究,本课程主要涉 涉 及如下几个方面问题的求解算法: 函数的插值和逼近 数值积分和数值微分 线性方程组求解、非线性方程(组)求解 代数特征值问题 常微分方程数值解。
zhwang@ 10
2013/9/10
算法应用状态
数值分析研究对象以及解决问题方法的 广泛适用性,著名流行软件如Maple、Matlab、 Mathematica等已将其绝大多数内容设计成函 数,简单调用之后便可以得到运行结果。 但由于实际问题的具体特征、复杂性 但由于实际问题的具体特征 复杂性, 以及算法自身的适用范围决定了应用中必须选 择、设计适合于自己特定问题的算法,因而掌 握数值方法的思想和内容是至关重要的。
2013/9/10
zhwang@
6
数值问题举例
dy x y 2 x [0, 1] dx y ( 0) y 0 是用一阶常微分方程初值问题表示的数学模型, 是用 阶常微分方程初值问题表示的数学模型, 要求无穷多个输出,因而它不是数值问题 。但 当我们要求出有限个点处函数值的近似值时, 便成为一数值问题。
数值分析 科学计算的理论基础:计算数学

数值分析课后习题及答案

数值分析课后习题及答案

数值分析课后习题及答案第一章绪论(12)第二章插值法(40-42)2、当时,,求的二次插值多项式。

[解]。

3、给出的数值表用线性插值及二次插值计算的近似值。

X 0.4 0.5 0.6 0.7 0.8 -0.916291 -0.693147 -0.510826 -0.357765 -0.223144 [解]若取,,则,,则,从而。

若取,,,则,,,则,从而补充题:1、令,,写出的一次插值多项式,并估计插值余项。

[解]由,可知,,余项为,故。

2、设,试利用拉格朗日插值余项定理写出以为插值节点的三次插值多项式。

[解]由插值余项定理,有,从而。

5、给定数据表:,1 2 4 6 7 4 1 0 1 1 求4次牛顿插值多项式,并写出插值余项。

[解]一阶差商二阶差商三阶差商四阶差商 1 42 1 -34 0 6 17 1 0 由差商表可得4次牛顿插值多项式为:,插值余项为。

第三章函数逼近与计算(80-82)26、用最小二乘法求一个形如的经验公式,使它与下列数据相拟合,并求均方误差。

19 25 31 38 44 19.0 32.3 49.0 73.3 97.8[解]由。

又,,,故法方程为,解得。

均方误差为。

27、观测物体的直线运动,得出以下数据:时间t(秒)0 0.9 1.9 3.0 3.9 5.0 距离s(米)0 10 30 5080 110 [解]设直线运动为二次多项式,则由。

,。

又,,,故法方程为,解得。

故直线运动为。

补充题:1、现测得通过某电阻R的电流I及其两端的电压U如下表:I ……U ……试用最小二乘原理确定电阻R的大小。

[解]电流、电阻与电压之间满足如下关系:。

应用最小二乘原理,求R使得达到最小。

对求导得到:。

令,得到电阻R为。

2、对于某个长度测量了n次,得到n个近似值,通常取平均值作为所求长度,请说明理由。

[解]令,求x使得达到最小。

对求导得到:,令,得到,这说明取平均值在最小二乘意义下误差达到最小。

西北工业大学聂老师数值分析72

西北工业大学聂老师数值分析72
n
n
~ ~ ξ ∈ (m, M )
f ( n +1) (ξ ) ωn +1 ( x) ρ ( x) ⇒ f ( x) ρ ( x) = {∑ lk ( x) f ( xk )}ρ ( x) + (n + 1)! k =0
December 1, 2007
yfnie@
1
带权的插值型求积公式(2)
6.3 高斯点选取定理

b
a
f ( x) ρ ( x)dx ≈ ∑ Ak f ( xk )
k =0
n
定理:插值型求积公式中的节点 xk ( k = 0,1, L , n)是高 斯点的充要条件是,在[a,b]上,以这些点为零点 n 的n+1次多项式ω n +1 ( x) = ∏ ( x − x j ) 与任意次数不超 j =0 过n的多项式P(x)带权ρ ( x ) 正交,即
f ( n +1) (ξ ) ωn +1 ( x) ρ ( x)dx (n + 1)!
知对于任意次数≤n的多项式 f(x), 有R[f]=0, 故求积公式至少具有n次精度。
December 1, 2007 yfnie@ 8
必要性证明
必要性 : 设求积公式 ∫a f ( x) ρ ( x)dx ≈ ∑ Ak f ( xk ) 具有n次代数精度。
b k =0 n
用n次插值函数 l j ( x )
b n j
( j = 0,1, L , n) 仍有
k j k j
∫ l ( x) ρ ( x)dx = ∑ A l ( x )=A
a k =0
根据插值型求积公式定义知,其求积公式为插值型 求积公式。
December 1, 2007 yfnie@ 9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西北工业大学数值分析习题集第一章 绪 论1. 设x >0,x 的相对误差为δ,求ln x 的误差.2. 设x 的相对误差为2%,求nx 的相对误差.3.下列各数都是经过四舍五入得到的近似数,即误差限不超过最后一位的半个单位,试指出它们是几位有效数字:*****123451.1021,0.031,385.6,56.430,7 1.0.x x x x x =====⨯4.利用公式求下列各近似值的误差限:********12412324(),(),()/,i x x x ii x x x iii x x ++其中****1234,,,x x x x 均为第3题所给的数.5.计算球体积要使相对误差限为1%,问度量半径R 时允许的相对误差限是多少6.设028,Y =按递推公式1n n Y Y -=…)计算到100Y .若取(五位有效数字),试问计算100Y 将有多大误差7.求方程25610x x -+=的两个根,使它至少具有四位有效数字(≈.8.当N 充分大时,怎样求211Ndx x +∞+⎰9.正方形的边长大约为100㎝,应怎样测量才能使其面积误差不超过1㎝210. 设212S gt =假定g 是准确的,而对t 的测量有±秒的误差,证明当t增加时S 的绝对误差增加,而相对误差却减小.11. 序列{}n y 满足递推关系1101n n y y -=-(n=1,2,…),若0 1.41y ≈(三位有效数字),计算到10y 时误差有多大这个计算过程稳定吗12.计算61)f =,1.4≈,利用下列等式计算,哪一个得到的结果最好3--13.()ln(f x x =,求f (30)的值.若开平方用六位函数表,问求对数时误差有多大若改用另一等价公式ln(ln(x x =-计算,求对数时误差有多大14. 试用消元法解方程组{101012121010;2.x x x x +=+=假定只用三位数计算,问结果是否可靠15. 已知三角形面积1sin ,2s ab c =其中c 为弧度,02c π<<,且测量a ,b ,c的误差分别为,,.a b c ∆∆∆证明面积的误差s ∆满足.s a b cs a b c ∆∆∆∆≤++第二章 插值法1.根据定义的范德蒙行列式,令2000011211121()(,,,,)11n n n n n n n n n x x x V x V x x x x x x x xx x ----==证明()n V x 是n 次多项式,它的根是01,,n x x -,且101101()(,,,)()()n n n n V x V x x x x x x x ---=--.2.当x = 1 , -1 , 2 时, f (x)= 0 , -3 , 4 ,求f (x )的二次插值多项式.3.给出f (x )=ln x 的数值表用线性插值及二次插值计算ln 的近似值.4.给出cos x ,0°≤x ≤90°的函数表,步长h =1′=(1/60)°,若函数表具有5位有效数字,研究用线性插值求cos x 近似值时的总误差界.5. 设0k x x kh =+,k =0,1,2,3,求032max ()x x x l x ≤≤.6.设j x 为互异节点(j =0,1,…,n ),求证:i) 0()(0,1,,);nkkj jj x l x x k n =≡=∑ii) 0()()1,2,,).nk jj j xx l x k n =-≡0(=∑7.设[]2(),f x C a b ∈且()()0f a f b ==,求证21()()().8maxmax a x ba xb f x b a f x ≤≤≤≤≤-"8.在44x -≤≤上给出()xf x e =的等距节点函数表,若用二次插值求xe的近似值,要使截断误差不超过610-,问使用函数表的步长h 应取多少9. 若2n n y =,求4n y ∆及4n y δ.10. 如果()f x 是m 次多项式,记()()()f x f x h f x ∆=+-,证明()f x 的k 阶差分()(0)k f x k m ∆≤≤是m k -次多项式,并且()0(m lf x l +∆=为正整数).11. 证明1()k k k k k k f g f g g f +∆=∆+∆.12. 证明110010.n n kkn n k k k k f gf g f g g f --+==∆=--∆∑∑13. 证明1200.n j n j y y y -=∆=∆-∆∑14. 若1011()n n n n f x a a x a x a x --=++++有n 个不同实根12,,,n x x x ,证明{10,02;, 1.1()n k njk n a k n j jx f x -≤≤-=-=='∑15. 证明n 阶均差有下列性质:i)若()()F x cf x =,则[][]0101,,,,,,n n F x x x cf x x x =;ii) 若()()()F x f x g x =+,则[][][]010101,,,,,,,,,n n n F x x x f x x x g x x x =+.16. 74()31f x x x x =+++,求0172,2,,2f ⎡⎤⎣⎦及0182,2,,2f ⎡⎤⎣⎦.17. 证明两点三次埃尔米特插值余项是(4)22311()()()()/4!,(,)k k k k R x f x x x x x x ++=ξ--ξ∈并由此求出分段三次埃尔米特插值的误差限.18. 求一个次数不高于4次的多项式()P x ,使它满足(0)(1)P P k =-+并由此求出分段三次埃尔米特插值的误差限.19. 试求出一个最高次数不高于4次的函数多项式()P x ,以便使它能够满足以下边界条件(0)(0)0P P ='=,(1)(1)1P P ='=,(2)1P =.20. 设[](),f x C a b ∈,把[],a b 分为n 等分,试构造一个台阶形的零次分段插值函数()n x ϕ并证明当n →∞时,()n x ϕ在[],a b 上一致收敛到()f x .21. 设2()1/(1)f x x =+,在55x -≤≤上取10n =,按等距节点求分段线性插值函数()h I x ,计算各节点间中点处的()h I x 与()f x 的值,并估计误差.22. 求2()f x x=在[],a b 上的分段线性插值函数()h I x ,并估计误差.23. 求4()f x x =在[],a b 上的分段埃尔米特插值,并估计误差.24. 给定数据表如下:试求三次样条插值()S x 并满足条件i) (0.25) 1.0000,(0.53)0.6868;S S '='= ii)(0.25)(0.53)0.S S "="=25. 若[]2(),f x C a b ∈,()S x 是三次样条函数,证明 i)[][][][]222()()()()2()()()bbbbaaaaf x dx S x dx f x S x dx S x f x S x dx"-"="-"+""-"⎰⎰⎰⎰;ii) 若()()(0,1,,)i i f x S x i n ==,式中ix 为插值节点,且01n a x x x b=<<<=,则[][][]()()()()()()()()()baS x f x S x dx S b f b S b S a f a S a ""-"="'-'-"'-'⎰.26. 编出计算三次样条函数()S x 系数及其在插值节点中点的值的程序框图(()S x 可用式的表达式). 第三章 函数逼近与计算1.(a)利用区间变换推出区间为[],a b 的伯恩斯坦多项式.(b)对()sin f x x =在[]0,/2π上求1次和三次伯恩斯坦多项式并画出图形,并与相应的马克劳林级数部分和误差做比较.2.求证:(a)当()m f x M ≤≤时,(,)n m B f x M ≤≤. (b)当()f x x =时,(,)n B f x x =.3.在次数不超过6的多项式中,求()sin 4f x x =在[]0,2π的最佳一致逼近多项式.4.假设()f x 在[],a b 上连续,求()f x 的零次最佳一致逼近多项式. 5.选取常数a ,使301max x x ax≤≤-达到极小,又问这个解是否唯一6.求()sin f x x =在[]0,/2π上的最佳一次逼近多项式,并估计误差.7. 求()xf x e =在[]0,1上的最佳一次逼近多项式.8.如何选取r ,使2()p x x r =+在[]1,1-上与零偏差最小r 是否唯一9. 设43()31f x x x =+-,在[]0,1上求三次最佳逼近多项式. 10. 令[]()(21),0,1n n T x T x x =-∈,求***0123(),(),(),()T x T x T x T x .11. 试证{}*()nT x 是在[]0,1上带权ρ=.12. 在[]1,1-上利用插值极小化求11()f x tg x -=的三次近似最佳逼近多项式.13. 设()xf x e=在[]1,1-上的插值极小化近似最佳逼近多项式为()n L x ,若nf L ∞-有界,证明对任何1n ≥,存在常数n α、n β,使11()()()()(11).n n n n n T x f x L x T x x ++α≤-≤β-≤≤14. 设在[]1,1-上234511315165()128243843840x x x x x x ϕ=-----,试将()x ϕ降低到3次多项式并估计误差.15. 在[]1,1-上利用幂级数项数求()sin f x x =的3次逼近多项式,使误差不超过.16. ()f x 是[],a a -上的连续奇(偶)函数,证明不管n 是奇数或偶数,()f x 的最佳逼近多项式*()n n F x H ∈也是奇(偶)函数.17. 求a 、b 使[]22sin ax b x dx π+-⎰为最小.并与1题及6题的一次逼近多项式误差作比较.18. ()f x 、[]1(),g x C a b ∈,定义 ()(,)()();()(,)()()()();b baaa f g f x g x dxb f g f x g x dx f a g a =''=''+⎰⎰问它们是否构成内积19. 用许瓦兹不等式估计6101x dx x +⎰的上界,并用积分中值定理估计同一积分的上下界,并比较其结果.20. 选择a ,使下列积分取得最小值:1122211(),x ax dx x ax dx----⎰⎰.21. 设空间{}{}10010121,,,span x span x x 1ϕ=ϕ=,分别在1ϕ、2ϕ上求出一个元素,使得其为[]20,1x C ∈的最佳平方逼近,并比较其结果.22. ()f x x =在[]1,1-上,求在{}2411,,span x x ϕ=上的最佳平方逼近.23.sin (1)arccos ()n n x u x +=是第二类切比雪夫多项式,证明它有递推关系()()()112n n n u x xu x u x +-=-.24. 将1()sin 2f x x=在[]1,1-上按勒让德多项式及切比雪夫多项式展开,求三次最佳平方逼近多项式并画出误差图形,再计算均方误差.25. 把()arccos f x x =在[]1,1-上展成切比雪夫级数.26. 用最小二乘法求一个形如2y a bx=+的经验公式,使它与下列数据拟合,并求均方误差.27. 观测物体的直线运动,得出以下数据:求运动方程.28. 在某化学反应里,根据实验所得分解物的浓度与时间关系如下:用最小二乘拟合求()y f t =.29. 编出用正交多项式做最小二乘拟合的程序框图. 30. 编出改进FFT 算法的程序框图.31. 现给出一张记录{}{}4,3,2,1,0,1,2,3k x =,试用改进FFT 算法求出序列{}k x 的离散频谱{}k C (0,1,,7).k =第四章 数值积分与数值微分1.确定下列求积公式中的待定参数,使其代数精度尽量高,并指明所构造出的求积公式所具有的代数精度: (1)101()()(0)()hh f x dx A f h A f A f h --≈-++⎰; (2)21012()()(0)()hh f x dx A f h A f A f h --≈-++⎰;(3)[]1121()(1)2()3()/3f x dx f f x f x -≈-++⎰;(4)[][]20()(0)()/1(0)()h f x dx h f f h ah f f h ≈++'-'⎰.2.分别用梯形公式和辛普森公式计算下列积分:(1)120,84xdx n x =+⎰; (2)1210(1),10x e dx n x --=⎰;(3)1,4n =⎰; (4),6n =.3.直接验证柯特斯公式具有5次代数精度. 4. 用辛普森公式求积分1x e dx-⎰并计算误差.5.推导下列三种矩形求积公式: (1)2()()()()()2ba f f x dxb a f a b a 'η=-+-⎰; (2)2()()()()()2ba f f x dxb a f b b a 'η=---⎰;(3)3()()()()()224baa b f f x dx b a f b a +"η=-+-⎰.6.证明梯形公式和辛普森公式当n →∞时收敛到积分()baf x dx⎰.7.用复化梯形公式求积分()ba f x dx⎰,问要将积分区间[],a b 分成多少等分,才能保证误差不超过ε(设不计舍入误差)8. 1xedx-⎰,要求误差不超过510-.9.卫星轨道是一个椭圆,椭圆周长的计算公式是S a =θ,这里a 是椭圆的半长轴,c 是地球中心与轨道中心(椭圆中心)的距离,记h 为近地点距离,H 为远地点距离,6371R =公里为地球半径,则(2)/2,()/2a R H h c H h =++=-.我国第一颗人造卫星近地点距离439h =公里,远地点距离2384H =公里,试求卫星轨道的周长.10. 证明等式3524sin3!5!n nnnππππ=-+-试依据sin(/)(3,6,12)n n n π=的值,用外推算法求π的近似值.11. 用下列方法计算积分31dyy ⎰并比较结果.(1) 龙贝格方法;(2) 三点及五点高斯公式;(3) 将积分区间分为四等分,用复化两点高斯公式.12. 用三点公式和五点公式分别求21()(1)f x x =+在x =,和处的导数值,并估计误差.()f x 的值由下表给出:第五章 常微分方程数值解法1. 就初值问题0)0(,=+='y b ax y 分别导出尤拉方法和改进的尤拉方法的近似解的表达式,并与准确解bx ax y +=221相比较。

相关文档
最新文档