matlab作业.docx
《matlab作业.docx》由会员分享,可在线阅读,更多相关《matlab作业.docx(25页珍藏版)》请在冰豆网上搜索。
![matlab作业.docx](https://file1.bdocx.com/fileroot1/2022-11/24/d0470601-c993-4bcb-9f1b-99ec727f5737/d0470601-c993-4bcb-9f1b-99ec727f57371.gif)
matlab作业
图形处理
一、网络文献及中英文文献的检索
这是图书馆的祝黎丽老师在7月1日上午讲授的。
1、检索
检索之前需要问自己几个问题。
在哪里检索,怎样检索,检索结果怎样获取。
学生和科研工作者一般用中外文数据库检索。
在检索之前一般都要制定检索策略。
而检索的结果一般用全文获取方式获取。
2、数据库
数据库中收录了各种类型的数字资源,如期刊、学位论文、会议、专利等。
在检索信息的时候需要用中文数据库和外文数据库相结合。
数据库的建设是一项知识工程,这项工程为使用者提供了重要的学术资源。
城院的数据库有三个来源,包括图书馆自购资源、开放资源和浙大共享资源。
3、常用检索网站
常用的检索网站有:
(1):
超星数字图书
(2):
CADAL
(3):
中文基本古籍库
(4):
CNKI中国学术期刊
(5):
维普期刊
(6):
万方数字化期刊子系统
4、总结
此外,老师还介绍了万方、维普等期刊的收录情况、覆盖范围,并向我们演示了下载资源的操作。
告诉我们检索方式可以用单个检索词也可以用组合检索词。
除了这些还介绍了常用的学术搜索引擎:
google学术、必应搜索和读秀学术搜索。
二、文献管理软件NE
这是图书馆的祝黎丽老师在7月1日下午讲授的。
1、NoteExpress简介
NoteExpress是一款个人文献管理工具。
为了减轻研究工作中因为大量文件夹和大量重复文档导致的查找不方便和管理与撰写的痛苦,NoteExpress应运而生。
它可以通过各种途径连互联网对文件进行搜索,并且下载管理文献资料和论文。
该软件可嵌入MSWord环境使用,在使用Word中输出各种格式化的参考文献,不需要脱离Word环境。
使用方式与绝大多数文献管理软件相似,容易学习。
2、如何使用NoteExpress
在城市学院下载的NoteExpress在校园网范围内使用时无需账号密码,直接用IP进行控制。
其界面如图1:
图1NoteExpress界面
NoteExpress文献管理有5大模块,分别为:
检索、管理、分析、发现、写作。
题录是参考文献的标题、作者、摘要、关键词等信息即通常所说的文献,在NoteExpress中称为题录,存储在数据库节点下的题录文件夹中。
通常采用在线检索导入、数据库导入、导入全文和手动添加始终方式导入题录。
过滤器用来过滤数据。
因为不同数据库检索结果有不同显示格式,我们在三个数据库中检索,检索到的期刊文章数据可能以三种格式呈现。
此时就需要用过滤器进行处理。
外文数据库保存题录,可以选择RIS或Endnote格式,导入时过滤器选择相应的RIS或EndnoteImport。
另外,NE2.0也支持BibTeX格式的导入和导出。
图2NoteExpress一般使用步骤
三、随机模拟
这是林伟然老师在7月2日讲授的。
林老师讲述了几何概型。
举了约会问题和蒲丰投针实验的例子,让我们更好地理解几何概型。
同时,林老师还演示了基于EXCEL的随机模拟。
演示中用到生成随机数的函数是RAND。
此外还用了ABS函数用来求绝对值。
面包价格P是一个随机变量P~N(4,1),NORMINV函数用于返回指定平均值和标准偏差的正态累积分布函数的反函数值。
所以在这里用来表示面包的价格随机变量P。
Excel仿真模拟是利用Excel中自带的函数,通过生成随机数的方式,进行计算,从而解决实际问题。
它的原理是蒙特卡罗方法。
蒙特卡罗方法,也称为计算机随机模拟方法,是一种基于“随机数”计算方法。
只要设计一个随机试验,使一个事件的概率与某未知数有关,然后通过重复试验,以频率近似表示概率,即可求得该未知数的近似解。
林老师在下午还讲了KNN算法。
该算法的思想是:
一个样本与数据集中的k个样本最相似,如果这k个样本中的大多数属于某一个类别,则该样本也属于这个类别。
该算法涉及3个主要因素:
训练集、距离或相似的衡量、k的大小。
KNN算法的计算步骤如下:
图3
算距离:
给定测试对象,计算它与训练集中的每个对象的距离。
找邻居:
圈定距离最近的k个训练对象,作为测试对象的近邻。
做分类:
根据这k个近邻归属的主要类别,来测试对象分类。
图4是KNN算法的图形解释:
图4
KNN算法的改进:
分组快速搜索近邻法。
其基本思想是:
将样本集按近邻关系分解成组,给出每组质心的位置,以质心作为代表点,和未知样本计算距离,选出距离最近的一个或若干个组,再在组的范围内应用一般的KNN算法。
由于并不是将未知样本与所有样本计算距离,故该改进算法可以减少计算量,但并不能减少存储量。
四、Matlab基本操作
这是康旭升老师在7月31日上午讲授的。
开发MATLAB软件的初衷只是为了方便矩阵运算,随着其作为商业软件的推广,它不断吸收各学科各领域权威人士编写的实用程序,形成了一系列规模庞大、覆盖面极广的工具箱(Toolbox),如优化、图形处理、信号处理、神经网络、小波分析、概率统计、偏微分方程、系统识别、鲁棒控制、模糊逻辑等工具箱,极大地方便了我们进行科学研究和工程应用。
由于数学建模中很多问题都可以转化为优化问题,本节我们简单地介绍一下优化工具箱(OptimizationToolbox)中的部分函数,为大家今后熟练使用MATLAB各工具箱函数奠定基础。
康老师给我们介绍了matlab的基本用法,介绍了逻辑运算,循环。
比如%后面的是解释性语句,不参与程序的运行。
而%%是可以起到分段作用的。
如果matlab语句另起一行但是没写完那么就需要加…。
此外,康老师还以Fibonnaci为例演示了matlab编程解决问题。
图5
五、Lingo/lindo优化软件简介
这是康旭升老师在7月31日下午讲授的。
康老师介绍了LINGO软件,由于是英文版,简单的介绍了菜单栏的作用。
然后康老师给我们演示了用LINGO怎样求最优路线。
图6
所以,从S到T的最优行驶路线的路长为20.进一步分析以上求解过程,可以得到从S到T的最优行驶路线为
S→A3→B2→C1→T.
LINGO程序如图6所示:
图7
此外,康老师还讲了用LINGO来解决订购船只的问题。
下面将阐述用LINGO解决最优选择问题。
某钻井队要从10个可供选择的井位中确定5个钻井探油,使总的钻探费用为最小。
若10个井位的代号为s1、s2……s10,相应的钻探费用为c1,c2……c10为5,8,10,6,9,5,7,6,10,8,并且井位选择上要满足下列限制条件:
(1)或选择s1和s7,或选择钻探s9;
(2)选择了s3或s4就不能选择s5,或反过来也一样;
(3)在s5,s6,s7,s8中最多只能选两个;
试建立这个问题的整数规划模型,确定选择的井位。
取0-1变量
,若
表示选取第i个井,若
,则表示不选取第i个井。
建立数学模型如下所示:
model:
sets:
variables/1..10/:
s,cost;
endsets
data:
cost=581069576108;
enddata
min=@sum(variables:
cost*s);
(s
(1)+s(7)-2)*(s(9)-1)=0;
s(3)*s(5)+s(4)*s(5)=0;
@sum(variables(i)|i#ge#5#and#i#le#8:
s(i))<=2;
@sum(variables:
s)=5;
@for(variables:
@bin(s));
end
图8
VariableValueReducedCost
S
(1)1.0000005.000000
S
(2)0.0000008.000000
S(3)0.00000010.00000
S(4)1.0000006.000000
S(5)0.0000009.000000
S(6)1.0000005.000000
S(7)1.0000007.000000
S(8)0.0000006.000000
S(9)0.00000010.00000
S(10)1.0000008.000000
Objectivevalue:
31.00000
即选择井S1、S2、S4、S6、S7以达到最小费用31。
六、符号运算、字符串操作及相互转化
这是戴晓霞老师在8月1日上午讲授的。
戴老师给我们介绍了matlab的符号工具箱,演示了怎样用matlab解方程。
定义符号应该用x=sym(‘x’,’real’)。
这样可以用来求导。
在符号工具箱symbolicmathtoolbox中可以找到一些常用的函数,我们可以通过matlab的help函数进行学习寻找我们不知道的函数的用法,也可以求助matlab的社区寻求帮助。
她向我们介绍了求积分函数的用法。
=int(f,0,1)用来求积分。
还有求导函数diff的用法,ezplot函数可以直接画出函数的图像,不需要像plot那样描点,还有求极限函数limit。
如果是diff(u,x,1),则表示在函数u中对x求1阶偏导。
戴老师还强调一般可以用solve解方程,如‘solve(‘sin(x)=1’,x)可以解最近的根。
七、计算方法、微分方程数值解
这是戴晓霞老师在8月1日下午讲授的。
戴老师让我们初步了解计算方法。
1、误差分为模型误差,观察误差,计算误差(舍入误差(稳定),截断误差(方法))
2、非线性方程求解(solve)
f(x)=0
(1)用ezplot找出大致解,先确定有解。
(零点存在定理)
(2)牛顿迭代法
,终止条件
(依赖于初值的选择,如果n大于20,牛顿迭代无效,复数偶重根能求)
3、线性方程组(Ax=b)(A的条件数直接影响计算好坏,条件数越大越不好)
(1)A:
n*n,a.直接法,A\b,A=LU(只有舍入误差,没有截断误差)
b.在a方程计算效果不好的情况下,cond(A)很大,或者A不是对称,gmres,bicg等迭代法
(2)A:
n*m(最小二乘),A\b
4、插值与拟合
插值:
interp1(分段低次插值,高次插值震荡)
拟合:
cftool
5、数值积分
(1)等距节点(梯形公式,(复合)辛普森公式),quad函数和dblquad函数
(2)非等距节点,高斯积分,代数精度最高。
6、常微分方程
ode45(4阶Runge-kutta)
7、偏微分方程(综合)
pdetool函数
8、特征值与特征向量
eig函数:
全部特征值
eigs:
绝对值意义下最大或最小的特征值
八、多元统计分析及统计软件基本功能
这是张彩伢老师在8月2日和8月3日讲授的。
我知道了聚类分析是什么。
学会了用spss做聚类分析。
聚类分析是根据研究对象的特征,对样品或者变量进行分类的一种多元统计分析方法,在进行聚类分析之前,这些类别是隐蔽的,能分为多少种类别事先也是不知道的。
聚类分析的目的是根据对象间的相关程序大小进行类别的聚合,要求同一类中的个体有较大的相关性,不同类中的个体差异很大。
在中间距离法中,知道了可以用中心线定理去证明。
学习了判别分析。
判别分析是根据已掌握的、历史上每个类别的若干样本的数据信息,总结出客观事物分类的规律性,建立判别公式和判别准则。
根据总结出的判别公式和判别准则,判断新的样本点所属的类别。
老师上课演示时用了spss自带的例子。
接下来我将以一个自己的例子来展示这两天学到的。
图9
觀察值處理摘要a
觀察值
有效
遺漏
總計
N
百分比
N
百分比
N
百分比
10
100.0
0
.0
10
100.0
a.平均連結(組間)
表1
表2
图10
图11
学习了主成分分析法和因子分析法。
主成分分析也称主分量分析,旨在利用降维的思想,把多指标转化为少数几个综合指标,其中每个主成分都能够反映原始变量的大部分信息,且所含信息互不重复。
因子分析的基本目的就是用少数几个因子去描述许多指标或因素之间的联系,即将相关比较密切的几个变量归在同一类中,每一类变量就成为一个因子,以较少的几个因子反映原资料的大部分信息。
九、二维三维图形绘制
这是黄外斌老师在8月4日上午讲授的。
一十、科技论文写作技巧
这是黄外斌老师在8月4日下午讲授的。
一十一、科技论文写作技巧
这是黄外斌老师在8月5日上午讲授的。
一十二、图形图像处理
这是黄外斌老师在8月5日下午讲授的。
一十三、Matlab优化工具箱及常用算法概述
这是王贵老师在8月6日讲授的。
绘制
的三维曲面图,等高线图。
>>[x,y]=meshgrid([-3:
0.2:
3]);
>>z=4*x.*exp(-x.^2-y.^2);
>>surf(x,y,z)
>>[x,y]=meshgrid([-3:
0.2:
3]);
>>z=4*x.*exp(-x.^2-y.^2);
>>contour(x,y,z)
2.在圆域上绘制上题网线图。
>>z1=cplxgrid(20);
>>x=real(z1);
>>y=imag(z1);
>>z=4*x.*exp(-x.^2-y.^2);
>>mesh(x,y,z)
>>z1=3*cplxgrid(20);
>>x=real(z1);
>>y=imag(z1);
>>z=4*x.*exp(-x.^2-y.^2);
>>mesh(x,y,z)
3.绘制出
的图形(t取值范围为0到2
),在图上用小红圈标出第一次使y=0.6的那点位置,并要求在该点旁标出坐标。
fun=inline('exp(-0.5*t)*cos(t)-0.6','t')
fun=
Inlinefunction:
fun(t)=exp(-0.5*t)*cos(t)-0.6
>>a=solve('exp(-0.5*t)*cos(t)-0.6=0','t')
a=
0.61577226868234564958441441032223
>>t=linspace(0,2*pi,100);
>>y=exp(-0.5*t).*cos(t);
>>plot(t,y)
>>holdon
>>plot(a,0.6,'ro')
>>gtext('(0.615,0.6)')
4.
选用绿色实线绘制相应的三维曲线。
>>t=linspace(0,20*pi,3000);
>>plot3(sin(t),cos(t),t,'g')
5.采用模型
分别在同一窗口内,同一窗口不同子图内画一组椭圆。
不同椭圆用不同颜色,不同线型等区分。
>>subplot(2,2,1)
>>x=linspace(1,100,1000);
ezplot('x^2/1+y^2/24-1')
holdon
subplot(2,2,2);
>>h=ezplot('x^2/4+y^2/21-1')
h=
180.0105
>>set(h,'color','b')
>>set(h,'linestyle','--')
>>subplot(2,2,1)
>>x=linspace(1,100,1000);
ezplot('x^2/1+y^2/24-1')
holdon
subplot(2,2,2);
>>h=ezplot('x^2/4+y^2/21-1')
h=
180.0105
>>set(h,'color','b')
>>set(h,'linestyle','--')
>>holdon;
>>subplot(2,2,3)
>>ezplot('x^2/9+y^2/16-1')
>>h=ezplot('x^2/9+y^2/16-1')
h=
186.0096
>>set(h,'color','y')
>>subplot(2,2,4)
>>h=ezplot('x^2/16+y^2/9-1')
h=
192.0090
>>set(h,'color','k')
>>set(h,'linestyle','-.')
6.用图解法求方程
最靠近原点的解。
>>x=linspace(-50,50,1000);
>>h=ezplot('x/(1+x^2+y^2)-sin(x+cos(y))',1000);
>>holdon;
>>y=ones(size(x))*0;
>>plot(x,y);
>>y=linspace(-50,50,1000)
>>x=ones(size(y))*0;
>>holdon
>>plot(x,y)
>>x=ones(size(y))*0;
>>holdon
>>plot(x,y)
>>axis(-2,2,-4,4)
>>gridon
x=-1:
0.01:
0;
n=length(x)
c=zeros(1,n);
fori=1:
n
b=faaa(x)
cc=x^2+b^2;
end
b=solve('a/(1+a^2+b^2)-sin(a+cos(b))','b')
symsy
x=linspace(-2,2,200)
n=length(x)
g=[];
fori=1:
n
a=x(i);
t=vpa(solve(y/(1+a^2+y^2)-sin(a+cos(y)),y),3);
g=[gt];
end
n=length(x);
yy=zeros(1,n);
symsy
fori=1:
n
t=vpa(solve(y/(1+x(i).^2+y.^2)-sin(x(i)+cos(y)),y),5);
yy(i)=t;
end
disp(yy)
7.绘制出
的图形(t取值范围为0到6
),找出最大的t使
,并要求在该点旁标出坐标。
觉