《数学实验报告..doc》由会员分享,可在线阅读,更多相关《数学实验报告..doc(10页珍藏版)》请在三一办公上搜索。
1、数学实验报告实验人:范晓玉(201004058)院 系: 管理与经济学部 专 业: 经济系 班 级: 管经1009班 实验目的1、结合实际问题展现MATLAB在生活与学习的广泛应用;2、学会利用MATLAB编程并求解实际问题;3、培养自学及用学过的只是独立解决问题能力。实验地点大连理工大学大黑楼C2副楼实验语言MATLAB C语言实验问题一:用梯形法和抛物线法求定积分用梯形法和抛物线法求(误差不超过)实验过程:(1)梯形法梯形法的基本思路n=4,x=0,0.25,0.5,0.75; x=0.25I=0.5*(1/4)*f1(0)+2*f1(0.25)+2*f1(0.5)+2*f1(0.75)+
2、f1(1);n=8;x=0,1/8,2/8,3/8,4/8,5/8,6/8,7/8,8/8; x=1/8I=0.5*(1/8)*f1(0)+2*f1(1/8)+2*f1(2/8)+2*f1(3/8)+2*f1(4/8)+2*f1(5/8)+2*f1(6/8)+2*f1(7/8)+f1(1);再通过C语言编程进行循环计算得到近似计算结果。源程序:#include #include #include #include #define N 100#define e 2.7 double fun(double x) return pow(e,-x*x); void main() double low,
3、up,s,h; int i; low= 0.0; up= 1.0; s=(fun(low)+fun(up)/2.0; h=(up-low)/N; for(i=1;iN;i+) s+=fun(low+i*h); printf(The result of integral is: %f.n,s*h); getch();运行结果:the result of integral is 0.748099(2)抛物线法实验语言:MATLAB抛物线法基本思路:n=4;X=0, 1/4, 1/2, 3/4, 1 ; x=1/4I=(1/12)*f(0)+4f(1/4)+2f(1/2)+4f(3/4)+f(1);
4、 0.8671137 n=8;X=0,1/8,1/4,3/8,1/2,5/8,3/4,7/8,1;x=1/8I=(1/24)*f(0)+4f(1/8)+2f(1/4)+4f(3/8)+2f(1/2)+4f(5/8)+2f(3/4)+4f(7/8)+f(1);源程序:format longring n=100;a=0;b=1;inum=0;e=2.7;syms x fxfx=e(-x*x);for i=1:nxj=a+(i-1)*(b-a)/n; %左点xi=a+i*(b-a)/n; %右点xk=(xi+xj)/2; %中点fxj=subs(fx,x,xj); fxi=subs(fx,x,xi)
5、; fxk=subs(fx,x,xk); inum=inum+(fxj+4*fxk+fxi)*(b-a)/(6*n);endinumintegrate=int(fx,0,1)integrate=double(integrate)fprintf(The relative error between inum and real-value is about: %dnn,.abs(inum-integrate)/integrate)运行结果:inum =0.74810502168631实验问题二:求微分方程数值解并作图在【1,4】上求数值解,并作图。实验过程:y=dsolve(Dy=x*y*sin(
6、x)-1/x,y(1)=1)function numericclear;clc; x,y=ode45(fun,1 4,1)plot(x,y,*,x,exp(-x.2)%*为数值解,线段为解析解function yhat=fun(x,y)yhat=x*y*sin(x)-1/x实验问题三:如图A Bd(m)C D 10M在CD上找一点P,使P的光照强度最小的点。(已知单光源对某点光照强度与光源强度成正比与光源到该点距离平方成反比。)实验过程:#include #include #include float fx(float x) return (exp(-x*x);float tixing(flo
7、at(*fun)(float x),float a,float b,int n) float s,h,y; int i; s=(fun(a)+fun(b)/2; h=(b-a)/n; for(i=1;in;i+) s=s+fun(a+i*h); y=s*h; return y;float juxing(float(*fun)(float x),float a,float b,int n) double h; double fx; double x; int i; double sum=0; h=fabs(a-b)/100; x=a; for(i=0;i=eps)p=0.0; for (k=0;
8、k=n-1;k+) x=a+(k+0.5)*h; p=p+fun(x); t2=(t1+h*p)/2.0; s2=(4.0*t2-t1)/3.0; ep=fabs(s2-s1); t1=t2; s1=s2; n=n+n; h=h/2.0; return(s2);void menu() system(cls); printf(1.梯形法n2.矩形法n3.辛普森法n4.退出n);int main() int c=0; menu(); while(1) scanf(%d,&c); switch(c) case 1:printf(梯形法:%fn,tixing(fx,0,1,1000); break; case 2:printf(矩形法:%fn,juxing(fx,0,1,1000); break; case 3:printf(辛普森法:%fn,fsimp(fx,0,1,1000); break; case 4:return 0; 实验结果:不知道啊!