收藏 分销(赏)

Vzjgqq数值分析实验报告(1).doc

上传人:天**** 文档编号:2668594 上传时间:2024-06-04 格式:DOC 页数:21 大小:221.04KB
下载 相关 举报
Vzjgqq数值分析实验报告(1).doc_第1页
第1页 / 共21页
Vzjgqq数值分析实验报告(1).doc_第2页
第2页 / 共21页
Vzjgqq数值分析实验报告(1).doc_第3页
第3页 / 共21页
Vzjgqq数值分析实验报告(1).doc_第4页
第4页 / 共21页
Vzjgqq数值分析实验报告(1).doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、Vzjgqq数值分析实验报告(1) 作者: 日期:2 个人收集整理 勿做商业用途生命是永恒不断的创造,因为在它内部蕴含着过剩的精力,它不断流溢,越出时间和空间的界限,它不停地追求,以形形色色的自我表现的形式表现出来。泰戈尔数值分析实 验 报 告 册姓名: 学号: 专业: 年级: 计算机科学学院计算机应用教研室 2008 年 春季 学期目 录实验一3实验二5实验三7实验四10实验五12实验六15实验七18 实验一一、课题名称非线性方程数值解法二、目的和意义学会常用的插值方法,求函数的近似表达式,以解决其它实际问题;明确插值多项式和分段插值多项式各自的优缺点;熟悉插值方法的程序编制;如果绘出插值函

2、数的曲线,观察其光滑性。三、计算公式Lagrange插值公式: 牛顿插值公式:四、结构程序设计 程序设计:#includemath.hfloat f(float x)return(x*xx1)/3); /*牛顿迭代函数*/main()float x1,x2,eps,d;int k=0;clrscr();printf(”n input x1=); /输入迭代初值*/scanf(”%f”,x1);printf(”n input eps=); /输入求解精度eps*/scanf(”%f”,&eps);do k+; x1=x2; x2=f(x1); printf(”n d %fn”,k,x2); wh

3、ile(fabs(x2x1)=eps); printf(the root of f(x)=0 is x=%f,k=%dn,x2,k); /输出x和迭代次数k/ getch(); 五、结果讨论和分析 计算结果分析:将六种迭代格式分别代入程序试验:(1) 第一种格式:无论何值都无法求出,即发散(2) 第二种格式:初值为任意的x(x2=1;i)di=di-cidi+1; printf(n*n); for(i=1;i=n;i+) printf(d2d=%lfn”,i,di);五、结果讨论和分析 此方法通过有限步算术运算求出 精确解,但实际计算由于舍入误差的影响,只能求出近似解。实验三一、课题名称解线性

4、方程组的迭代法二、目的和意义 了解各迭代法的基本原理和特点,判断雅克比迭代、高斯塞德尔迭代对任意初始向量的收敛性,完成雅克比迭代、高斯塞德尔迭代算法的程序实现三、计算公式l 雅可比 xi(k+1)=1/aii(bi-aijxj(k)l 高斯塞德尔xi(k+1)=1/aii(bi-aijxj(k+1)-aijxj(k)) l 超松弛迭代 xi(k+1)=(1-w)xi(k)+w(biaijxj(k+1)-aijxj(k)) /aii四、结构程序设计高斯-塞德尔法:#include”math.h#define M 8define N 9main() double aMN=4,2,4,0,2,4,0

5、,0,0, 2,2,1,-2,1,3,2,0,6, 4,1,14,1,-8,-3,5,6,20, 0,2,1,6,-1,4,3,3,23, 2,1,-8,1,22,4,-10,-3,9, 4,3,3,4,4,11,1,4,-22, 0,2,5,-3,-10,1,14,2,-15, 0,0,6,3,3,4,2,19,45; double xM=0,0,0,0,0,0,0,0; double r,t,q,eps=0.0001; int k,i,j,T=100; for(i=0;iM;i+) for(j=0;jr)r=fabs(xi-t); if(reps)break; printf(nk=d,”,

6、k); for(i=0;iM;i+) printf(”nx%d=lf,i,xi); if(k=T)printf(”nNo”); else for(i=0;iM;i+) printf(x(d)=%15。7fn,i+1,xi); 五、结果讨论和分析与直接法相比,迭代法适用于稀疏矩阵的线性方程组实验四一、课题名称函数插值方法二、目的和意义 了解多项式差值公式的存在唯一性条件及其余项表达式的推导,了解拉格朗日插值多项式的构造、计算及其基函数的特点,牛顿插值多项式的构造与应用,差商、差分的计算及基本性质.三、计算公式=,i=0,1,2nP(X)=p(x)+(p(x)的初值是0)。四、结构程序设计#inc

7、lude”stdio.h#includemath。hincludestring.h#includeconio.h”include”stdlib。h#define n 5double x1=0。4,0。55,0.65,0.80,0.95,1。05;double y1=0。41075,0.57815,0.69675,0。90,1.00,1。25382;main() double Lag(double x1,double y1,float t); int m,k;float x,y;float X;double z; printf(nthe number of the interpolation p

8、oints is m:); scanf(”d,m); for(k=1;k=m;k+) printf(”ninputX%d=,k); scanf(f”,&X); z=Lag(x1,y1,X); printf(”P(f)=fn”,X,z); getch(); return(0);double Lag(double x,double y,float X) int i,j; double L,P; P=0.0; for(i=0;i=n;i+) L=1.0; for(j=0;j=n;j+) if(j!=i) L=L*(Xxj)/(xixj); P=P+yi*L; return (P);五、结果讨论和分析

9、实验五一、课题名称曲线拟合的最小二乘法二、的和意义掌握曲线拟合的最小二乘法;了解最小二乘法亦可以用于解超定线性方程组;探索拟合函数的选择与拟合精度间的关系.三、计算公式e 22=2i=(xi)f(xi)2四、结构程序设计include ”stdio.h”#include ”math.h”#define num 10float neiji(float bnum,float cnum) int p;float nj=0;for(p=1;pnum;p+)nj+=cp*bp;return nj;float snum,xnum,fainumnum,afanum;float beidanum,anum,x

10、fainum,ydnum,max,pcpfh;void main() int i,j,k,n,index,flag;char conti;conti= ;printf(请输入已知点的个数n=n);scanf(”%d”,&n);printf(”请输入x和y:);for(i=1;i=n;i+) printf(xd=,i);scanf(”%f”,xi);printf(”y%d=,i);scanf(”%f,yi);while(conti= ) printf(请输入拟和次数=”);scanf(d,index);pcpfh=0;afa1=0;a0=0;for(i=1;i=n;i+) afa1+=xi;a0

11、+=ydi;fai0i=1;afa1=afa1/n;a0=a0/n;for(i=1;i=n;i+)fai1i=xi-afa1;a1=neiji(fai1,yd)/neiji(fai1,fai1);for(k=1;kindex;k+) for(i=1;i=n;i+)xfaii=xifaiki;afak+1=neiji(faik,xfai)/neiji(faik,faik);beidak=neiji(faik,faik)/neiji(faik1,faik1);for(j=1;j=n;j+)faik+1j=(xjafak+1)*faikjbeidakfaik1j;ak+1=neiji(faik+1,

12、yd)/neiji(faik+1,faik+1);printf(”d次拟和结果为n,index);for(i=0;i=index;i+)printf(”ad=%fn”,i,ai);for(i=1;i=index;i+)printf(afa%d=fn”,i,afai);for(i=1;iindex;i+)printf(”beida%d=%fn,i,beidai);for(i=1;imax)max=ydi;flag=i;printf(当x=f时,偏差最大=%f,偏差平方和为%fn,xflag,max,pcpfh);printf(”继续拟和请按space,按其他键退出);conti=getchar(

13、);conti=getchar();五、结果讨论和分析请输入已知点的个数n=10请输入x和y:x1=0y1=0请输入拟合次数=55次拟合结果为当x=0。000000时,偏差最大=6706185。000000,偏差平方和为449729146126336。000000.实验六一、课题名称数值积分与数值微分二、目的和意义深刻认识数值积分法的意义;明确数值积分精度与步长的关系;根据定积分的计算方法,可以考虑二重积分的计算问题。三、计算公式=1/6*f(a)+4f(xk+1/2)+2f(xk)+f(b) Rn=64/63*c2n1/63cn四、结构程序设计Romberg算法:includestdio。h

14、#includemath。h”#include”conio.h”float f(float x)return(exp(x)/(4+x*x));main() float a=0,b=1; float h=ba,T1,T2,s,x; int i;T1=h/2(f(a)+f(b)); for(i=0;i3;i+) printf(h=%f,T=fn,h,T1); s=0; x=a+h/2; while(xb) s+=f(x); x+=h; T2=T1/2+h/2*s; h/=2;T1=T2; printf(h=f,T=%fn,h,T1); return;Simpson算法:#includestdio.

15、hinclude”math。h”#includeconio。hdefine Max_M 20float f(float x)return(sin(x)/x);float Simpson(float a,float b,int n) int k;float x,s1,s2,h=(b-a)/n; x=a+h/2; s1=f(x);s2=0; for(k=1;kn;k+) s1=s1+f(a+k*h+h/a); s2=s2+f(a+k*h); s2=h*(f(a)+4s1+2*s2+f(b))/6; return(s2);main() int i,n;float a1,b1,s=0; printf(

16、n Input the begin:); scanf(f”,&a1); printf(”n Input the end:”); scanf(f,&b1); do printf(”n input n divde valuedivide(f,%f):,a1,b1); scanf(%d”,&b1); while(n=1nMax_M); s=Simpson(a1,b1,n); printf(”solve is:%f,s); getch(); return(s);五、结果讨论和分析用Romberg法得出结果为:用Simpson法得出结果为:可见复化公式要先估计出步长,步长的大小将影响计算结果和精度 实验

17、七一、课题名称常微分方程的数值解法二、目的和意义熟悉各种初值的问题的算法,编出算法程序;明确各种算法的精度寓所选步长有密切关系;通过计算更加了解各种算法的优越性;三、计算公式k1=f(xi,yi)k2=f(xi+1/2+1/2,yi+h/2*k1)k3=f(xi+1/2,yi+h/2k2)k4=f(xi+1,yi+h*k3)Yi+1=yi+h*(k1,2k2+2k3+k4)/6四、 结构程序设计 Rungkutta法:#includemath.hincludestring。hincludestdio。h”include”conio。hfloat f(float x,float y) float

18、 y1; y1=y2x/y; return y1;float Runge_Kutta(float x,float y,float h)float k1,k2,k3,k4;k1=f(x,y);k2=f(x+h/2,y+h*k1/2);k3=f(x+h/2,y+hk2/2);k4=f(x+h,y+h*k3);return(y+h*(k1+2k2+2k3+k4)/6);main() int i=0; float x,y,h,b; clrscr(); printf(n Input begin x0:); scanf(%f”,x); printf(n Input begin y0:); scanf(”%f,&y); printf(”n Input step h:”); scanf(%f”,&h); printf(n Input end b:); scanf(f,&b); printf(n x0=%10f y0=10fn,x,y); do y=Runge_Kutta(x,y,h); x=x+h;i+; printf(x%d=10f yd=%10fn,i,x,i,y); while(xb); getch(); return(y); 五、 结果讨论和分析 可见步长的选取会影响节点处数值解的误差

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服