浙江大学计算方法大作业第九题

合集下载

2020年奥鹏吉大网络教育《计算方法》大作业解答

2020年奥鹏吉大网络教育《计算方法》大作业解答

2020年奥鹏吉大网络教育《计算方法》大作业解答(说明:前面是题目,后面几页是答案完整解答部分,注意的顺序。

)一、解线性方程用矩阵的LU分解算法求解线性方程组用矩阵的Doolittle分解算法求解线性方程组用矩阵的Doolittle分解算法求解线性方程组用高斯消去法求解线性方程组用高斯消去法求解线性方程组用主元素消元法求解线性方程组用高斯消去法求解线性方程组利用Doolittle分解法解方程组Ax=b,即解方程组1、用矩阵的LU分解算法求解线性方程组X1+2X2+3X3 = 02X1+2X2+8X3 = -4-3X1-10X2-2X3 = -112、用矩阵的Doolittle分解算法求解线性方程组X1+2X2+3X3 = 12X1– X2+9X3 = 0-3X1+ 4X2+9X3 = 13、用矩阵的Doolittle分解算法求解线性方程组2X1+X2+X3 = 46X1+4X2+5X3 =154X1+3X2+6X3 = 134、用高斯消去法求解线性方程组2X 1- X 2+3X 3 = 24X 1+2X 2+5X 3 = 4-3X 1+4X 2-3X 3 = -35、用无回代过程消元法求解线性方程组2X 1- X 2+3X 3 = 24X 1+2X 2+5X 3 = 4-3X 1+4X 2-3X 3 = -36、用主元素消元法求解线性方程组2X 1- X 2+3X 3 = 24X 1+2X 2+5X 3 = 4-3X 1+4X 2-3X 3 = -37、用高斯消去法求解线性方程组1231231232344272266xx x x x x x x x -+=++=-++=8、利用Doolittle 分解法解方程组Ax=b ,即解方程组 12341231521917334319174262113x x x x -⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥--⎢⎥⎢⎥⎢⎥--⎣⎦⎣⎦⎣⎦9、利用Doolittle 分解法解方程组Ax=b ,即解方程组 123421111443306776081011112x x x x ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦⎣⎦10、用高斯消元法解方程组1237811351341231x x x -⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-=-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦二、计算1、已知节点x1,x2及节点处函数值f(x1),f(x2),构造线性插值多项式p1(x).2、设f(xi)=i(i=0,1,2),构造二次式p2(x),使满足: p2(xi)=f(xi)(i=0,1,2)以下为解答部分:一、解线性方程1、用矩阵的LU 分解算法求解线性方程组X 1+2X 2+3X 3 = 02X 1+2X 2+8X 3 = -4-3X1-10X2-2X3 = -11解答:2、用矩阵的Doolittle分解算法求解线性方程组 X1+2X2+3X3 = 12X1– X2+9X3 = 0-3X1+ 4X2+9X3 = 1解答:3、用矩阵的Doolittle分解算法求解线性方程组 2X1+X2+X3 = 46X1+4X2+5X3 =154X1+3X2+6X3 = 13解答:4、用高斯消去法求解线性方程组 2X1- X2+3X3 = 24X1+2X2+5X3 = 4-3X1+4X2-3X3 = -3解:方程组的扩大矩阵为:5、用无回代过程消元法求解线性方程组 2X1- X2+3X3 = 24X1+2X2+5X3 = 4-3X1+4X2-3X3 = -3解:方程组的扩大矩阵为:接下一页:6、用主元素消元法求解线性方程组2X1- X2+3X3 = 24X1+2X2+5X3 = 4-3X1+4X2-3X3 = -3解:将第一个方程与第二个方程互换得扩大矩阵:7、用高斯消去法求解线性方程组1231231232344272266x x x x x x x x x -+=++=-++=解:消元过程:8、利用Doolittle 分解法解方程组Ax=b ,即解方程组 12341231521917334319174262113x x x x -⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥--⎢⎥⎢⎥⎢⎥--⎣⎦⎣⎦⎣⎦ 解:用公式:9、利用Doolittle 分解法解方程组Ax=b ,即解方程组 123421111443306776081011112x x x x ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦⎣⎦ 解:利用公式对A 进行分解得A=LU ,其中:10、用高斯消元法解方程组1237811351341231x x x -⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-=-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦解:方程组扩大矩阵为:二、计算1、已知节点x1,x2及节点处函数值f(x1),f(x2),构造线性插值多项式p1(x).解:由插值公式得:2、设f(xi)=i(i=0,1,2),构造二次式p2(x),使满足:p2(xi)=f(xi)(i=0,1,2)解:由插值公式得:。

计算方法大作业(第二次)

计算方法大作业(第二次)

计算方法大作业(第二次)数值计算第二次大作业1.给定插值条件如下:i01234567xi8.1258.49.09.4859.69.95910.16610.2yi0.07740.0990.2800.600.7081.2001 .8002.177作三次样条函数插值,挑第一类边界条件y0’=0.01087y7’=100根据题目要求,首先要构造三次样条函数,三次样条函数的构造过程如下:建有x0<x1<…<xn共n个插值节点,任一取值一组常数y0,y1,…,yn,建议结构一个插值三次样条函数s(x),使如下插值条件以求满足用户:s(xi)?yi,i=0,1,…,n经过插值点的三次样条函数就是一组三次多项式,即为存有:23?s1(x)?a1?b1(x?x1)?c1(x?x1)?d1(x?x1),x?[x1,x2],?23s2(x)?a2?b2(x?x2)?c2(x?x2) d2(xx2),x[x2,x3],s(x)ab(xx)c(xx)2d(xx)3,x[x,x]n1n1n1n1n1n 1n1n1nn1由节点处的连续性可知:si(xi)?yi,si(xi?1)?yi?1,i?1,2,?n?1.ai?yi,i?1,2,?n?1,??23y2?y1?b1(x2?x1)?c1(x2?x1)?d1(x2?x1)y?y?b(x?x)?c(x?x) 2?d(x?x)3n?1n?1nn?1n?1nn?1n?1nn?1?n由节点处的一阶与二阶光滑性可知:si?1(xi)?si(xi),si?1(xi)?si(xi),i?1,2,?,n''''''又设cn?sn?1(xn)/2,记?i?xi?1?xi,?i?yi?1?yi,i?1,2,?,n?1,则di?ci?1?ci3?i,i?1,2,?,n?1。

再根据边界条件,从而可以相继求出bi,ci''用matlab编程,编写三次样条函数(见附录),对第一题求解:>>formatshortg;>>x1=[8.125,8.4,9.0,9.485,9.6,9.959,10.166,10.2]';>>y1=[0.0774,0.099,0.280,0.60,0.708,1.200,1.800,2.177]';>>u1=0.01087;un=10 0;>>xx1=[x1(1):0.001:x1(end)]';>>[yy1b1c1d1]=spline3(x1,y1,xx1,1,u1,un);>>fprintf('\\t\\tb1\\t\\tc1\\t\\td1\\n');b1c1d1>>disp([b1c1(1:end-1,1)d1]);0.010870.144890.3680.174050.4485-0.3930.2878-0.258912.11531.52942.8188-69.141-0.56548-21.03573.61412.79458.247-512.32-28.949-259.942279>>plot(x1,y1,'bo',xx1,yy1,'r-');>>gridon画出插值曲线的图像。

浙大-计算方法作业

浙大-计算方法作业

来自14 级机械专业的《计算方法》课程课本为黄皮小书只有当年作业布置的部分题目 2.4.7.8.10.13.17第2题二分法#include<iostream>#include<math.h>double calculate_y(double n){using namespace std;return exp(n)+10*n-2;}int main(){using namespace std;int k;double a,b,c1;double y1,y2,x,y;cout<<"请依次输入a (左端点),b (右端点),c (控制精度),中间用enter隔开"<<endl;cin>>a>>b>>c1;y1 = calculate_y(a);y2 = calculate_y(b);if(y1*y2<=0);else{do{cout<<"["<<y1<<","<<y2<<"]"<<endl;cout<<" 实根不再此范围内,请重新输入!" <<endl;cin>>a>>b>>c1;y1 = calculate_y(a);y2 = calculate_y(b);}while(y1*y2>0);}k=0;do{k=k+1; x=(a+b)/2; y=calculate_y(x);if(y1*y<0) b=x;else {a=x;y1=y;}}while(b-a>=c1);cout<<"k="<<k<<" x="<<x<<" y="<<y<<endl; cout<<"["<<y1<<","<<y2<<"]"<<" "<<y<<endl<<""<<endl;结果如上,感谢使用!cin.get();cin.get();}迭代法#include<iostream> #include<cmath>int main(){using namespace std;int k=1,N;double x0,c,x1;cout<<"请依次输入N, xO, c"<<endl;cin>>N>>x0>>c;do{k=k+1;x1=(2-exp(xO))/1O; if(fabs(x1-xO)<c){cout<<"k="<<k<<" x"<<k<<"="<<x1<<endl;break;}else{ cout<<"x"<<k<<"="<<x1<<endl; xO=x1;}}while(k<N);if(k<N);elsecout<<" 失败!迭代次数太少,未达到精度要求"<<endl;cin.get();cin.get();return 0;}牛顿法#include<iostream> #include<cmath>double fx(double n1){using namespace std; return exp(n1)+10*n1-2;}double f1x(double n2){using namespace std; return exp(n2)+10;}int main(){using namespace std;int N,k=0,I;double x0,x1,c,f_x0,f1_x0;cout<<"请依次输入x0 (迭代初值),c (精度),N (最大允许迭代次数)"<<endl;cin>>x0>>c>>N;do{k++;f_x0=fx(x0); f1_x0=f1x(x0);if(f1_x0==0){I=-1;break;}elsex1=x0-f_x0/f1_x0;} if(fabs(x1-x0)<c){I=0;cout<<"x"<<k<<"="<<x1<<" k="<<k<<endl;break;}f(x"<<k<<")="<<fx(x1)<<"else x0=x1;}while(k<N); if(k>=N)I=1; cout<<"I="<<I<<endl;cin.get();cin.get();return 0; }第4题顺序消元法#include<iostream> using namespace std;#define N 4int main() {double a[N][N]={{1.1348,3.8326,1.1651,3.4017}, {0.5301,1.7875,2.5330,1.5435},{3.4129,4.9317,8.7643,1.3142},{1.2371,4.9998,10.6721,0.0147}};double b[N]={9.5342,6.3941,18.4231,16.9237}; double m[N][N];double x[N];int k,i,j;for(k=0;k<=N;k++) {for(i=k+1;i<N;i++){m[i][k]=a[i][k]/a[k][k]; for(j=k+1;j<N;j++) {a[i][j]-=m[i][k]*a[k][j];}b[i]-=m[i][k]*b[k];}}for(i=0;i<N;i++){for(j=0;j<N;j++){cout<<a[i][j]<<" ";}cout<<endl;}for(i=0;i<N;i++)cout<<b[i]<<endl;double t=0.0;x[N-1]=b[N-1]/a[N-1][N-1];for(i=N-2;i>=0;i--){x[i]=b[i];for(j=i+1;j<N;j++){x[i]-=a[i][j]*x[j];}x[i]/=a[i][i];}cout<<" 方程的解依次为"<<endl; for(i=0;i<N;i++){ cout<<"x["<<i+1<<"]="<<x[i]<<endl;}}列主元消元法#include<iostream> #include<cmath> using namespace std;#define N 4 void display(double (*a)[N],double *b){for(int i=0;i<N;i++){for(int j=0;j<N;j++){cout<<a[i][j]<<" ";}cout<<b[i]<<endl;}}int main(){double a[N][N]={{1.1348,3.8326,1.1651,3.4017}, {0.5301,1.7875,2.5330,1.5435},{3.4129,4.9317,8.7643,1.3142},{1.2371,4.9998,10.6721,0.0147}};double b[N]={9.5342,6.3941,18.4231,16.9237};double m[N][N];double x[N];int k,i,j,l;double max;double p;for(k=0;k<N-1;k++){max=a[k][k];l=k;for(i=k+1;i<N;i++){if(fabs(a[i][k])>fabs(max)){max=a[i][k];l=i;}}if(fabs(max)*100000<1)cout<<"det A=0"<<endl;else{if(l!=k){p=b[l];b[l]=b[k];b[k]=p;for(j=0;j<N;j++){p=a[l][j];a[l][j]=a[k][j];a[k][j]=p;}display(a,b); cout<<endl;} for(i=k+1;i<N;i++){m[i][k]=a[i][k]/a[k][k];for(j=k+1;j<N;j++){a[i][j]-=m[i][k]*a[k][j];}b[i]-=m[i][k]*b[k];}display(a,b);cout<<endl;}}if(fabs(a[N-1][N-1])*100000<1)cout<<"det A=0"<<endl;else{x[N-1]=b[N-1]/a[N-1][N-1];for(i=N-2;i>=0;i--){x[i]=b[i];for(j=i+1;j<N;j++){x[i]-=a[i][j]*x[j];}x[i]/=a[i][i];}}cout<<" 方程的解依次为"<<endl;for(i=0;i<N;i++){cout<<"x["<<i+1<<"]="<<x[i]<<endl;第7题雅可比迭代法#include<iostream>#include<math.h>#include <iomanip> using namespace std;int main(){double s=0;double max(double array[6]); double a[6][6]={{4,-1,0,-1,0,0},{-1,4,-1,0,-1,0},{0,-1,4,-1,0,-1},{-1,0,-1,4,-1,0},{0,-1,0,-1,4,-1},{0,0,-1,0,-1,4,},};double b[6]={0,5,-2,5,-2,6};double c[6]={0,0,0,0,0,0};double x[6]={0,0,0,0,0,0};double x0[6]={0,0,0,0,0,0};int i,k,j;double r,sum=0;cout<<" 输入精度:"<<endl;cin>>s;for(k=1;;k++){for(i=0;i<6;i++){for(j=0;j<6;j++){sum=a[i][j]*x0[j]+sum;}x[i]=x0[i]+((b[i]-sum)/a[i][i]);c[i]=fabs(x[i]-x0[i]);sum=0;r=max(c);if(r<s){for(i=0;i<6;i++)cout<<"x"<<i<<" = "<<x[i]<<setprecision(6)<<endl;cout<<" 迭代次数:"<<k<<endl;return 0;}elsefor(i=0;i<6;i++)x0[i]=x[i];}}double max(double array[6]){double a=array[0];int i;for(i=1;i<6;i++){if(a<array[i])a=array[i];}return a;}高斯-赛德尔迭代法#include<iostream> #include<math.h> #include <iomanip> using namespace std;int main(){double s=0;double max(double array[3]);double a[6][6]={{4,-1,0,-1,0,0},{-1,4,-1,0,-1,0}, {0,-1,4,-1,0,-1},{-1,0,-1,4,-1,0}, {0,-1,0,-1,4,-1},{0,0,-1,0,-1,4},};double b[6]={0,5,-2,5,-2,6};double c[6]={0,0,0,0,0,0};double x[6]={0,0,0,0,0,0};double x0[10]={0,0,0,0,0,0};int i,k,j;double r,sum=0;cout<<" 输入精度:"<<endl;cin>>s;for(k=1;;k++){for(i=0;i<6;i++){for(j=0;j<6;j++){sum=a[i][j]*x0[j]+sum;}x[i]=x0[i]+((b[i]-sum)/a[i][i]);c[i]=x[i]-x0[i];if(c[i]<0)c[i]=-c[i];x0[i]=x[i];sum=0;}r=max(c);if(r<s){for(i=0;i<6;i++)cout<<"x"<<i<<" = "<<x[i]<<setprecision(6)<<endl; cout<<" 迭代次数:"<<k<<endl;return 0;}}}double max(double array[6]) {double a=array[0]; int i; for(i=1;i<6;i++) {if(a<array[i])a=array[i];return a; }SOR迭代法#include<iostream>#include<math.h>#include <iomanip> using namespace std;int main(){double s=0,w=0;double max(double array[3]); double a[6][6]={{4,-1,0,-1,0,0},{-1,4,-1,0,-1,0},{0,-1,4,-1,0,-1},{-1,0,-1,4,-1,0},{0,-1,0,-1,4,-1},{0,0,-1,0,-1,4}};double b[6]={0,5,-2,5,-2,6}; double c[6]={0,0,0};double x[6]={0,0,0,0,0,0};double x0[6]={0,0,0,0,0,0};int i,k,j;double r,sum=0;cout<<" 输入精度:"<<endl; cin>>s;cout<<" 松弛因子:"<<endl; cin>>w;for(k=1;;k++){ for(i=0;i<6;i++) {for(j=0;j<6;j++){ sum=a[i][j]*x0[j]+sum;} x[i]=x0[i]+(w*(b[i]-sum)/a[i][i]);c[i]=x[i]-x0[i];if(c[i]<0)c[i]=-c[i];x0[i]=x[i];sum=0;}r=max(c);if(r<s){for(i=0;i<6;i++)cout<<"x"<<i<<" = "<<x[i]<<setprecision(6)<<endl;cout<<"迭代次数:"<<k<<endl;return 0;}}}double max(double array[6]){double a=array[0];int i; for(i=1;i<6;i++) {if(a<array[i])a=array[i];} return a;}第8题分段线性插值#include<stdio.h>int main(void){int i,j; double a[6],b[6],x,y;printf("Enter x:"); for(i=0;i<6;i++) scanf("%lf",&a[i]); printf("Enter f(x):");for(i=0;i<6;i++) scanf("%lf",&b[i]);for(j=0;j<3;j++){printf("Enter x:");scanf("%lf",&x);for(i=0;x>a[i];i++);y=b[i-1]*(x-a[i])/(a[i-1]-a[i])+b[i]*(x-a[i-1])/(a[i]-a[i-1]); printf("x=%lf , ",x);printf("y=%lf\n",y);}return 0;}分段二次插值#include<stdio.h>int main(void){int i,j;double a[6],b[6],x,y;printf("Enter x:");for(i=0;i<6;i++) scanf("%lf",&a[i]);printf("Enter f(x):");for(i=0;i<6;i++) scanf("%lf",&b[i]);for(j=0;j<3;j++){printf("Enter x:");scanf("%lf",&x);for(i=0;x>a[i];i++);if((a[i+1]-x)<(x-a[i-2])){ y=b[i-1]*(x-a[i])/(a[i-1]-a[i])*(x-a[i+1])/(a[i-1]-a[i+1]); y=y+b[i]*(x-a[i-1])/(a[i]-a[i-1])*(x-a[i+1])/(a[i]-a[i+1]); y=y+b[i+1]*(x-a[i-1])/(a[i+1]-a[i-1])*(x-a[i])/(a[i+1]-a[i]); printf("x=%lf , ",x);printf("y=%lf\n",y);}else{y=b[i-2]*(x-a[i-1])/(a[i-2]-a[i-1])*(x-a[i])/(a[i-2]-a[i]); y=y+b[i-1]*(x-a[i-2])/(a[i-1]-a[i-2])*(x-a[i])/(a[i-1]-a[i]); y=y+b[i]*(x-a[i-2])/(a[i]-a[i-2])*(x-a[i-1])/(a[i]-a[i-1]); printf("x=%lf , ",x);printf("y=%lf\n",y);}}return 0;}全区间上拉格朗日插值#include<stdio.h>int main(void){int i,j,k; double a[6],b[6],x,y,p;printf("Enter x:"); for(i=0;i<6;i++)scanf("%lf",&a[i]); printf("Enter f(x):");for(i=0;i<6;i++) scanf("%lf",&b[i]);for(j=0;j<3;j++) {y=0; printf("Enter x:"); scanf("%lf",&x); for(i=0;i<6;i++){p=1;for(k=0;k<6;k++){ if(k!=i) p=p*(x-a[k])/(a[i]-a[k]);} y=y+p*b[i];}printf("x=%lf , ",x); printf("y=%lf\n",y);} return 0;}第10 题最小二乘法二次回归#include<stdio.h>#include<math.h>#include<conio.h>float cf(int i,float f){ float g=1.0;while(i--)g*=f;return g;}void ColPivot(float a[99][99], int n, float b[99][1],float x[99]){float max,m,temp;int k,q=0,i,j,I;for(k=0;k<n && q==0;k++){ max=a[k][k];for(i=k+1;i<n;i++)if(fabs(max)<fabs(a[i][k])){max=a[i][k];I=i;}if(max==0)q=1;else{ if(I!=k){temp=b[I][0]; b[I][0]=b[k][0]; b[k][0]=temp;for(j=k;j<n;j++){temp=a[I][j]; a[I][j]=a[k][j]; a[k][j]=temp;}} for(i=k+1;i<n;i++){m=a[i][k]/a[k][k];b[i][0]=b[i][0]-b[k][0]*m;for(j=0;j<n;j++)a[i][j]=a[i][j]-a[k][j]*m;}}}for(i=n-1;i>=0;i--){for(j=n-1;j>=i+1;j--) b[i][0]=b[i][0]-a[i][j]*x[j]; x[i]=b[i][0]/a[i][i];}float x0,y0;x0=-x[1]/(2*x[2]);y0=x[0]-x[1]*x[1]/(4*x[2]);printf("\nx0=%f",x0);printf("\ny0=%f",y0);}int main(){float x[99],y[99],z[99],s[99][99],t[99][1]; int n,m,i,j,k;printf("n( 变量数)="); scanf("%d",&n);printf("m (拟合阶数) ="); scanf("%d",&m);printf("x[%]=",n);for(i=0;i<n;i++)scanf("%f",&y[i]); printf("y[%d]=",n);for(i=0;i<n;i++)scanf("%f",&z[i]);for(i=0;i<=m;i++){ for(j=0;j<=m;j++) {s[i][j]=0.0;for(k=0;k<=n-1;k++)s[i][j]+=cf(i+j,y[k]);t[i][0]=0.0;for(j=0;j<=n-1;j++)t[i][0]+=z[j]*cf(i,y[j]);}for(i=0;i<=m;i++)s[i][m+1]=t[i][0];for(i=0;i<=m;i++){for(j=0;j<=m+1;j++) printf("%f\t",s[i][j]); printf("\n");}ColPivot(s,m+1,t,x);printf("\n\n");for(i=0;i<=m;i++) printf("\na[%d]=%f",i,x[i]); printf("\n\n");}第13 题复合梯形递推算法#include<cmath> #include<iostream>/*************** 计算函数值**************/double f(double x)//{using namespace std;double s,e=exp(1);s=sqrt((1-pow(e,-x)))/x;// 预先输入的待积分函数return(s);}************************************************ 算 2八k ***************/double power(int K)//{using namespace std;double P;P=pow(2.0,double(K)); return P;}伴************************************************ 复化梯形公式的递推过程***************/double DTGCH(double a,double b,double precision)// {using namespace std;int i,k;double fa,fb,t1,p,S,X,t;fa=1;fb=f(b);k=1;//h=b-a;t1=(b-a)/2*(fa+fb);// 公式T1=(b-a)/2[f(a)+f(b)] p=precision+1;// 误差值初始化while(p>=precision) {double n;S=0;for(i=1;i<=power(k-1);i++)〃计算公式中:刀(2A(k-1),i=1 ) f[a+(2i-1)(b-a)/2A k]{X=a+(2*i-1)*((b-a)/power(k));S=S+f(X);}t=(t1)/2+(b-a)/power(k)*S;p=fabs(t1-t);// 误差值n=power(k-1);cout<<"步长2A(k-1)为"<<*<"时的"<<"T2A(k-1)="<<t1<<'\t'<<"T2Ak="<<t<<'\t'<<" 差值:"<<p<<endl;t1=t;k++;return(t);}/**************************************************/int main(){using namespace std;double result,a,b,precision;//result 为计算出的积分值、a 为积分下限、b 为积分上限、precision 为要求的精确度cout<<" 需要求解的积分式为f(x)=(1-e(-x))(1/2)/x"<<endl<<" 括号表示次数,因e 取的14 位有效数字,故结果略有偏差。

计算方法习题答案

计算方法习题答案

计算方法习题答案在数学和工程领域,计算方法是指解决数学问题的一系列算法和程序。

以下是一些常见的计算方法习题及其答案。

习题1:求解线性方程组考虑线性方程组:\[ \begin{align*}3x + 2y &= 7, \\4x - y &= 5.\end{align*} \]答案:使用高斯消元法,我们首先将第二个方程乘以2,然后从第一个方程中减去得到:\[ \begin{align*}3x + 2y &= 7, \\0x + 9y &= 17.\end{align*} \]解得 \( y = \frac{17}{9} \)。

将 \( y \) 的值代入第一个方程,解得 \( x = 1 \)。

因此,解为 \( x = 1, y = \frac{17}{9} \)。

习题2:数值积分给定函数 \( f(x) = x^2 \),求在区间 [0, 1] 上的积分。

答案:使用梯形法则进行数值积分,取两个子区间:\[ \int_{0}^{1} x^2 dx \approx \frac{1}{2} \left( f(0) + f(1) \right) = \frac{1}{2} \left( 0 + 1 \right) = 0.5. \]习题3:求解常微分方程的初值问题考虑初值问题:\[ y' = 3x^2 - 2y, \quad y(0) = 1. \]答案:使用欧拉方法,取步长 \( h = 0.1 \),计算 \( y \) 的值:\[ y_{n+1} = y_n + h f(x_n, y_n). \]从 \( y_0 = 1 \) 开始,计算得到:\[ y_1 = 1 + 0.1(0 - 2) = 1.2, \]\[ y_2 = 1.2 + 0.1(0.01 - 2.4) = 1.4, \]以此类推,可以得到 \( y \) 在区间 [0, 1] 上的近似值。

习题4:数值解非线性方程给定方程 \( f(x) = x^3 - x - 1 = 0 \),求根。

计算方法本题库及答案

计算方法本题库及答案

计算方法本题库及答案1. 问题:请解释什么是数值稳定性,并给出一个例子。

答案:数值稳定性是指在数值计算过程中,当输入数据或初始条件发生小的变化时,计算结果的变化也很小。

例如,在求解线性方程组时,如果系数矩阵是病态的(即条件数很大),那么即使输入数据有微小的变化,解也可能发生很大的变化,这表明该问题在数值上是不稳定的。

2. 问题:请简述牛顿迭代法的基本原理,并说明其优缺点。

答案:牛顿迭代法是一种求解非线性方程f(x)=0的迭代方法。

基本原理是利用线性逼近f(x)≈f(x0)+f'(x0)(x-x0),将非线性问题转化为线性问题求解。

迭代公式为x1 = x0 - f(x0)/f'(x0)。

优点是收敛速度快,通常为二次收敛;缺点是要求函数可导,且导数容易计算,且初始猜测值需要接近真实解。

3. 问题:什么是共轭梯度法?它在解决哪些问题时特别有效?答案:共轭梯度法是一种用于求解大规模稀疏正定线性方程组的迭代算法。

它特别有效于当系数矩阵是对称正定的,且直接求解方法(如高斯消元法)因计算量过大而不可行时。

共轭梯度法利用正交性质来构造一系列梯度方向的线性组合,以逼近解。

4. 问题:请解释什么是数值分析中的病态问题,并给出一个例子。

答案:病态问题是指那些条件数非常大的问题,即对输入数据的微小变化非常敏感,导致数值解的误差非常大。

例如,求解线性方程组Ax=b时,如果系数矩阵A的行列式非常接近于零,那么即使是很小的b的变化也会导致解x的巨大变化,这就是一个病态问题。

5. 问题:什么是插值和拟合?它们之间有何区别?答案:插值是指在给定一组数据点的情况下,找到一个函数,使其精确地通过这些数据点。

拟合则是找到一个函数,使其尽可能地接近这些数据点,但不一定通过每一个点。

插值通常要求函数在所有数据点上都有相同的值,而拟合则是最小化数据点与函数值之间的误差。

6. 问题:请解释什么是数值积分,并给出一个常见的数值积分方法。

计算方法各习题及参考答案

计算方法各习题及参考答案

第二章 数值分析2.1 已知多项式432()1p x x x x x =-+-+通过下列点:试构造一多项式()q x 通过下列点:答案:54313()()()3122q x p x r x x x x x =-=-++-+. 2.2 观测得到二次多项式2()p x 的值:表中2()p x 的某一个函数值有错误,试找出并校正它.答案:函数值表中2(1)p -错误,应有2(1)0p -=.2.3 利用差分的性质证明22212(1)(21)/6n n n n +++=++ .2.4 当用等距节点的分段二次插值多项式在区间[1,1]-近似函数xe 时,使用多少个节点能够保证误差不超过61102-⨯. 答案:需要143个插值节点.2.5 设被插值函数4()[,]f x C a b ∈,()3()h H x 是()f x 关于等距节点01n a x x x b =<<<= 的分段三次艾尔米特插值多项式,步长b ah n-=.试估计()3||()()||h f x H x ∞-.答案:()443||()()||384h M f x H x h ∞-≤.第三章 函数逼近3.1 求()sin ,[0,0.1]f x x x =∈在空间2{1,,}span x x Φ=上最佳平方逼近多项式,并给出平方误差.答案:()sin f x x =的二次最佳平方逼近多项式为-522sin ()0.832 440 710 1.000 999 10.024 985 1x p x x x ≈=-⨯+-,二次最佳平方逼近的平方误差为0.122-1220(sin )())0.989 310 710x p x dx δ=-=⨯⎰.3.2 确定参数,a b c 和,使得积分2121(,,)[I a b c ax bx c -=++-⎰取最小值.答案:810, 0, 33a b c ππ=-== 3.3 求多项式432()251f x x x x =+++在[1,1]-上的3次最佳一致逼近多项式()p x .答案:()f x 的最佳一致逼近多项式为323()74p x x x =++. 3.4 用幂级数缩合方法,求() (11)x f x e x =-≤≤上的3次近似多项式6,3()p x ,并估计6,3||()()||f x p x ∞-.答案:236,3()0.994 574 650.997 395 830.542 968 750.177 083 33p x x x x =+++, 6,3||()()||0.006 572 327 7f x p x ∞-≤3.5 求() (11)xf x e x =-≤≤上的关于权函数()x ρ=的三次最佳平方逼近多项式3()S x ,并估计误差32||()()||f x S x -和3||()()||f x S x ∞-.答案:233()0.994 5710.997 3080.542 9910.177 347S x x x x =+++,32||()()||0.006 894 83f x S x -=,3||()()||0.006 442 575f x S x ∞-≤.第四章 数值积分与数值微分4.1 用梯形公式、辛浦生公式和柯特斯公式分别计算积分1(1,2,3,4)n x dx n =⎰,并与精确值比较.答案:计算结果如下表所示4.2 确定下列求积公式中的待定参数,使得求积公式的代数精度尽量高,并指明所确定的求积公式具有的代数精度. (1)101()()(0)()hh f x dx A f h A f A f h --≈-++⎰(2)11211()[(1)2()3()]3f x dx f f x f x -≈-++⎰ (3)20()[(0)()][(0)()]2h h f x dx f f h h f f h α''≈++-⎰答案:(1)具有三次代数精确度(2)具有二次代数精确度(3)具有三次代数精确度.4.3 设10h x x =-,确定求积公式12300101()()[()()][()()][]x x x x f x dx h Af x Bf x h Cf x Df x R f ''-=++++⎰中的待定参数,,,A B C D ,使得该求积公式的代数精确度尽量高,并给出余项表达式.答案:3711,,,20203020A B C D ====-,(4)6()[]1440f R f h η=,其中01(,)x x η∈.4.4 设2()P x 是以0,,2h h 为插值点的()f x 的二次插值多项式,用2()P x 导出计算积分30()hI f x dx =⎰的数值积分公式h I ,并用台劳展开法证明:453(0)()8h I I h f O h '''-=+. 答案:3203()[(0)3(2)]4h h I p x dx h f f h ==+⎰.4.5 给定积分10sin xI dx x =⎰(1)运用复化梯形公式计算上述积分值,使其截断误差不超过31102-⨯. (2)取同样的求积节点,改用复化辛浦生公式计算时,截断误差是多少?(3)要求的截断误差不超过610-,若用复化辛浦生公式,应取多少个节点处的函数值? 答案:(1)只需7.5n ≥,取9个节点,0.946I ≈(2)4(4)46111|[]||()|()0.271102880288045n b a R f h f η--=-≤=⨯ (3)取7个节点处的函数值.4.6 用变步长的复化梯形公式和变步长的复化辛浦生公式计算积分10sin xI dx x =⎰.要求用事后误差估计法时,截断误不超过31102-⨯和61102-⨯. 答案:使用复化梯形公式时,80.946I T ≈=满足精度要求;使用复化辛浦生公式时,40.946 083I s ≈=满足精度要求.4.7(1)利用埃尔米特插值公式推导带有导数值的求积公式2()()[()()][()()][]212ba b a b a f x dx f a f b f b f a R f --''=+--+⎰,其中余项为 5(4)()[](), (,)4!30b a R f f a b ηη-=∈. (2)利用上述公式推导带修正项的复化梯形求积公式020()[()()]12Nx N N x h f x dx T f x f x ''≈--⎰,其中 0121[()2()2()2()()]2N N N hT f x f x f x f x f x -=+++++ ,而 00, (0,1,2,,), i N x x ih i N Nh x x =+==- .4.8 用龙贝格方法计算椭圆2214x y +=的周长,使结果具有五位有效数字. 答案:49.6884l I =≈.4.9确定高斯型求积公式0011()()()x dx A f x A f x ≈+⎰的节点0x ,1x 及系数0A ,1A .答案:00.289 949x =,10.821 162x =,00.277 556A =,10.389 111A =.4.10 验证高斯型求积公式00110()()()x e f x dx A f x A f x +∞-≈+⎰的系数及节点分别为0001 2 2A A x x ===-=+第五章 解线性方程组的直接法5.1 用按列选主元的高斯-若当消去法求矩阵A 的逆矩阵,其中111210110A -⎛⎫ ⎪= ⎪ ⎪-⎝⎭. 答案: 1110331203321133A -⎛⎫ ⎪ ⎪⎪=- ⎪ ⎪⎪-- ⎪⎝⎭5.2 用矩阵的直接三角分解法解方程组1234102050101312431701037x x x x ⎛⎫⎛⎫⎛⎫⎪ ⎪ ⎪⎪ ⎪ ⎪= ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭ 答案: 42x =,32x =,21x =,11x =.5.3 用平方根法(Cholesky 分解法)求解方程组12341161 4.25 2.750.51 2.75 3.5 1.25x x x -⎛⎫⎛⎫⎛⎫ ⎪⎪ ⎪-=- ⎪⎪ ⎪ ⎪⎪ ⎪⎝⎭⎝⎭⎝⎭答案: 12x =,21x =,31x =-.5.4 用追赶法求解三对角方程组123421113121112210x x x x ⎛⎫⎛⎫⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪= ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭ 答案:42x =,31x =-,21x =,10x =.第六章 解线性代数方程组的迭代法6.1 对方程1212123879897x x x x x x x -+=⎧⎪-+=⎨⎪--=⎩作简单调整,使得用高斯-赛得尔迭代法求解时对任意初始向量都收敛,并取初始向量(0)[0 0 0]T x =,用该方法求近似解(1)k x+,使(1)()3||||10k k x x +-∞-≤. 答案:近似解为(4)[1.0000 1.0000 1.0000]Tx =.6.2 讨论松弛因子 1.25ω=时,用SOR 方法求解方程组121232343163420412x x x x x x x +=⎧⎪+-=⎨⎪-+=-⎩ 的收敛性.若收敛,则取(0)[0 0 0]T x=迭代求解,使(1)()41||||102k k x x +-∞-<⨯. 答案:方程组的近似解为*1 1.50001x =,*2 3.33333x =,*3 2.16667x =-.6.3 给定线性方程组Ax b =,其中111221112211122A ⎛⎫ ⎪ ⎪⎪= ⎪ ⎪ ⎪ ⎪⎝⎭,证明用雅可比迭代法解此方程组发散,而高斯-赛得尔迭代法收敛.6.4 设有方程组112233302021212x b x b x b -⎛⎫⎛⎫⎛⎫ ⎪⎪ ⎪= ⎪⎪ ⎪ ⎪⎪ ⎪-⎝⎭⎝⎭⎝⎭,讨论用雅可比方法和高斯-赛得尔方法解此方程组的收敛性.如果收敛,比较哪种方法收敛较快.答案:雅可比方法收敛,高斯-赛得尔方法收敛,且较快.6.5 设矩阵A 非奇异.求证:方程组Ax b =的解总能通过高斯-赛得尔方法得到.6.6 设()ij n nA a ⨯=为对称正定矩阵,对角阵1122(,,,)nn D diag a a a = .求证:高斯-赛得尔方法求解方程组1122D AD x b --=时对任意初始向量都收敛.第七章 非线性方程求根例7.4 对方程230xx e -=确定迭代函数()x ϕ及区间[,]a b ,使对0[,]x a b ∀∈,迭代过程1(), 0,1,2,k x x k ϕ+== 均收敛,并求解.要求51||10k k x x -+-<. 答案:若取2()x x ϕ=,则在[1,0]-中满足收敛性条件,因此迭代法121, 0,1,2,k x k x k +== 在(1,0)-中有惟一解.取00.5x =-,*70.458960903x x ≈=-.取2()x x ϕ=,在[0,1上满足收敛性条件,迭代序列121, 0,1,2,k x k x k +== 在[0,1]中有惟一解.取00.5x =,*140.910001967x x ≈=- 在[3,4]上,将原方程改写为23xe x =,取对数得2ln(3)()x x x ϕ==.满足收敛性条件,则迭代序列21ln(3), 0,1,2,k k x x k +== 在[3,4]中有惟一解.取0 3.5x =, *16 3.733067511x x ≈=.例7.6 对于迭代函数2()(3)x x c x ϕ=+-,试讨论:(1)当c 为何值时,1()k k x x ϕ+=产生的序列{}k x(2)c 取何值时收敛最快?(3)取1,2c =-()x ϕ51||10k k x x -+-<.答案:(1)(c ∈时迭代收敛.(2)c =时收敛最快.(3)分别取1, 2c =--,并取0 1.5x =,计算结果如下表7.7所示表7.7例7.13 设不动点迭代1()k x x ϕ+=的迭代函数()x ϕ具有二阶连续导数,*x 是()x ϕ的不动点,且*()1x ϕ'≠,证明Steffensen 迭代式21(), (), 0,1,2,()2k k k k k k k k k k k y x z x k y x x x z y xϕϕ+==⎧⎪=-⎨=-⎪-+⎩二阶收敛于*x .例7.15 设2()()()()()x x p x f x q x f x ϕ=--,试确定函数()p x 和()q x ,使求解()0f x =且以()x ϕ为迭代函数的迭代法至少三阶收敛.答案:1()()p x f x =',31()()2[()]f x q x f x ''=' 例7.19 设()f x 在[,]a b 上有高阶导数,*(,)x a b ∈是()0f x =的(2)m m ≥重根,且牛顿法收敛,证明牛顿迭代序列{}k x 有下列极限关系:111lim2k kk k k k x x m x x x -→∞-+-=-+.第八章 矩阵特征值8.1 用乘幂法求矩阵A 的按模最大的特征值与对应的特征向量,已知5500 5.51031A -⎛⎫ ⎪=- ⎪ ⎪-⎝⎭,要求(1)()611||10k k λλ+--<,这里()1k λ表示1λ的第k 次近似值.答案:15λ≈,对应的特征向量为[5,0,0]T-;25λ≈-,对应的特征向量为[5,10,5]T --. 8.2 用反幂法求矩阵110242012A -⎛⎫⎪=-- ⎪ ⎪-⎝⎭的按模最小的特征值.知A 的按模较大的特征值的近似值为15λ=,用5p =的原点平移法计算1λ及其对应的特征向量.答案:(1) A 的按模最小的特征值为30.2384428λ≈(2) 1 5.1248854λ≈,对应的特征向量为(8)[0.242 4310, 1 ,0.320 011 7]T U =--.8.3 设方阵A 的特征值都是实数,且满足121, ||||n n λλλλλ>≥≥> ,为求1λ而作原点平移,试证:当平移量21()2n p λλ=+时,幂法收敛最快. 8.4 用二分法求三对角对称方阵1221221221A ⎛⎫ ⎪ ⎪= ⎪ ⎪ ⎪⎝⎭的最小特征值,使它至少具有2位有效数字.答案:取5 2.234375λ≈-即有2位有效数字.8.5 用平面旋转变换和反射变换将向量[2 3 0 5]T x =变为与1[1 0 0 0]Te =平行的向量.答案:203/2/00001010/0T ⎛⎫⎪- ⎪=⎪--⎝0.324 442 8400.486 664 26200.811 107 1040.486 664 2620.812 176 04800.298 039 92200100.811 107 1040.298 039 92200.530 266 798H --⎛⎫⎪--⎪= ⎪ ⎪⎪--⎝⎭8.6 若532644445A -⎛⎫⎪=- ⎪ ⎪-⎝⎭,试把A 化为相似的上Hessenberg 阵,然后用QR 方法求A 的全部特征值.第九章 微分方程初值问题的数值解法9.1 用反复迭代(反复校正)的欧拉预估-校正法求解初值问题0, 0<0.2(0)1y y x y '+=≤⎧⎨=⎩,要求取步长0.1h =,每步迭代误差不超过510-. 答案: [4]11(0.1)0.904 762y y y ≈==,[4]22(0.2)0.818 594y y y ≈==9.2 用二阶中点格式和二阶休恩格式求初值问题2, 0<0.4(0)1dy x y x dx y ⎧=+≤⎪⎨⎪=⎩的数值解(取步长0.2h =,运算过程中保留五位小数).答案:用二阶中点格式,取初值01y =计算得0n =时,1211.000 00, 1.200 00, (0.2)=1.240 00K K y y ==≈ 1n =时,1221.737 60, 2.298 72, (0.4)=1.699 74K K y y ==≈用二阶休恩格式,取初值01y =计算得0n =时,1211.000 00, 1.266 67, (0.2)=1.240 00K K y y ==≈ 1n =时,1221.737 60, 2.499 18, (0.4)=1.701 76K K y y ==≈9.3 用如下四步四阶阿达姆斯显格式1123(5559379)/24n n n n n n y y h f f f f +---=+-+-求初值问题, (0)1y x y y '=+=在[0,0.5]上的数值解.取步长0.1h =,小数点后保留8位.答案:4(0.4)0.583 640 216y y ≈=,5(0.5) 1.797 421 984y y ≈=. 9.4 为使二阶中点公式1(,(,))22n n n n n n h hy y hf x y f x y +=+++,求解初值问题 , (0)y y y aλλ'=-⎧⎨=⎩为实常数绝对稳定,试求步长h 的大小应受到的限制条件. 答案:2h λ≤.9.5 用如下反复迭代的欧拉预估-校正格式(0)1(1)()111(,)[(,)(,)]2 0,1,2,; 0,1,2,nn n n k k n n n n n n y y hf x y h y y f x y f x y k n +++++⎧=+⎪⎪=++⎨⎪⎪==⎩,求解初值问题sin(), 01(0)1x y e xy x y '⎧=<≤⎨=⎩时,如何选择步长h ,使上述格式关于k 的迭代收敛. 答案:2h e<时上述格式关于k 的迭代是收敛的.9.6 求系数,,,a b c d ,使求解初值问题0(,), ()y f x y y x a '==的如下隐式二步法221()n n n n n y ay h bf cf df +++=+++的误差阶尽可能高,并指出其阶数.答案:系数为142,,33a b d c ====,此时方法的局部截断误差阶最高,为五阶5()O h .9.7 试用欧拉预估-校正法求解初值问题, (0)=1, 0<0.2()/, (0)2dyxy z y dxx dz x y z z dx⎧=-⎪⎪≤⎨⎪=+=⎪⎩,取步长0.1h =,小数点后至少保留六位.答案:由初值00(0)1, (0)2y y z z ====可计算得110.800 000z 2.050 000y =⎧⎨=⎩ , 11(0.1)0.801 500(0.1) 2.046 951y y z z ≈=⎧⎨≈=⎩ 220.604 820z 2.090 992y =⎧⎨=⎩ , 22(0.2)0.604 659(0.2) 2.088 216y y z z ≈=⎧⎨≈=⎩。

浙江大学计算方法大作业第十二题

浙江大学计算方法大作业第十二题
(2*a0*a0*x[i]*x[i]*exp(2*b0*x[i]) - a0*x[i]*x[i]*y[i]*exp(b0*x[i]))*b0 +a0*x[i]*y[i]*exp(b0*x[i]) - a0*a0*x[i]*exp(2*b0*x[i]); } a = (B[0]*A[1][1]-B[1]*A[0][1])/(A[0][0]*A[1][1] - A[0][1]*A[1][0]); b = (B[1]*A[0][0]-B[0]*A[1][0])/(A[0][0]*A[1][1] - A[0][1]*A[1][0]); } max = fabs(a*exp(b*x[1]) - y[1]); for(i = 0; i < 19; i++) { sigma = sigma + pow(a*exp(b*x[i]) - y[i],2); if(fabs(a*exp(b*x[i]) - y[i]) > max) max = fabs(a*exp(b*x[i]) - y[i]); } sigma = pow(sigma,0.5); fprintf(fp3, "a = %lf\n", a); fprintf(fp3, "b = %lf\n", b); fprintf(fp3, "均方误差为%lf\n", sigma); fprintf(fp3, "最大偏差为%lf\n", max); }
exp(2*b0*x[i])*a0 + y[i]*exp(b0*x[i]) - a0*exp(2*b0*x[i]); A[1][0] = A[1][0] + 2*a0*x[i]*exp(2*b0*x[i]) - x[i]*y[i]*exp(b0*x[i]); A[1][1] = A[1][1] + 2*a0*a0*x[i]*x[i]*exp(2*b0*x[i]) - a0*x[i]*x[i]*y[i]*exp(b0*x[i]); B[1] = B[1] + (2*a0*x[i]*exp(2*b0*x[i]) - x[i]*y[i]*exp(b0*x[i]))*a0 +

计算方法习题及答案

计算方法习题及答案

第一章 绪论一.填空题1.*x 为精确值x 的近似值;()**x f y=为一元函数()x f y =1的近似值;()**,*y x f y =为二元函数()y x f y ,2=的近似值,请写出下面的公式:**e x x =-:***rx x e x -=()()()*'1**y f x x εε≈⋅ ()()()()'***1**r r x f x y x f x εε≈⋅ ()()()()()**,**,*2**f x y f x y y x y x yεεε∂∂≈⋅+⋅∂∂()()()()()****,***,**222r f x y e x f x y e y y x y y y ε∂∂≈⋅+⋅∂∂2、 计算方法实际计算时,对数据只能取有限位表示,这时所产生的误差叫 舍入误差 。

3、 分别用2.718281,2.718282作数e的近似值,则其有效数字分别有 6 位和 7 位;又取1.73≈(三位有效数字),则-211.73 10 2≤⨯。

4、设121.216, 3.654x x ==均具有3位有效数字,则12x x 的相对误差限为 0.0055 。

5、设121.216, 3.654x x ==均具有3位有效数字,则12x x +的误差限为 0.01 。

6、已知近似值 2.4560A x =是由真值T x 经四舍五入得到,则相对误差限为 0.000021 .7、递推公式,⎧⎪⎨⎪⎩0n n-1y =y =10y -1,n =1,2,如果取0 1.41y ≈作计算,则计算到10y 时,误差为8110 2⨯;这个计算公式数值稳定不稳定 不稳定 .8、精确值 14159265.3*=π,则近似值141.3*1=π和1415.3*2=π分别有 3 位和 4 位有效数字。

9、 若*2.71828x e x =≈=,则x 有 6 位有效数字,其绝对误差限为1/2*10-5。

10、 设x*的相对误差为2%,求(x*)n 的相对误差0.02n 二、计算题1. 有一个长方形水池,由测量知长为(50±0.01)米,宽为(25±0.01)米,深为(20±0.01)米,试按所给数据求出该水池的容积,并分析所得近似值的绝对误差和相对误差公式,并求出绝对误差限和相对误差限. 解:设长方形水池的长为L ,宽为W,深为H ,则该水池的面积为V=LWH当L=50,W=25,H=20时,有 V=50*25*20=25000(米3) 此时,该近似值的绝对误差可估计为()()()()()()()=V V VV L W H L W HWH L HL W LW H ∂∂∂∆≈∆+∆+∆∂∂∂∆+∆+∆ 相对误差可估计为:()()r V V V∆∆=而已知该水池的长、宽和高的数据的绝对误差满足()()()0.01,0.01,0.01L W H ∆≤∆≤∆≤故求得该水池容积的绝对误差限和相对误差限分别为()()()()()()325*20*0.0150*20*0.0150*25*0.0127.5027.501.1*1025000r V WH L HL W LW H V V V -∆≤∆+∆+∆≤++=∆∆=≤=2.已知测量某长方形场地的长a=110米,宽b=80米.若()()**0.1 0.1a a b b -≤-≤米,米试求其面积的绝对误差限和相对误差限. 解:设长方形的面积为s=ab当a=110,b=80时,有 s==110*80=8800(米2) 此时,该近似值的绝对误差可估计为()()()()()=b s ss a b a ba ab ∂∂∆≈∆+∆∂∂∆+∆ 相对误差可估计为:()()r s s s∆∆=而已知长方形长、宽的数据的绝对误差满足()()0.1,0.1a b ∆≤∆≤故求得该长方形的绝对误差限和相对误差限分别为()()()()() 80*0.1110*0.119.019.00.0021598800r s b a a b s s s ∆≤∆+∆≤+=∆∆=≤= 绝对误差限为19.0;相对误差限为0.002159。

浙江大学计算方法大作业第八题

浙江大学计算方法大作业第八题
题目:从函数表
x f(x) 0.0 0.39894 0.1 0.39695 0.195 0.39142 0.3 0.38138 0.401 0.36812 0.5 0.35206
出发,用下列方法计算 f(0.15),f(0.31),及 f(0.47)的近似值: (1)分段线性插值; (2)分段二次插值; (3)全区间上拉格朗日插值
结果分析:很漂亮的结果,本题基本上完全套书里面的公式,只有第二小问稍麻烦点。
结果很精确,并且可以很明显的看到,三个结果越来越精确。
源程序:
(1) #include<stdio.h> int main(void) { printf("输入表格:\n"); double a[2][6]; int i,j,b; double y,x,x1,x0,y0,y1; for(i=0;i<2;i++) for(j=0;j<6;j++) scanf("%lf",&a[i][j]); for(b=1;b<=3;b++) { printf("x=") ; scanf("%lf",&x); for(j=1;j<6;j++) { if(x<a[0][j])break; } x0=a[0][j-1]; x1=a[0][j]; y0=a[1][j-1]; y1=a[1][j]; y=y0+(y1-y0)*(x-x0)/(x1-x0); printf("f(%.2f)=%.5f\n",x,y); } return 0; } (2) #include<stdio.h> int main(void) { printf("表格就不用输入了,已经初始化了(嘿嘿! )直接输入 x 就好了\n"); double a[2][6]={{0.0,0.1,0.195,0.3,0.401,0.5}, {0.39894,0.39695,0.39142,0.38138,0.36812,0.35206}}; int i,j,b,n; double y,x,x0,x1,x2,y1,y2,y0,o,p,q; for(b=1;b<=3;b++) { printf("x=") ; scanf("%lf",&x);

2020吉大网络教育(直属)计算方法大作业解答

2020吉大网络教育(直属)计算方法大作业解答

2020吉大网络教育(直属)计算方法大作业解答
计算题
1. 证明下列差分格式是二阶的
是二阶方法,并求出误差首项。

2. 用梯形方法解初值问题证明其近似解为
证明当时,其原初值问题的准确解3. 方程将其改写为
4. 用尤拉法解初值问题取步长计算。

5. 给定常微分初值问题试构造求解常微分初值问题的梯形差分格式。

6. 试证明显格式是一阶方法。

7. 方程将其改写为
8. 证明对于任意的参数,下列龙格—库塔公式是二阶的:
9. 利用改进的方法求解初值问题(取)
10. 就初值问题导出改进尤拉方法的近似解的表达式,并与准确解相比较。

答案完整解答部分:
计算题
1. 答:
2. 答:
3. 答:
4. 答:
5. 答:
6. 答:
7. 答:
8. 答:
9. 答:
10. 答:。

浙大计算方法上机报告.

浙大计算方法上机报告.

学号:3100300038 姓名: 专业:作业1:用列主元高斯消去法和列主元三角分解法解P227页第3题1. 列主元高斯消去法目的:用高斯消去法解Ax=b 时,其中设A 为非奇异矩阵,可能出现a kk =0 情况,这时必须进行带行交换的高斯消去法。

但在实际计算中即使0)( k kk a 但其绝对值很小时,用)(k kk a 作除数,会导致中间结果矩阵A(k)元素数量级严重增长和舍入误差的扩散,使得最后的计算结果不可靠。

列主元高斯消去法可以难过一般高斯法的这些缺点。

一、列主元高斯消去法解方程的Matlab 程序如下:function a=columneli(a) %对矩阵a 进行列主元消去 [m n]=size(a); %求取a 的行数m 和列数n for i=1:m-1[maxEle,pos]=max(abs(a(i:end,i)));maxRow=pos+i-1; %在每次变换前寻找绝对值最大主所在列maxRow if a(maxRow,i)==0disp('矩阵为奇异矩阵')return %对于非奇异矩阵,在程序中给予提示,结束程序 end if(maxRow~=i)temp=a(maxRow,:);a(maxRow,:)=a(i,:);a(i,:)=temp;end %与列主元绝对值最大的行进行行交换 for j=i+1:ma(j,i)=a(j,i)/a(i,i); %求取第j 列主元 for k=i+1:na(j,k)=a(j,k)-a(j,i)*a(i,k); %对第j 列主元进行行变换 end end endfunction x=elisolve(a) %利用列主元消去的结果求方程的解,a 为方程组的增广矩阵 a=columneli(a); [m,n]=size(a);x=zeros(m,1); for i=m:-1:1x(i)=(a(i,n)-a(i,i:m)*x(i:m))/a(i,i); end二、列主元高斯消去法解P227页第3题:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-321321212111430x x x 答案:x=[7/6 -1/3 1/2]T三、程序流程图如下:条件图框里面没有条件式,因为i 是从m 到1,所以i=1后运行下面的命令,直接输出结果。

计算方法智慧树知到答案章节测试2023年浙江大学

计算方法智慧树知到答案章节测试2023年浙江大学

绪论单元测试1.工科人认知世界的时候,需要认可误差的存在。

A:对B:错答案:A2.不需要掌握很多很好的计算方法,单单凭借计算机强大的能力就可以解决大部分实际问题。

A:错B:对答案:A3.计算方法是一门理论数学课,可以获得寻求数学问题的精确解析解的知识A:错B:对答案:A4.解决某些实际问题时,选择不合适的计算方法有可能无法得到满意的结果。

A:对B:错答案:A5.求解高阶线性方程组(比如,大于150阶),用克莱姆法则来直接求解也是可以接受的。

A:对B:错答案:B第一章测试1.计算机进行乘除运算时按照先舍入后运算的原则。

()A:错B:对答案:A2.相对误差是个无名数,没有量纲。

()A:错B:对答案:B3.两近似值之商的相对误差等于被除数的相对误差与除数的相对误差之差。

()A:错B:对答案:B4.用 1+x近似表示所产生的误差是( )A:模型误差B:截断误差C:舍入误差D:观测误差答案:B5.设某数x,那么x的有四位有效数字且绝对误差限是的近似值是()A:0.006930B:0.6930C:0.06930D:0.693答案:B第二章测试1.若f(a)f(b)<0 ,则f(x)在(a,b)内一定有根。

()A:对B:错答案:B2.如果迭代格式在根的附近导数值的模大于1,则迭代发散。

()A:对B:错答案:A3.若x*是f(x)=0的重根,则牛顿不收敛。

()A:对B:错答案:B4.非线性方程的求根方法中,正割法收敛速度比Newton迭代法快。

()A:对B:错答案:B5.用牛顿迭代法求方程f(x)=在附近的根,第一次迭代值()A:3B:2C:0D:1答案:B6.用简单迭代法求方程f(x)=0的实根,把方程f(x)=0表示成x=g(x),则f(x)=0的根是()A:y=x与x轴交点的横坐标B:y=g(x)与x轴交点的横坐标C:y=x与y=g(x)的交点D:y=x与y=g(x)交点的横坐标答案:D7.以下对非线性方程的求根方法中哪些是线性收敛的?()A:不动点迭代法B:二分法C:牛顿迭代法在重根的情况下D:牛顿迭代法在单根的情况下答案:AC第三章测试1.上面式子,用高斯消去法计算,解为()。

最优化计算方法课后习题答案解析

最优化计算方法课后习题答案解析

习题二包括题目: P36页 5〔1〕〔4〕 5〔4〕习题三包括题目:P61页 1(1)(2); 3; 5; 6; 14;15(1) 1(1)(2)的解如下 3题的解如下 5,6题14题解如下14. 设22121212()(6)(233)f x x x x x x x =+++---, 求点在(4,6)T-处的牛顿方向。

解: (1)(4,6)T x=-,由题意得∴(1)1344()56g f x -⎛⎫=∇=⎪⎝⎭21212122211212122(3)22(3)(3)2(233)()22(3)(3)2(233)22(3)x x x x x x x f x x x x x x x x +--+--------⎛⎫∇= ⎪+--------+--⎝⎭∴(1)2(1)1656()()564G x f x --⎛⎫=∇=⎪-⎝⎭∴(1)(1)11141/100()574/100d G x g -⎛⎫=-=⎪-⎝⎭15〔1〕解如下15. 用DFP 方法求以下问题的极小点〔1〕22121212min 353x x x x x x ++++解:取 (0)(1,1)T x=,0H I =时,DFP 法的第一步与最速下降法一样2112352()156x x f x x x ++⎛⎫∇= ⎪++⎝⎭, (0)(1,1)T x =,(0)10()12f x ⎛⎫∇= ⎪⎝⎭(1)0.07800.2936x -⎛⎫= ⎪-⎝⎭, (1)1.3760() 1.1516f x ⎛⎫∇= ⎪-⎝⎭以下作第二次迭代(1)(0)1 1.07801.2936x x δ-⎛⎫=-= ⎪-⎝⎭, (1)(0)18.6240()()13.1516f x f x γ-⎛⎫=∇-∇= ⎪-⎝⎭其中,111011126.3096,247.3380T T TH δγγγγγ===11 1.1621 1.39451.3945 1.6734T δδ⎛⎫= ⎪⎝⎭ , 01101174.3734113.4194113.4194172.9646T TH H γγγγ⎛⎫== ⎪⎝⎭所以 令 (2)(1)(1)1xx d α=+ , 利用 (1)(1)()0df x d d αα+=,求得 10.5727α=-所以 (2)(1)(1)0.77540.57270.8535x x d ⎛⎫=-= ⎪-⎝⎭ , (2)0.2833()0.244f x ⎛⎫∇= ⎪-⎝⎭以下作第三次迭代(2)(1)20.85340.5599x x δ⎛⎫=-= ⎪-⎝⎭ , (2)(1)2 1.0927()()0.9076f x f x γ-⎛⎫=∇-∇= ⎪⎝⎭22 1.4407T δγ=- , 212 1.9922T H γγ=所以 令 (3)(2)(2)2xxdα=+ , 利用(2)(2)()0df x d d αα+=,求得 21α= 所以 (3)(2)(2)11x x d ⎛⎫=+=⎪-⎝⎭, 因为 (3)()0f x ∇=,于是停顿 (3)(1,1)T x =-即为最优解。

2019-2020学年第一学期期末考试《计算方法》大作业答案

2019-2020学年第一学期期末考试《计算方法》大作业答案

吉林大学网络教育学院2019-2020学年第一学期期末考试《计算方法》大作业答案学生姓名专业层次年级学号学习中心成绩年月日作业完成要求:大作业要求学生手写,提供手写文档的清晰扫描图片,并将图片添加到word文档内,最终wod文档上传平台,不允许学生提交其他格式文件(如JPG,RAR等非word文档格式),如有雷同、抄袭成绩按不及格处理。

一、解线性方程(每小题8分,共80分)1、用矩阵的LU分解算法求解线性方程组X1+2X2+3X3= 02X1+2X2+8X3= -4-3X1-10X2-2X3= -11答:2、用矩阵的Doolittle分解算法求解线性方程组X1+2X2+3X3= 12X1– X2+9X3= 0-3X1+ 4X2+9X3= 1答:3、用矩阵的Doolittle分解算法求解线性方程组2X1+X2+X3= 46X1+4X2+5X3=154X1+3X2+6X3= 13答:4、用高斯消去法求解线性方程组2X1- X2+3X3= 24X1+2X2+5X3= 4-3X1+4X2-3X3= -3答:5、用无回代过程消元法求解线性方程组2X1- X2+3X3= 24X1+2X2+5X3= 4-3X1+4X2-3X3= -3答:6、用主元素消元法求解线性方程组2X1- X2+3X3= 24X1+2X2+5X3= 4-3X1+4X2-3X3= -3答:7、用高斯消去法求解线性方程组1231231232344272266x x x x x x x x x -+=++=-++=答:8、利用Doolittle 分解法解方程组Ax=b ,即解方程组12341231521917334319174262113x x x x -⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥--⎢⎥⎢⎥⎢⎥--⎣⎦⎣⎦⎣⎦ 答:9、利用Doolittle 分解法解方程组Ax=b ,即解方程组123421111443306776081011112x x x x ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦⎣⎦ 答:10、用高斯消元法解方程组1237811351341231x x x -⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-=-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦答案:二、计算(每小题10分,共20分)1、已知节点x1,x2及节点处函数值f(x1),f(x2),构造线性插值多项式p1(x). 答:2、设f(xi)=i(i=0,1,2),构造二次式p2(x),使满足: p2(xi)=f(xi)(i=0,1,2)答:。

《计算方法。课程大作业选题

《计算方法。课程大作业选题

计算方法大作业选题(任选一题)1.插值方法:编制用牛顿插值、哈密特插值、分段插值、样条插值的计算机程序,并就计算结果分 析它们的特点。

2. 数值积分方法:编制用牛顿一科特斯、复化求积、龙贝格公式计算积分的计算机程序,并就计算结果 分析它们的特点。

3. 求解线性方程组:编制用直接法(消去法、三角分解法)与间接法(迭代法)解线性方程组的计算机 程序,并就计算结果分析它们的特点。

4. 用高斯-勒让德公式计算定积分设计用高斯-勒让德求积公式计算定积分的程序,并用数值例子计算。

5. 求大区间积分的数值方法2000 2 设计一种方法求解积分I 二 e 」dx 的数值方法,并分析它的可行性6. 椭圆数值积分2 -IT I ------------- -- ------- -- ---已知椭圆的周长可以表示成 s=a,「{4 + P cos Q d (0 v P v 1),取a=1,(1)针对「从0.1到0.9 (步长h=0.1)分别求出周长s ;(用Romberg 积分方法)(2)对于以上数据,求出s 关于「的插值多项式;对于(1)中数据,试用最小二乘的思想求作拟合多项式(要求是偶次)优劣进行比较(1)试采用Romberg 求积算法计算当x = 0.5、1、1.5、2、2.5、3、3.5时的门(x )的值;(2) 针对(1)中求出的叮」(x )值,选择适当的曲线做曲线拟合。

备选曲线:①多项式曲线 ②y x③y ■夫(选择其中一种即可) Ax+B 1+Ce8. 曲线拟合1601年,德国天文学家开普勒发表了行星运行第三定律: T 二Cx 3/2,其中,T 为行星绕太阳 旋转一周的时间(单位:天),x 表示行星到太阳的平均距离(单位:百万公里),并测得水 星、金星、地球、火星的数据(x ,T )分别为(58,88)、(108,225)、(150,365)、(228,687)。

(1) 用最小二乘法估计C 的值;(2) 分别作出上述数据点的直线、抛物线、三次、四次多项式拟合,求出残差平方和 Q ,,并对这些多项式的7•正态曲线的拟合标准正态分布的分布函数 G丄2 e 2dt并比较优劣;(3)用函数y =ae x bx c 来对数据点进行曲线拟合,并求出残差平方和Q 9. 求方程实根用二分法和牛顿迭代法(包括弦截法)编程求方程2 xs i nx 02 的实根,要求误差不超过10・。

2018-2019学年第二学期期末考试《计算方法》大作业参考答案

2018-2019学年第二学期期末考试《计算方法》大作业参考答案

吉林大学网络教育学院2018-2019学年第二学期期末考试《计算方法》大作业学生姓名专业层次年级学号学习中心成绩年月日一、构造次数不超过三次的多项式P3(X),使满足:(10分)P3(0)= 1;P3(1)=0;P3′(0)=P3′(1)=0。

二、设f(x i)=i(i=0,1,2),构造二次式p2(x),使满足:(10分) p2(x i)=f(x i)(i=0,1,2)三、设节点x i=i(i=0,1,2,3),f(0)=1,f(1)=0,f(2)=-7,f(3)=26,构造次数不超过3次的多项式p3(x),满足p3(x i)=f(x i),i=0,1,2,3 (10分)四、对于上题的问题,构造Newton插值多项式。

(10分)五、构造三次多项式P 3(X )满足:P 3(0)= P 3(1)=0,P 3′(0)=P 3′(1)=1。

(10分)六、利用Doolittle 分解法解方程组Ax=b 即解方程组 (15分) 12341231521917334319174262113x x x x -⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥--⎢⎥⎢⎥⎢⎥--⎣⎦⎣⎦⎣⎦解:用公式七、基于迭代原理证明(10分)+++=22 (22)八、构造二次多项式2()x p 满足: (10分)'010222()1;()0;()1p p p x x x ===九、构造一个收敛的迭代法求解方程3210x x --=在[1.3,1.6]内的实根。

合理选择一个初值,迭代一步,求出1x 。

(15分)作业完成要求:大作业要求学生手写,提供手写文档的清晰扫描图片,并将图片添加到word 文档内,最终word文档上传平台,不允许学生提交其他格式文件(如JPG,RAR等非word 文档格式),如有雷同、抄袭成绩按不及格处理。

计算方法实验报告习题1(浙大版)

计算方法实验报告习题1(浙大版)

计算方法实验报告实验名称: 实验1 从函数表出发进行插值 1 引言某个实际问题中,函数f (x)在区间[a,b]上存在且连续,但难以找到其表达式,只能通过实验和观测得到有限点上的函数表。

有些情况虽然可以写出表达式,但结构复杂,使用不方便。

所以希望构造简单函数P (x)作为f (x)的近似值。

插值法是解决此类问题的一种方法。

设函数y=在插值区间[a,b]上连续,且在n+1个不同的插值节点a≤x 0,x 1,…,x n ≤b 上分别取值y 0,y 1,…,y n 。

目的是要在一个性质优良、便于计算的插值函数类Φ中,求一简单函数P (x),满足插值条件P (x i )=y i (i=0,1,…,n),而在其他点x≠x i 上,作为f (x)近似值。

求插值函数P (x)的方法称为插值法[1]。

2 实验目的和要求运用Matlab 编写m 文件,定义三种插值函数,要求一次性输入整张函数表,并利用计算机选择在插值计算中所需的节点。

分别通过分段线性插值、分段二次插值和全区间上拉格朗日插值计算f (0.15),f (0.31),f (0.47)的近似值。

3 算法原理与流程图(1)原理 1.线性插值当给定了n+1个点x 0<x 1<…<x n 上的函数值y 0,y 1,…,y n 后,若要计算x≠x i 处函数值f (x)的近似值,可先选取两个节点x i-1与x i 使x ∈[x i-1,x i ],然后在小区间[x i-1,x i ]上作线性插值,即得11111)()(------+--=≈i i i i i i i i x x x x y x x x x y x P x f这种分段低次插值叫分段线性插值。

2.分段二次插值当给定了n+1个点x 0<x 1<…<x n 上的函数值y 0,y 1,…,y n 后,若要计算x≠x i 处函数值f (x)的近似值,可先选取距离x 最近的三个节点x i-1,x i 与x i+1,然后进行二次插值,即得专业:电气工程及其自动化 姓名: 李X∑∏+-=+≠-=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎪⎪⎭⎫⎝⎛--=≈11112)()(i i k i k j i j j k j k x x x x y x P x f 这种分段低次插值叫分段二次插值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

结果分析:
结果较为精确,但是由于追赶法解线性方程组的过程中,由于追赶法本身的特点,会是 M0
的值产生误差,从而影响结果,当然这个误差在可接受的范围内。
源程序:
#include<stdio.h> int main(void) { FILE *fp; int i,j; double x[19]={ 0.52, 3.1, 8.0, 17.95, 28.65, 39.62, 50.65, 78, 104.6, 156.6, 208.6, 260.7, 312.5, 364.4, 416.3, 468, 494, 507, 520}; double y[19]={5.28794, 9.4, 13.84, 20.2, 24.9, 28.44, 31.1, 35, 36.5, 36.6, 34.6, 31.0, 26.34, 20.9, 14.8, 7.8, 3.7, 1.5, 0.2}; double a[12]={2, 4, 6, 12, 16, 30, 60, 110, 180, 280, 400, 515}; double b[12]; double ya=1.86548, yb= -0.046115; double h[19],u[19],l[19],g[19]; double bt[19],af[19],f[19],m[19]; for(i=1;i<=18;i++) h[i]=x[i]-x[i-1]; for(i=1;i<=17;i++){ u[i]=h[i]/(h[i]+h[i+1]); l[i]=1-u[i]; g[i]=6/(h[i]+h[i+1])*((y[i+1]-y[i])/h[i+1]-(y[i]-y[i-1])/h[i]); } g[0]=6/h[1]*((y[1]-y[0])/h[1]-ya); g[18]=6/h[18]*(yb-(y[18]-y[17])/h[18]); u[18]=1.0; l[0]=1.0; af[0]=2.0; for(i=1;i<=18;i++){ bt[i-1]=l[i-1]/af[i-1]; af[i]=2.0-u[i]*bt[i-1]; } f[0]=g[0]/2.0; for(i=1;i<=18;i++) f[i]=(g[i]-u[i]*f[i-1])/(2.0-u[i]*bt[i-1]);
m[18]=f[18]; for(i=17;i>=0;i--) m[i]=f[i]-bt[i]*m[i+1]; for(j=0;j<=11;j++){ for(i=1;i<=18;i++){ if(a[j]>=x[i-1]&&a[j]<=x[i]){ b[j]=m[i-1]*(x[i]-a[j])*(x[i]-a[j])*(x[i]-a[j])/(6.0*h[i]) +m[i]*(a[j]-x[i-1])*(a[j]-x[i-1])*(a[j]-x[i-1])/(6.0*h[i]) +(y[i-1]-m[i-1]*h[i]*h[i]/6.0)*(x[i]-a[j])/h[i] +(y[i]-m[i]*h[i]*h[i]/6.0)*(a[j]-x[i-1])/h[i]; break; } else continue; } } fp=fopen("9.txt","w"); for(j=0;j<=11;j++) fprintf(fp,"s(%.0f)=%f\n",a[j],b[j]); fclose(fp); }
( x [ xi 1 , xi ], i 1, 2, ……,n) 对于求M i,则需要用到追赶法,详见课本P44-P45
计算结果:
s(2)=7.825123 s(4)=10.481311 s(6)=12.363477 s(12)=16.575574 s(16)=19.091594 s(30)=25.386402 s(60)=32.804283 s(110)=36.647878 s(180)=35.917148 s(280)=29.368462 s(400)=16.799784 s(515)=0.542713
思路步骤:
利用三次样条插值法:
按照条件整理后用M i 表示si ( x)的公式 有si ( x) M i 1 ( xi x)3 ( x xi 1 )3 M x x x xi 1 Mi ( yi 1 i 1 hi2 ) i ( yi i hi2 ) 6hi 6hi 6 hi 6 hi
题目:9:已知直升飞机旋转及以外形曲线轮廓线上的某些型值点(见表)及端点处的一
阶导数值试计算该曲线上横坐标为 2,4,6,12,16,30,60,110,180,280,400,515 处点的纵坐标(要求该曲线具有二阶光滑度) 。 k xk yk k xk yk k xk yk 解: 0 0.52 5.28794 7 78 35 14 416.3 14.8 1 3.1 9.4 8 104.6 36.5 15 468 7.8 2 8.0 13.84 9 156.6 36.6 16 494 3.7 3 17.95 20.2 10 208.6 34.6 17 507 1.5 4 28.65 24.9 11 260.7 31.0 18 520 0.2 5 39.62 28.44 12 312.5 26.34 6 50.65 31.1 13 364.4 20.9
相关文档
最新文档