c语言数值分析实验报告,数值计算实验报告

《数值计算实验报告》由会员分享,可在线阅读,更多相关《数值计算实验报告(23页珍藏版)》请在人人文库网上搜索。

1、2012级6班#(学号)计算机数值方法实验报告成绩册姓名:安元龙学号:成绩:实验编号实验名称实验学时实验成绩实验一Newton插值2实验二Romberg算法2实验三求拟合算法2实验四弦截断法2实验五Courant求解方程组2实验六超松弛迭代求解方程组2实验七幂法和反幂法2实验八R-K方法求解初值问题2数值计算方法与算法 实验报告学期: 2014 至___2015 第 1 学期 2014年 10月26日课程名称:__数值计算方法与算法 __ 专业:信息与计算科学 12级5班实验编号: 1实验项目Neton插值多项式 指导教师__孙峪怀姓名: 安元龙 学号: 实验成绩: 1、 实验目的及要求实验目。

2、的:掌握Newton插值多项式的算法,理解Newton插值多项式构造过程中基函数的继承特点,掌握差商表的计算特点。实验要求:1. 给出Newton插值算法2. 用C语言实现算法二、实验内容三、实验步骤(该部分不够填写.请填写附页)1.算法分析:下面用伪码描述Newton插值多项式的算法:Step1 输入插值节点数n,插值点序列x(i),f(i),i=1,2,n,要计算的插 值点x.Step2 形成差商表for i=0 to nfor j=n to i f(j)=(f(j)-f(j-1)/(x(j)-x(j-1-i);Step3 置初始值temp=1,newton=f(0)Step4 for i。

3、=1 to ntemp=(x-x(i-1)*temp/*由temp(k)=(x-x(k-1)*temp(k-1)形成 (x-x(0).(x-x(i-1)*/Newton=newton+temp*f(i);Step5 输出f(x)的近似数值newton(x)=newton.#include#define MAX_N 20typedef struct tagPOINTdouble x;double y;POINT;int main()int n;int i,j;POINT pointsMAX_N+1;double diffMAX_N+1;double x,tmp,newton=0;printf(n。

4、Input n value:);scanf(%d,&n);if(nMAX_N)printf(The input n is larger then MAX_N,please redefine the MAX_N.n);return 1;if(ni;j-)diffj=(diffj-diffj-1)/(pointsj.x-pointsj-1-i.x);tmp=1;newton=diff0;for(i=0;i#include#define f(x) (sin(x) #define N_H 20#define MAXREPT 10 #define a 1.0 #define b 2.0 #define 。

5、epsilon 0.00001 double computeT(double aa, double bb, long int n) /*复化梯形公式*/int i;double sum, h=(bb-aa)/n;sum=0;for(i=1;iTm1-epsilon)printf(The Integrate is %lfn,Tm1); return;printf(Return no solved.n);3. 运行结果数值计算方法与算法 实验报告学期: 2014 至___2015 第 1 学期 2014年 10月26日课程名称:__数值计算方法与算法 __ 专业:信息与计算科学 12级5班实验编号。

6、: 3实验项目:求拟合算法 指导教师__孙峪怀姓名: 安元龙 学号: 实验成绩: 1、 实验目的及要求实验目的:学习了曲线拟合的最小二乘法,会求拟合曲线,线性拟合和二次拟合函数,还有形如aexp(bx)的曲线拟合,实验主要是求形如aexp(bx)的曲线拟合,并理解体会其意义。实验要求:1. 形如aexp(bx)曲线拟合的算法;2. 用C语言实现算法二、实验内容用形如p(x)=aexp(bx)的函数拟合给定()三、实验步骤(该部分不够填写.请填写附页)1.算法分析:拟合函数aexp(bx)的算法描述:Step1 输入m值,及(xi,yi),i=1,2,.,m;Step2 解方程组m a = b 。

7、Step3 输出p(x)=aexp(bx)即所求拟合函数1.算法分析:2. 用C语言实现算法的程序代码#include#include#define MAX_N 25typedef struct tagPOINTdouble x;double y;POINT;int main()int m;int i;POINT pointsMAX_N;static double u11,u12,u21,u22,c1,c2;double A,B,tmp;printf(nInpute m value:);scanf(%d,&m);if(m=MAX_N)printf(The inpute m is larger 。

8、than MAX_N,please redefine the MAN_N.n);return 1;if(m#include#define f(x) (x*x*x-7.7*x*x+19.2*x-15.3) #define x0 0.0 #define x1 1.0#define MAXREPT 1000 #define epsilon 0.00001 void main()int i;double x_k=x0,x_k1=x1,x_k2=x1;for(i=0;i-epsilon)printf(!Root:%fn,x_k2); return;x_k=x_k1;x_k1=x_k2; printf(A。

9、fter %d repeate,no solved.n,MAXREPT);5. 运行结果数值计算方法与算法 实验报告学期: 2014 至___2015_ 第 1 学期 2014年 10月26日课程名称:__数值计算方法与算法 __ 专业:信息与计算科学 12级5班实验编号: 5实验项目:Courant求解方程组 指导教师__孙峪怀姓名: 安元龙 学号: 实验成绩: 一实验目的: 用C语言实现直接分解法的算法,掌握直接分解法与高斯消去法的不同之处实验要求:掌握怎样将已给的算法在计算机上实现,分析算法的优缺点,找到实现直接分解算法最佳的结构;体会从键盘读入二维数组的源代码,了解计算机内部存储二维数。

10、组得规则;体会Courant分解先分解U的行,再分解L列 的算法实现规则;将下面的方程组用直接分解法实现,并比较其与高斯消元法的不同。二、实验内容1、用Corant直接分解法求解下列方程组:a a . a x ba a . a x = b. . . . . . . . . . . . .a a . a x b三、实验步骤(该部分不够填写.请填写附页)1.courant的算法描述:Step1 输入矩阵A及列向量b;Step2 将矩阵A分解为 A=LU . . . , U= . . . L= . . . . . . . . . . . . . . . . . 1 Step3 对k=1,2,.,n,。

11、=- i=k,k+2,.,n;= - j=k+1,k+2,.,n记=y,解=:= , i=1,2,.,n Step4 再由=得,j=n,n-1,.,2,12. 用C语言实现算法的程序代码#include#include#define MAX_N 20 int main()int n;int i,j,k;static double aMAX_NMAX_N,bMAX_N,xMAX_N,yMAX_N;static double lMAX_NMAX_N,uMAX_NMAX_N;printf(nInput n value(dim of Ax=b):); scanf(%d,&n);if(nMAX_N)pr。

12、intf(The input n is larger than MAX_N,please redefine the MAX_N.n);return 1;if(n=0;i-) xi=yi;for(j=i+1;j#include#define MAX_N 20 #define MAXREPT 100#define epsilon 0.00001 int main()int n;int i,j,k;double err,w;static double aMAX_NMAX_N,bMAX_NMAX_N,cMAX_N,gMAX_N;static double xMAX_N,nxMAX_N;printf(n。

13、Input n value(dim of AX=C):); scanf(%d,&n);if(nMAX_N)printf(The input n is larger than MAX_N,please redefine the MAX_N.n);return 1;if(n=2)printf(w must between 1 and 2.n);return 1;for(i=0;i#include#define MAX_N 20#define MAXREPT 100#define epsilon 0.0001int mian()int n;int i,j,k;double err;double xm。

14、ax,oxmax;static double aMAX_NMAX_N;static double lMAX_NMAX_N,uMAX_NMAX_N;static double xMAX_N,nxMAX_NMAX_N;printf(nInput n value(dim of AX=C):;scanf(%d,&n);if(nMAX_N)printf(The input n is larger than MAX_N,please redefine the MAX_N.n);return 1;if(1nxmax) xmax=fabs(nxj);for(j=0;j=0;j-)xj=nxj;for(k=j+。

15、1;kxmax) xmax=fabs(xj);for(j=0;j#include#define f(x,y) (x/y) int main()int m;int i;double a,b,y0;double xn,yn,yn1;double k1,k2,k3,k4;double h;printf(nInput the begin and end of x:);scanf(%lf%lf,&a,&b);printf(Input the y value at %f:,a);scanf(%lf,&y0);printf(Input m valuedivide(%f,%f):,a,b);scanf(%d,&m);if(m=0)printf(Please input a number larger than 1.n);return 1;h=(b-a)/m;xn=a;yn=y0;for(i=1;i=m;i+)k1=f(xn,yn);k2=f(xn+h/2),(yn+h*k1/2);k3=f(xn+h/2),(yn+h*k2/2);k4=f(xn+h),(yn+h*k3);yn1=yn+h/6*(k1+2*k2+2*k3+k4);xn+=h;printf(x%d=%f,y%d=%fn,i,xn,i,yn1);yn=yn1;return 0;3. 运行结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课题一: 线性方程组的迭代法 一、实验内容 1、设线性方程组 = x = ( 1, -1, 0, 1, 2, 0, 3, 1, -1, 2 ) 2、设对称正定阵系数阵线方程组 = x = ( 1, -1, 0, 2, 1, -1, 0, 2 ) 3、三对角形线性方程组 = x = ( 2, 1, -3, 0, 1, -2, 3, 0, 1, -1 ) 试分别选用Jacobi 迭代法,Gauss-Seidol迭代法和SOR方法计算其解。 二、实验要求 1、体会迭代法求解线性方程组,并能与消去法做以比较; 2、分别对不同精度要求,如 由迭代次数体会该迭代法的收敛快慢; 3、对方程组2,3使用SOR方法时,选取松弛因子 =0.8,0.9,1,1.1,1.2等,试看对算法收敛性的影响,并能找出你所选用的松弛因子的最佳者; 4、给出各种算法的设计程序和计算结果。 三、目的和意义 1、通过上机计算体会迭代法求解线性方程组的特点,并能和消去法比较; 2、运用所学的迭代法算法,解决各类线性方程组,编出算法程序; 3、体会上机计算时,终止步骤 (予给的迭代次数),对迭代法敛散性的意义; 4、体会初始解 x ,松弛因子的选取,对计算结果的影响。 课题二:数值积分 一、实验内容 选用复合梯形公式,复合Simpson公式,Romberg算法,计算 (1) I = (2) I = (3) I = (4) I = 二、实验要求 1、 编制数值积分算法的程序; 2、 分别用两种算法计算同一个积分,并比较其结果; 3、 分别取不同步长 ,试比较计算结果(如n = 10, 20等); 4、 给定精度要求 ,试用变步长算法,确定最佳步长。 三、目的和意义 1、 深刻认识数值积分法的意义; 2、 明确数值积分精度与步长的关系; 3、 根据定积分的计算方法,可以考虑二重积分的计算问题。 四、流程图设计

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值