首页 数值计算课程设计

数值计算课程设计

举报
开通vip

数值计算课程设计PAGE/NUMPAGES1、经典四阶龙格库塔法解一阶微分方程1.1、算法说明龙格-库塔(Runge-Kutta)方法是一种在工程上应用广泛的高精度单步算法。由于此算法精度高,采取措施对误差进行抑制,所以其实现原理也较复杂。该算法是构建在数学支持的基础之上的。4阶龙格-库塔方法(RK4)可模拟N=4的泰勒方法的精度。这种算法可以描述为,自初始点开始,利用下面的计算方法生成近似序列(1-1)1.2、经典四阶龙格库塔法解一阶微分方程算法流程图图1-1经典四阶龙格库塔法解一阶微分方程算法流程图1.3、经典四阶...

数值计算课程设计
PAGE/NUMPAGES1、经典四阶龙格库塔法解一阶微分方程1.1、算法说明龙格-库塔(Runge-Kutta)方法是一种在工程上应用广泛的高精度单步算法。由于此算法精度高,采取 措施 《全国民用建筑工程设计技术措施》规划•建筑•景观全国民用建筑工程设计技术措施》规划•建筑•景观软件质量保证措施下载工地伤害及预防措施下载关于贯彻落实的具体措施 对误差进行抑制,所以其实现原理也较复杂。该算法是构建在数学支持的基础之上的。4阶龙格-库塔方法(RK4)可模拟N=4的泰勒方法的精度。这种算法可以描述为,自初始点开始,利用下面的计算方法生成近似序列(1-1)1.2、经典四阶龙格库塔法解一阶微分方程算法流程图图1-1经典四阶龙格库塔法解一阶微分方程算法流程图1.3、经典四阶龙格库塔法解一阶微分方程程序调试图1-2经典四阶龙格库塔法解一阶微分方程程序调试1.4、经典四阶龙格库塔法解一阶微分方程代码#include#includeusingnamespacestd;//f为函数的入口地址,x0、y0为初值,xn为所求点,step为计算次数doubleRunge_Kuta(double(*f)(doublex,doubley),doublex0,doubley0,doublexn,intstep){doublek1,k2,k3,k4,result;doubleh=(xn-x0)/step;if(step<=0)return(y0);if(step==1){k1=f(x0,y0);k2=f(x0+h/2,y0+h*k1/2);k3=f(x0+h/2,y0+h*k2/2);k4=f(x0+h,y0+h*k3);result=y0+h*(k1+2*k2+2*k3+k4)/6;}else{doublex1,y1;x1=xn-h;y1=Runge_Kuta(f,x0,y0,xn-h,step-1);k1=f(x1,y1);k2=f(x1+h/2,y1+h*k1/2);k3=f(x1+h/2,y1+h*k2/2);k4=f(x1+h,y1+h*k3);result=y1+h*(k1+2*k2+2*k3+k4)/6;}return(result);}intmain(){doublef(doublex,doubley);doublex0,y0;doublea,b;//intstep;cout<<"请输入初值x0,y0:";cin>>x0>>y0;cout<<"请输入区间:";cin>>a>>b;//doublex0=0,y0=1;doublex,y,step;inti;cout<<"请输入步长:";cin>>step;//step=0.1;cout.precision(10);for(i=0;i<=(b-a)/step;i++){x=x0+i*step;cout<maxmax<=|*(head+(m+1)*k+i)|;maxi<=k;NYYK#includeusingnamespacestd;voidload();constN=20;floata[N][N];intm;intmain(){inti,j;intc,k,n,p,r;floatx[N],l[N][N],s,d;cout<<"下面请输入未知数的个数m=";cin>>m;cout<fabs(a[i][i]))?j:i;/*找列最大元素*/for(n=0;n=0;i--){d=0;for(j=i+1;j>a[i][j];}3、牛顿法解非线性方程组3.1、算法说明设已知。第1步:计算函数(3-1)第2步:计算雅可比矩阵(3-2)第3步:求线性方程组的解。第4步:计算下一点(3-3)重复上述过程。3.2、牛顿法解非线性方程组算法流程图图3-1算法流程图3.3、牛顿法解非线性方程组算法程序调试图3-2牛顿法解非线性方程组算法程序调试应用本程序解方程组,初始近似值x0,y0分别为2.00和0.25,经过3次迭代求出X(1)=1.900691和X(2)=0.311213。图3-2牛顿法解非线性方程组算法程序运行结果3.4、牛顿法解非线性方程组算法程序代码#include#include#defineN2//非线性方程组中方程个数、未知量个数#defineepsilon0.0001//差向量1范数的上限#definemax10//最大迭代次数usingnamespacestd;constintN2=2*N;intmain(){voidff(floatxx[N],floatyy[N]);voidffjacobian(floatxx[N],floatyy[N][N]);voidinv_jacobian(floatyy[N][N],floatinv[N][N]);voidnewdim(floatx0[N],floatinv[N][N],floaty0[N],floatx1[N]);floatx0[N]={2.0,0.25},y0[N],jacobian[N][N],invjacobian[N][N],x1[N],errornorm;inti,iter=0;cout<<"初始解向量:"<0;i--){for(k=i-1;k>=0;k--){L=-aug[k][i]/aug[i][i];for(j=N2-1;j>=0;j--)aug[k][j]=aug[k][j]+L*aug[i][j];}}for(i=0;i=0;i--)for(j=N2-1;j>=0;j--)aug[i][j]=aug[i][j]/aug[i][i];for(i=0;i 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf ,并以为最终解来逼近积分(4-1)逼近存在于一个特别的下三角矩阵中,第0列元素用基于个[a,b]子区间的连续梯形方法计算,然后利用龙贝格公式计算。当时,第行的元素为(4-2)当时,程序在第行结束。4.2、龙贝格求积分算法流程图图4-1算法流程图图4-1算法流程图4.3、龙贝格求积分算法程序调试我们以求解积分,精度为0.0001,最高迭代10次为例,对所编写的龙贝格求积分算法程序进行编译和链接,经执行后得如下所示的窗口图4-2龙贝格求积分算法程序调试说明:应用Romberg算法求在区间上的精度为0.0001的积分为0.494508。4.4、龙贝格求积分算法代码#include#includeusingnamespacestd;#definef(x)sin(x*x)//举例函数#defineepsilon0.0001//精度#defineMAXREPT10//迭代次数,到最后仍达不到精度要求,则输出T(m=10).doubleRomberg(doubleaa,doublebb){//aa,bb积分上下限intm,n;//m控制迭代次数,而n控制复化梯形积分的分点数.n=2^mdoubleh,x;doubles,q;doubleep;//精度要求double*y=newdouble[MAXREPT];//为节省空间,只需一维数组//每次循环依次存储Romberg计算表的每行元素,以供计算下一行,算完后更新doublep;//p总是指示待计算元素的前一个元素(同一行)//迭代初值h=bb-aa;y[0]=h*(f(aa)+f(bb))/2.0;m=1;n=1;ep=epsilon+1.0;//迭代计算while((ep>=epsilon)&&(m>a>>b;cout<<"积分结果:"<#includeusingnamespacestd;constintmax=50;floatx[max],y[max],h[max];floatc[max],a[max],fxym[max];floatf(intx1,intx2,intx3){floata=(y[x3]-y[x2])/(x[x3]-x[x2]);floatb=(y[x2]-y[x1])/(x[x2]-x[x1]);return(a-b)/(x[x3]-x[x1]);}//求差分voidcal_m(intn){//用追赶法求解出弯矩向量M……floatB[max];B[0]=c[0]/2;for(inti=1;i=0;i--)fxym[i]=fxym[i]-B[i]*fxym[i+1];}voidprintout(intn);intmain(){intn,i;charch;do{cout<<"输入x的最大下标:";cin>>n;for(i=0;i<=n;i++){cout<<"PleaseputinX"<>x[i];cout<<"PleaseputinY"<>y[i];}for(i=0;i>t;switch(t){case1:cout<<"输入Y0\'Y"<>f0>>f1;c[0]=1;a[n]=1;fxym[0]=6*((y[1]-y[0])/(x[1]-x[0])-f0)/h[0];fxym[n]=6*(f1-(y[n]-y[n-1])/(x[n]-x[n-1]))/h[n-1];break;case2:cout<<"输入Y0\"Y"<>f0>>f1;c[0]=a[n]=0;fxym[0]=2*f0;fxym[n]=2*f1;break;default:cout<<"不可用\n";//待定};for(i=1;i>ch;}while(ch=='y'||ch=='Y');return0;}voidprintout(intn){cout<0)cout<<-t<<"*(x-"<0)cout<<"+"<0)cout<<"-"<0)cout<<"+"<#include#defineMAX20usingnamespacestd;//求解任意可逆矩阵的逆,X为待求解矩阵,E为全零矩阵,非单位矩阵,也可以是单位矩阵voidinv(doubleX[MAX][MAX],intn,doubleE[MAX][MAX]){inti,j,k;doubletemp=0;for(i=0;i>n;cout<<"\n请输入"<>X[i];cout<<"\n请输入"<>Y[i];cout<<"\n请输入需要拟合的次数:";cin>>M;for(i=0;i=0;i--)cout<=0;i--){if(i==0)cout<<"+"<usingnamespacestd;#includedoublef(doublex){returnx*x-2*x-1}doubledf(doublex){return2*x-2;}intmain(){intk=0,max1=0;doublep0,delta,epsilon,p1,err,relerr,y;cout<<"牛顿拉弗森法解非线性方程f(x)=x^2-2x-1"<#include#include#defineMAX20#defineeps1e-10usingnamespacestd;doubleg(doublex){return1-x*x/4+x;}main(){doubleP[MAX]={0},err=0.0,relerr=0.0,tol=0.0,p=0.0,p0=0.0;intk=0,max1=0,i=0;cout<<"不动点法解非线性方程f(x)=1-x^2/2"<usingnamespacestd;doublefunc(doubleX,intk,doublex[],intn);intmain(){doubleSn=0;intn;cout<<"请输入点的个数n:";cin>>n;double*x=(double*)malloc(n*sizeof(double));double*y=(double*)malloc(n*sizeof(double));doubleX;inti;for(i=0;i>x[i]>>y[i];}cout<<"请输入x";cin>>X;for(i=0;i#includeusingnamespacestd;#definedelta0.0000001#definen3#definemax11000main(){inti,j,k;doubleerr,norm,A[n][n],B[n],P[n],X[n];cout<<"PleaseinputmatrixA("<>A[i][j];cout<<"PleaseinputmatrixB("<>B[i];cout<<"PleaseinputmatrixP("<>P[i];for(k=0;k 意见 文理分科指导河道管理范围浙江建筑工程概算定额教材专家评审意见党员教师互相批评意见 课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程。”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义。我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。通过这次“典型数值算法的C++语言程序设计”,使得我在多方面都有所提高。通过这次课程设计,综合运用本专业所学课程的理论和C++语言编程的实际训练从而培养和提高学生独立工作能力,巩固与扩充了数值分析所学的内容,通过对编程的锻炼,对Matlab和C++运行的环境有了更深入的了解。在此感谢我们的刘海峰老师.,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次数值分析课程设计的每个实验细节和每个数据,都离不开老师您的细心指导。同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。对于独立编程这个模块,自己还是缺乏训练,导致很多思路,算法无法用C++语言实现,因此自己还得“百尺竿头更进一步”,继续努力学好C++语言和MatlAB软件的使用。继续努力做好编程的基础,为自己的以后工作打下扎实基础。由于我的设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教,我十分乐意接受你们的批评与指正,我将万分感谢。参考文献[1].JohnH.Mathews.Peking:NumericalMethodsUsingMATLABFourthEdition.[M].电子工业出版社.[2].谭忠强.C++程序设计.[M].清华大学出版社.2004.[3].C++程序设计题解与上机指导.[M].清华大学出版社.2004.[4].JohnH.Mathews等著.数值方法.(MATLAB版)(第四版).[M].电子工业出版社.2010.友情提示:方案范本是经验性极强的领域,本范文无法思考和涵盖全面,供参考!最好找专业人士起草或审核后使用。
本文档为【数值计算课程设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥12.0 已有0 人下载
最新资料
资料动态
专题动态
机构认证用户
夕夕资料
拥有专业强大的教研实力和完善的师资团队,专注为用户提供合同简历、论文写作、PPT设计、计划书、策划案、各类模板等,同时素材和资料部分来自网络,仅供参考.
格式:doc
大小:722KB
软件:Word
页数:0
分类:文学
上传时间:2021-05-06
浏览量:5