暑期实习总结余帆.docx
- 文档编号:3047341
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:19
- 大小:140.21KB
暑期实习总结余帆.docx
《暑期实习总结余帆.docx》由会员分享,可在线阅读,更多相关《暑期实习总结余帆.docx(19页珍藏版)》请在冰豆网上搜索。
暑期实习总结余帆
暑期《软件编程综合实习》总结
余帆数学10-1班10072121
从7月10号到7月20号这为期十天的暑期实习中,让我学到了很多有用的知识,进一步锻炼了我对matlab编程的运用以及巩固了spss和lingo软件的使用。
接下来,我就总结下这十天的收获。
提纲:
在这十天中,我主要学到了matlab中用inline在线定义函数;求解线性方程组的LU分解法;matlab中的插值函数:
interp1,interp2等函数的调用;矩阵特征值与特征向量的简单调用函数:
norm,cond,rcond,condeig等;matlab中有关求微分的函数调用,如:
diff,gradient等;求积分的函数调用,如:
int,quad,bdlquad等,此外还有一些数值积分方法,如梯形法,辛普森法高斯法等;求解非线性方程中fzero和fsolve函数以及黄金分割法等其他程序方法;求解常微分方程组中dsolve函数,solver求解器;求解偏微分方程组中ODE求解方法;概率统计中参数估计和假设检验的matlab实现。
此外还学会了利用spss进行方差分析,利用Lingo软件求解线性规划、整数规划等问题。
自己讲了matlab中的积分计算,参数估计和假设检验,spss中的方差分析等。
第一部分:
总结概述
1.在线定义函数inline的调用,如g=@(x)x.^5。
2.求解线性方程组的LU分解法函数的调用:
[L,U]=lu(A),方程组Ax=b的解x可写为x=U\(L\B\b)。
b=[401-2];
[L,U]=lu(A);
x=U\(L\b)
输出结果为:
x=
-0.3721
-0.8291
-1,5336
1.4547
由计算结果可知,方程组的解为[x1,x2,x3,x4]=[-0.3721,-0.8291,-1,5336,1.4547]。
3.Matlab中的插值函数:
interp1
x=0:
2*pi;
y=sin(x);
xx=0:
0.5:
2*pi;
yy=interp1(x,y,xx);
plot(x,y,’s’,xx,yy)
输出图形:
4.Matlab中cond函数的调用:
c=cond(X),norm函数的调用:
n=norm(A,1)等。
5.Matlab中求微分的函数diff的调用,如df=diff(‘sin(x)’);df=cos(x)df=diff(‘sin(x*y)’,’y’)df=cos(x*y)*x等。
6.Matlab中求积分的函数的调用,求不定积分,如:
f=int('sin(x)*x'),f=int('sin(x)*y','x')等。
求定积分,如q=int('x^3+sin(x)',1,3)等。
求二重积分,如symsyq=int('x^3+sin(y)',y,1,3),q=dblquad('sin(x)*sqrt(y)',-1,-1,0,2)等。
此外还有几种数值积分方法的程序实现,如:
复合梯形公式:
function[I,step]=combinetraprl(f,a,b,eps)
if(nargin==3)
eps=1.0e-4;
end
n=1;
h=(b-a)/2;
I1=0;
I2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))/h;
whileabs(I2-I1)>eps
n=n+1;
h=(b-a)/n;
I1=I2;
I2=0;
fori=0:
n-1
x=a+h*i;
x1=x+h;
I2=I2+(h/2)*(subs(sym(f),findsym(sym(f)),x)+subs(sym(f),findsym(sym(f)),x1));
end
end
I=I2;
step=n;
调用此函数,[q,s]=combinetraprl('1/(x^2-1)',2,4,1.0e-6),输出q=0.2939,s=15,可知
辛普森公式:
function[I,step]=IntSimpson(f,a,b,type,eps)
%辛普森系列公式求函数f在区间[a,b]上的定积分
%函数名:
f
%积分下限:
a
%积分上限:
b
%辛普森公式的类型:
type
%积分精度:
eps
%积分值:
I
%积分划分的子区间个数:
step
if(type==3&&nargin==4)
disp('缺少参数!
');
end
I=0;
switchtype
case1,%辛普森公式
I=((b-a)/6)*(subs(sym(f),findsym(sym(f)),a)+...
4*subs(sym(f),findsym(sym(f)),(a+b)/2)+...
subs(sym(f),findsym(sym(f)),b));
step=1;
case2,%辛普森3/8公式
I=((b-a)/8)*(subs(sym(f),findsym(sym(f)),a)+...
3*subs(sym(f),findsym(sym(f)),(2*a+b)/3)+...
3*subs(sym(f),findsym(sym(f)),(a+2*b)/3)+...
subs(sym(f),findsym(sym(f)),b));
step=1;
case3,%复合辛普森公式
n=2;
h=(b-a)/2;
I1=0;
I2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))/h;
whileabs(I2-I1)>eps
n=n+1;
h=(b-a)/n;
I1=I2;
I2=0;
fori=0:
n-1
x=a+h*i;
x1=x+h;
I2=I2+(h/6)*(subs(sym(f),findsym(sym(f)),x)+...
4*subs(sym(f),findsym(sym(f)),(x+x1)/2)+...
subs(sym(f),findsym(sym(f)),x1));
end
end
I=I2;
step=n;
end
调用此函数,[q,s]=IntSimpson('sin(x)',0,10,1),输出q=-7.2995。
此外还有很多数值积分程序实现,如牛顿-科茨法,高斯法等,由于篇幅原因,就不一一列出了。
7.非线性方程求解
fzero函数是用来求解单变量的非线性方程,fsolve是用来求解多变量的非线性方程和非线性方程组的。
例子:
x=fzero(‘x^2+x-1’,0.5),输出x=0.6180
f=@(x)[x
(1)^2-x
(2)-2;x
(2)^2-2*x
(1)-4]
f=
@(x)[x
(1)^2-x
(2)-2;x
(2)^2-2*x
(1)-4]
fsolve(f,x0)
ans=
2.21432.9032
由计算结果可知,方程组的一个根为(x,y)=(2,2143,2.9032)。
非线性方程的二分法:
function[x,k]=bisection(a,b,f,ep)
%二分法解非线性方程
%输入区间[a,b],函数f和误差ep,Nmax为最大二分次数
%x为输出近似根,k为二分次数
k=0;
x=[];
whileb-a>ep
k=k+1;
x1=(a+b)/2;
x=[xx1];
fx1=f(x1);
fa=f(a);
ifabs(fx1)<=ep
return
elseiffx1*fa<0
b=x1;
else
a=x1;
end
end
8.常微分方程的求解
符号解函数dsolve的调用:
(1)计算方程
的通解
dsolve('Dy+3*x*y=x*exp(-x^2)','x')
ans=
C2*exp(-(3*x^2)/2)+exp(x^2/2)*exp(-(3*x^2)/2)
可知通解为y=C2*exp(-(3*x^2)/2)+exp(x^2/2)*exp(-(3*x^2)/2)
(2)计算微分方程
在初始条件
下的特解。
dsolve('x*Dy+2*y-exp(x)=0','y
(1)=2*exp
(1)','x')
ans=
(2*exp
(1))/x^2+(exp(x)*(x-1))/x^2
可知特解为
Solver工具箱的使用
ode45的调用例子:
题目:
dx/dt=4x-2xy
dy/dt=xy-3y0 x(0)=3,y(0)=1 输入代码: Df=@(t,y)[4*y (1)-2*y (1)*y (2);y (1)*y (2)-3*y (2)] y0=[3;1]; [t,Y]=ode45(Df,[0,5],y0) plot(t,Y(: 1)) plot(t,Y(: 2)) plot(t,Y(: 1),'*',t,Y(: 2),'+') plot(Y(: 1),Y(: 2))%相轨线 [t,Y]=ode45(Df,[0,5],[3,4]); plot(X,Y(: 2)) 输出结果: 只画出相轨线图形 初边值问题的解: 例子1 题目: d2u/dx2-xdu/dx+u=-2xcosx0 u(0)=0,u(π)=π 真解为: u=x+2sinx 输入代码 f=@(x,y)[y (2);-2*x*cos(x)-y (1)+x*y (2)] bc=@(ya,yb)[ya (1);yb (1)-1];solinit=bvpinit(linspace(0,1,10),[0,1]);sol=bvp4c(f,bc,solinit);plot(sol.x,sol.y(1,: )) 输出结果(u关于x的图形) 例子2 题目: d2u/dx2-du/dx+u=e^x-3sinx0 u(0)=2,u(π)=e^π+3 真解为: u=e^x-3cosx 输入代码 ff=@(x,y)[y (2);exp(x)-3*sin(x)-y (1)+y (2)]; bc=@(ya,yb)[ya (1)-2;yb (1)-exp(pi)-3]; y0=bvpinit(linspace(0,pi),@(x)[exp(x);exp(x)]); sol=bvp4c(ff,bc,y0); plot(sol.x,sol.y(1,: )) 输出结果(u关于x的图形) 9.偏微分方程的求解 例子: 这里 0<=x<=1t>=0 初值条件: 边值条件: 求解: (1).重写方程组。 (2).将方程组的系数编成函数方便调用。 function[c,f,s]=pdex4pde(x,t,u,DuDx) c=[1;1]; f=[0.024;0.17].*DuDx; y=u (1)-u (2); F=exp(5.73*y)-exp(-11.47*y); s=[-F;F]; (3).初始条件函数。 functionu0=pdex4ic(x); u0=[1;0]; (4).边值条件函数。 function[pl,ql,pr,qr]=pdex4bc(xl,ul,xr,ur,t) pl=[0;ul (2)]; ql=[1;0]; pr=[ur (1)-1;0]; qr=[0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 暑期 实习 总结
![提示](https://static.bdocx.com/images/bang_tan.gif)