为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

计算机课程设计

2017-10-10 19页 doc 148KB 21阅读

用户头像

is_447713

暂无简介

举报
计算机课程设计计算机课程设计 冰酷软件开发有限公司 作者:贾继渊 2012年7月3号 实验一 53编写秦九韶算法程序,并用该程序计算多项式在f(x),x,3x,2x,6 的值。 x,1.1, 1.2, 1.3 1( 设计思路:利用秦九昭算法计算多项式函数 2( 算法描述:秦九昭算法的基本思路是v[0]=a[0]*x+a[1] v[i]=v[i-1]*x+a[i+1];利用秦九昭算法计算多项式函数 3. 程序清单:利用c语言的知识编写该算法程序 实验过程: #include void main() { int n,i; ...
计算机课程设计
计算机课程设计 冰酷软件开发有限公司 作者:贾继渊 2012年7月3号 实验一 53编写秦九韶算法程序,并用该程序计算多项式在f(x),x,3x,2x,6 的值。 x,1.1, 1.2, 1.3 1( 设计思路:利用秦九昭算法计算多项式数 2( 算法描述:秦九昭算法的基本思路是v[0]=a[0]*x+a[1] v[i]=v[i-1]*x+a[i+1];利用秦九昭算法计算多项式函数 3. 程序清单:利用c语言的知识编写该算法程序 实验过程: #include void main() { int n,i; float a[1000]; float v[1000],x; printf("please input the order of the funtion:\n ");/*输入方程的阶数*/ scanf("%d",&n); printf("please input the confient of the function: \n");/*按阶次从高到低输入函数的 系数*/ for(i=0;i<=n;i++) { scanf("%f",&a[i]); } printf("input x: \n"); scanf("%f",&x); v[0]=a[0]*x+a[1]; for(i=1;i总结
:通过计算机编程软件进一步了解和掌握了秦九昭算法的实质问题,为编程的学习打下基础。 实验二: 实验名称:用选列主元高斯消去法解线性方程组 实验目的:掌握高斯消元法及选列主元元素的技术,利用c++程序编辑语言编写算法程序 实验题目:用选列主元高斯消去法解线性方程组 ,3x,x ,1,12,,x,2x,x ,0,123 , ,x,2x,x,0234, , ,x,2x,034, 实验过程: 设计思路:列主元消去。 (1)算法描述: 第一步消元——在增广矩阵(A,b)第一列中找到绝对值最大的元素,将其 所在行与第一行交换,再对(A,b)做初等行变换使原方程组的第一列元素除了第一行的全变为0; 第二步消元——在增广矩阵(A,b)中第二列中(从第二行开始)找到绝对值最大的元素,将其所在行与第二行交换,再对(A,b)做初等行变换使原方程组的第二列元素除了第一和第二行的全变为0; 第三步消元——在增广矩阵(A,b)中第三列中(从第三行开始)找到绝对值最大的元素,将其所在行与第三行交换,再对(A,b)做初等行变换使原方程组的第三列第四行元素为0; 第四,按x4-x3-x2-x1的顺序回代求解出方程组的解,x[n]=b[n]/a[n][n],x[i]=(b[i]-Σa[i][j]x[j])/a[i][i],i=n-1,…,2,1 2 程序清单: #include #include #define N 4 static double A[N][N] = {-3,-1,0,0,-1,2,-1,0,0,-1,2,-1,0,0,-1,2}; static double B[N]={1,0,0,0}; static double X[N]; int i,j,k; void main() { for(k = 0; k < N-1 ;k++) { int index = k; for(i = k; i< N ;i++) { if(fabs(A[index][k]) < fabs(A[i][k])) { index = i; } } double temp; for( i = k ; i < N ;i++ ) { temp = A[index][i]; A[index][i] = A[k][i]; A[k][i] = temp; } temp = B[index]; B[index] = B[k]; B[k] = temp; for(i = k+1; i=0 ; i--) { double Temp = 0; for (int j = i+1; j #include # define Precision 0.000005//积分精度要求 # define e 2.71828183 #define MAXRepeat 10 //最大允许重复 double function(double x)//被积函数 { return x==0?1:sin(x)/x; }double Romberg(double a,double b,double f(double x)) { int m,n,k; double y[MAXRepeat],h,ep,p,xk,s,q; h=b-a; y[0]=h*(f(a)+f(b))/2.0;//计算T`1`(h)=1/2(b-a)(f(a)+f(b)); m=1; n=1; ep=Precision+1; while((ep>=Precision)&&(m>a; cout<<"请输入积分上限:"<>b; Result=Romberg( a, b, function); cout<<"龙贝格积分结果:"< #include using namespace std; double func (const double x); double findRoot( double first, double last,const double e); main () { double a,b ,c,root; cout<<"Input a "; cin>>a; cout<<"Input b"; cin>>b; cout<<"Input c"; cin>>c; root=findRoot(a,b,c); cout<<"The root is"<e) { y0=func (mid);y1=func(first); y2=func(last); if (y0==0) return mid; else if(y0*y1<0) last=mid;else first=mid; mid=(first+last)/2; } return mid; } y=0.5026 牛顿迭代法: 算法思路:设r是f(x)=0的根,选取x0作为r初始近似值,过点(x0,f(x0))做曲线y=f(x)的切线L,L的方程为y=f(x0) f'(x0)(x-x0),求出L与x轴交点的横坐标 x1=x0-f(x0)/f'(x0),称x1为r的一次近似值,如果|f(x1)-0|小于指定的精度,那么继续过点(x1,f(x1))做曲线y=f(x)的切线,并求该切线与x轴的横坐标 x2=x1-f(x1)/f'(x1)称x2为r的二次近似值,重复以上过程。得r的近似值序列{Xn},其中Xn 1=Xn-f(Xn)/f'(Xn),称为r的n 1次近似值。 matlab程序 function y=newton_1(a,n,x0,nn,eps1) x(1)=x0;b=1;i=1; function y=n_f(a,n,x) y=,.0; for i=(n+1)(n+1) y=y+a(i)*x?(n+1-i); end function y=n_df(a,n,x) y=0.0; for i=1:n y=y+a(i)*(n+,-i)*x?(n-i); end while(abs(b)>eps1*x(i)) i=i+1; x(i)=x(i-1)-n_f(a,n,x(i-1))/n_df(a,n,x(i-1)); b=x(i)-x(i-1); if(i>nn)error(ˊnn is fullˊ); return; end end y=x(i); i 7(运行结果 >>a=[1,2,10,-20] ; >>n=3; >>x0=1; >>nn=1000; >>eps1=1e-8; >>y=newton_1(a,n,x0,nn,eps1) y= 0.4421 i= 6 实验总结:了解和掌握二分法和牛顿迭代的算法思路,学会利用简单的编程语言 编写牛顿和二分法的算法思路,并作简单的计算。
/
本文档为【计算机课程设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索