文档库 最新最全的文档下载
当前位置:文档库 › 简单Matlab_GUI实例

简单Matlab_GUI实例

简单Matlab_GUI实例
简单Matlab_GUI实例

Matlab_GUI说明:

启动matlab,在命令窗口输入guide,弹出下图

1、选择第一项,弹出窗口

然后保存,这里可以调节窗口的大小(点击运行,可以看出调节后窗口的大小)

2、添加按钮选项

3.1图形显示(背景):添加,选择适当大小,双击进行设置,设置如下(自己选择喜欢的)

3.2 在背景中加入axis(),如下图(自己调节大小)

3.3加入按钮(所需)

本程序比较简单,所以按钮比较少

产生一线性调频信号:所需带宽B,脉宽tao,采样率fs等等

静态按钮()(带宽、脉宽………)

输入参数:

B的设置

Fs设置

以下都是一样的设置,这里特别注意Tag标签的使用,在以后加载程序时,Tag标签会让自己很明白这个代表什么物理量。

然后加入画图按钮:

这里添加一些附件功能

1)使得运行后窗口具有放大功能(tools-gui options)

选择

就Ok啦

2)添加图形放大、打印、等等按钮

选择tools-toolbar-edite,需要什么添加即可

完成后保存运行,附加功能出现

然后添加程序,这里找到那个m文件

我们从画图按钮开始(最后点画图,程序就开始执行)

这里从时域、频域开始

从tplot_callback,时画时域图

注意:在不同的按钮间相互调用,必须在程序间加global 变量,这样下个按钮会认识到前个按钮所用变量。

如在fft_plot中用到tplot_callback中的t,我们在两个按钮间全加global t global t

详细看test.m

So easy 吧!呵呵。

一个简单的Matlab_GUI编程实例

Matlab GUI编程教程(适用于初学者) 1.首先我们新建一个GUI文件:如下图所示; 选择Blank GUI(Default) 2.进入GUI开发环境以后添加两个编辑文本框,6个静态文本框,和一个按钮,布置如下

图所示; 布置好各控件以后,我们就可以来为这些控件编写程序来实现两数相加的功能了。3.我们先为数据1文本框添加代码; 点击上图所示红色方框,选择edit1_Callback,光标便立刻移到下面这段代码的位置。 1. 2. 3.function edit1_Callback(hObject, eventdata, handles) 4.% hObject handle to edit1 (see GCBO) 5.% eventdata reserved - to be defined in a future version of MATLAB

6.% handles structure with handles and user data (see GUIDATA) 7.% Hints: get(hObject,'String') returns contents of edit1 as text 8.% str2double(get(hObject,'String')) returns contents of edit1 as a double 复制代码 然后在上面这段代码的下面插入如下代码: 1. 2.%以字符串的形式来存储数据文本框1的内容. 如果字符串不是数字,则现实空白内容input = str2num(get(hObject,'String')); %检查输入是否为空. 如果为空,则默认显示为0if (isempty(input)) set(hObject,'String','0')endguidata(hObject, handles); 复制代码 这段代码使得输入被严格限制,我们不能试图输入一个非数字。 4.为edit2_Callback添加同样一段代码 5 现在我们为计算按钮添加代码来实现把数据1和数据2相加的目的。 用3中同样的方法在m文件中找到pushbutton1_Callback代码段 如下; 1.function pushbutton1_Callback(hObject, eventdata, handles) 2.% hObject handle to pushbutton1 (see GCBO) 3.% eventdata reserved - to be defined in a future version of MATLAB 4.% handles structure with handles and user data (see GUIDATA) 复制代码

数据挖掘案例分析--啤酒与尿布讲课稿

前言 “啤酒与尿布”的故事是营销届的神话,“啤酒”和“尿布”两个看上去没有关系的商品摆放在一起进行销售、并获得了很好的销售收益,这种现象就是卖场中商品之间的关联性,研究“啤酒与尿布”关联的方法就是购物篮分析,购物篮分析曾经是沃尔玛秘而不宣的独门武器,购物篮分析可以帮助我们在门店的销售过程中找到具有关联关系的商品,并以此获得销售收益的增长! 商品相关性分析是购物篮分析中最重要的部分,购物篮分析英文名为market basket analysis(简称MBA,当然这可不是那个可以用来吓人的学位名称)。在数据分析行业,将购物篮的商品相关性分析称为“数据挖掘算法之王”,可见购物篮商品相关性算法吸引人的地方,这也正是我们小组乐此不疲的围绕着购物篮分析进行着研究和探索的根本原因。 购物篮分析的算法很多,比较常用的有A prior/ ?’ p r i ?/算法、FP-tree结构和相应的FP-growth算法等等,上次课我们组的邓斌同学已经详细的演示了购物篮分析的操作流程,因此在这里我不介绍具体的购物篮分析算法,而是在已经获得的结果的基础上剖析一下数据身后潜藏的商业信息。目前购物篮分析的计算方法都很成熟,在进入20世纪90年代后,很多分析软件均将一些成熟的购物篮分析算法打包在自己的软件产品中,成为了软件产品的组成部分,客户购买了这些软件产品后就等于有了购物篮分析的工具,比如我们正在使用的Clementine。 缘起 “啤酒与尿布”的故事可以说是营销界的经典段子,在打开Google搜索一下,你会发现很多人都在津津乐道于“啤酒与尿布”,可以说100个人就有100个版本的“啤酒与尿布”的故事。故事的时间跨度从上个世纪80年代到本世纪初,甚至连故事的主角和地点都会发生变化——从美国跨越到欧洲。认真地查了一下资料,我们发现沃尔玛的“啤酒与尿布”案例是正式刊登在1998年的《哈佛商业评论》上面的,这应该算是目前发现的最权威报道。 “啤酒与尿布”的故事产生于20世纪90年代的美国沃尔玛超市中,沃尔玛的超市管理人员分析销售数据时发现了一个令人难于理解的现象:在某些特定的情况下,“啤酒”与“尿布”两件看上去毫无关系的商品会经常出现在同一个购物篮中,这种独特的销售现象引起了管理人员的注意,经过后续调查发现,这种现象出现在年轻的父亲身上。 在美国有婴儿的家庭中,一般是母亲在家中照看婴儿,年轻的父亲前去超市购买尿布。父亲在购买尿布的同时,往往会顺便为自己购买啤酒,这样就会出现啤酒与尿布这两件看上去不相干的商品经常会出现在同一个购物篮的现象。如果这个年轻的父亲在卖场只能买到两件商品之一,则他很有可能会放弃购物而到另一家商店,直到可以一次同时买到啤酒与尿布为止。沃尔玛发现了这一独特的现象,开始在卖场尝试将啤酒与尿布摆放在相同的区域,让年轻的父亲可以同时找到这两件商品,并很快地完成购物;而沃尔玛超市也可以让这些客户一次购买两件商品、而不是一件,从而获得了很好的商品销售收入,这就是“啤酒与尿布”故事的由来。 当然“啤酒与尿布”的故事必须具有技术方面的支持。1993年美国学者Agrawal (个人翻译--艾格拉沃)提出通过分析购物篮中的商品集合,从而找出商品之间关联关系的关联算法,并根据商品之间的关系,找出客户的购买行为。艾格拉沃从数学及计算机算法角度提出了商品关联关系的计算方法——A prior算法。沃尔玛从上个世纪90年代尝试将A prior算法引入到POS机数据分析中,并获得了成功,于是产生了“啤酒与尿布”的故事。 “啤酒和尿布”的故事为什么产生于沃尔玛超市的卖场中

实例matlab-非线性规划-作业

实例matlab-非线性规划-作业

现代设计方法-工程优化理论、方法与设计 姓名 学号 班级 研 问题 : 某厂向用户提供发动机,合同规定,第一、二、三季度末分别交货40台、60台、80台。每季度的生产费用为 (元),其中x 是该季生产的台数。若交货后有剩余,可用于下季度交货,但需支付存储费,每台每季度c 元。已知工厂每季度最大生产能力为100台,第一季度开始时无存货,设a=50、b=0.2、c=4,问工厂应如何安排生产计划,才能既满足合同又使总费用最低。讨论a 、b 、c 变化对计划的影响,并作出合理的解释。 问题的分析和假设: 问题分析:本题是一个有约束条件的二次规划问题。决策变量是工厂每季度生产的台数,目标函数是总费用(包括生产费用和存储费)。约束条件是生产合同,生产能力的限制。在这些条件下需要如何安排生产计划,才能既满足合同又使总费用最低。 问题假设: 1、工厂最大生产能力不会发生变化; 2、合同不会发生变更; 3、第一季度开始时工厂无存货; 4、生产总量达到180台时,不在进行生产; 5、工厂生产处的发动机质量有保证,不考虑退货等因素; 6、不考虑产品运输费用是否有厂家承担等和生产无关的因素。 符号规定: x1——第一季度生产的台数; x2——第二季度生产的台数; 180-x1-x2——第三季度生产的台数; y1——第一季度总费用; y2——第二季度总费用; y3——第三季度总费用; y ——总费用(包括生产费用和存储费)。 ()2bx ax x f +=

建模: 1、第一、二、三季度末分别交货40台、60台、80台; 2、每季度的生产费用为 (元); 3、每季度生产数量满足40 ≤x1≤100,0≤x2≤100,100≤x1+x2 ≤180; 4、要求总费用最低,这是一个目标规划模型。 目标函数: y1 2111x b x a Z ?+?= y2()4012222-?+?+?=x c x b x a Z y3()()()10018018021221213 -+?+--?+--?=x x c x x b x x a Z y x x x x x x Z Z Z Z 68644.04.04.0149201 212221321--+++=++= 40≤x1≤100 0≤x2≤100 100≤x1+x2≤180 ()2 bx ax x f +=

matlab源代码实例

1.硬币模拟试验 源代码: clear; clc; head_count=0; p1_hist= [0]; p2_hist= [0]; n = 1000; p1 = 0.3; p2=0.03; head = figure(1); rand('seed',sum(100*clock)); fori = 1:n tmp = rand(1); if(tmp<= p1) head_count = head_count + 1; end p1_hist (i) = head_count /i; end figure(head); subplot(2,1,1); plot(p1_hist); grid on; hold on; xlabel('重复试验次数'); ylabel('正面向上的比率'); title('p=0.3试验次数N与正面向上比率的函数图'); head_count=0; fori = 1:n tmp = rand(1); if(tmp<= p2) head_count = head_count + 1; end p2_hist (i) = head_count /i; end figure(head); subplot(2,1,2); plot(p2_hist); grid on; hold on; xlabel('重复试验次数'); ylabel('正面向上的比率'); title('p=0.03试验次数N与正面向上比率的函数图'); 实验结果:

2.不同次数的随机试验均值方差比较 源代码: clear ; clc; close; rand('seed',sum(100*clock)); Titles = ['n=5时' 'n=20时' 'n=25时' 'n=50时' 'n=100时']; Titlestr = cellstr(Titles); X_n_bar=[0]; %the samples of the X_n_bar X_n=[0]; %the samples of X_n N=[5,10,25,50,100]; j=1; num_X_n = 100; num_X_n_bar = 100; h_X_n_bar = figure(1);

MATLAB简单程序大全

MATLAB简单程序大全 求特征值特征向量 A=[2 3 4;1 5 9;8 5 2] det(A) A' rank(A) inv(A) rref(A) eig(A)%求特征值和特征向量 卫星运行问题 h=200,H=51000,R=6378; a=(h+H+2*R)/2; c=(H-h)/2; b=(a^2-c^2)^(1/2); e=c/a; f=sqrt(1-exp(2).*cos(t)^2); l=int(f,t,0,pi/2) L=4*a.*l 动态玫瑰线 n=3;N=10000; theta=2*pi*(0:N)/N; r=cos(n*theta); x=r.*cos(theta); y=r.*sin(theta); comet(x,y) 二重积分 syms x y f=x^2*sin(y); int(int(f,x,0,1),y,0,pi) ezmesh(f,[0,1,0,pi]) 函数画图 syms x;f=exp(-0.2*x)*sin(0.5*x); ezplot(f,[0,8*pi])

玫瑰线 theta=0:0.01:2*pi; r=cos(3*theta); polar(theta,r,'r') 求x^2+y^2=1和x^2+z^2=1所围成的体积 syms x y z R r=1; Z=sqrt(1-x^2); y0=Z; V=8*int(int(Z,y,0,y0),x,0,1) 求导数及图像 f='1/(5+4*cos(x))'; subplot(1,2,1);ezplot(f) f1=diff(f) subplot(1,2,2);ezplot(f1) 绕x轴旋转 t=(0:20)*pi/10; r=exp(-.2*t).*sin(.5*t); theta=t; x=t'*ones(size(t)); y=r'*cos(theta); z=r'*sin(theta); mesh(x,y,z) colormap([0 0 0]) 某年是否闰年 year=input('input year:='); n1=year/4; n2=year/100; n3=year/400; if n1==fix(n1)&n2~=fix(n2) disp('是闰年') elseif n1==fix(n1)&n3==fix(n3) disp('是闰年') else

SAS+8.2+Enterprise+Miner数据挖掘实例

SAS 8.2 Enterprise Miner数据挖掘实例 目录 1.SAS 8.2 Enterprise Miner简介 (2) 2.EM工具具体使用说明 (2) 3.定义商业问题 (3) 4.创建一个工程 (4) 4.1调用EM (4) 4.2新建一个工程 (5) 4.3应用工作空间中的节点 (6) 5.数据挖掘工作流程 (6) 5.1定义数据源 (6) 5.2探索数据 (8) 5.2.1设置Insight节点 (8) 5.2.2察看Insight节点输出结果 (9) 5.3准备建模数据 (11) 5.3.1建立目标变量 (11) 5.3.2设置目标变量 (13) 5.3.3数据分割 (21) 5.3.4替换缺失值 (22) 5.4建模 (23) 5.4.1回归模型 (23) 5.4.2决策树模型 (25) 5.5评估模型 (28) 5.6应用模型 (30) 5.6.1抽取打分程序 (30) 5.6.2引入原始数据源 (31) 5.6.3查看结果 (32) 6.参考文献: (34)

1.SAS 8.2 Enterprise Miner简介 数据挖掘就是对观测到的庞大数据集进行分析,目的是发现未知的关系和以数据拥有者可以理解并对其有价值的新颖方式来总结数据。[1] 一个数据挖掘工程需要足够的软件来完成分析工作,为了计划、实现和成功建立一个数据挖掘工程,需要一个集成了所有分析阶段的软件解决方案,包括从数据抽样到分析和建模,最后公布结果信息。大部分专业统计数据分析软件只实现特定的数据挖掘技术,而SAS 8.2 Enterprise Miner是一个集成的数据挖掘系统,允许使用和比较不同的技术,同时还集成了复杂的数据库管理软件。SAS 8.2 Enterprise Miner把统计分析系统和图形用户界面(GUI)集成在一起,并与SAS协会定义的数据挖掘方法——SEMMA方法,即抽样(Sample)、探索(Explore)、修改(Modify)建模(Model)、评价(Assess)紧密结合,对用户友好、直观、灵活、适用方便,使对统计学无经验的用户也可以理解和使用。 Enterprise Miner简称EM,它的运行方式是通过在一个工作空间(workspace)中按照一定的顺序添加各种可以实现不同功能的节点,然后对不同节点进行相应的设置,最后运行整个工作流程(workflow),便可以得到相应的结果。 2.EM工具具体使用说明 EM中工具分为七类: ?Sample类包含Input Data Source、Sampling、Data Partition ?Explore类包含Distribution Explorer、Multiplot、Insight、 Association、Variable Selection、Link Analysis (Exp.) ?Modify类包含Data Set Attribute、Transform Variable、Filter Outliers、Replacement、Clustering、SOM/Kohonen、 Time Series(Exp.) ?Medel类包括Regression、Tree、Neural Network、 Princomp/Dmneural、User Defined Model、Ensemble、 Memory-Based Reasoning、Two Stage Model ?Assess类包括Assessment、Reporter

大数据挖掘商业案例

1.前言 随着中国加入WTO,国金融市场正在逐步对外开放,外资金融企业的进入在带来先进经营理念的同时,无疑也加剧了中国金融市场的竞争。金融业正在快速发生变化。合并、收购和相关法规的变化带来了空前的机会,也为金融用户提供了更多的选择。节约资金、更完善的服务诱使客户转投到竞争对手那里。即便是网上银行也面临着吸引客户的问题,最有价值的客户可能正离您而去,而您甚至还没有觉察。在这样一种复杂、激烈的竞争环境下,如何才能吸引、增加并保持最好的客户呢? 数据挖掘、模式(Patterns>等形式。用统计分析和数据挖掘解决商务问题。 金融业分析方案可以帮助银行和保险业客户进行交叉销售来增加销售收入、对客户进行细分和细致的行为描述来有效挽留有价值客户、提高市场活动的响应效果、降低市场推广成本、达到有效增加客户数量的目的等。 客户细分―使客户收益最大化的同时最大程度降低风险 市场全球化和购并浪潮使市场竞争日趋激烈,新的管理需求迫切要求金融机构实现业务革新。为在激烈的竞争中脱颖而出,业界领先的金融服务机构正纷纷采用成熟的统计分析和数据挖掘技术,来获取有价值的客户,提高利润率。他们在分析客户特征和产品特征的同时,实现客户细分和市场细分。 数据挖掘实现客户价值的最大化和风险最小化。SPSS预测分析技术能够适应用于各种金融服务,采用实时的预测分析技术,分析来自各种不同数据源-来自ATM、交易、呼叫中心以及相关分支机构的客户数据。采用各种分析技术,发现数据中的潜在价值,使营销活动更具有针对性,提高营销活动的市场回应率,使营销费用优化配置。 客户流失―挽留有价值的客户 在银行业和保险业,客户流失也是一个很大的问题。例如,抵押放款公司希望知道,自己的哪些客户会因为竞争对手采用低息和较宽松条款的手段而流失;保险公司则希望知道如何才能减少取消保单的情况,降低承包成本。 为了留住最有价值的客户,您需要开展有效的保留活动。然而,首先您需要找出最有价值的客户,理解他们的行为。可以在整个客户群的很小一部分中尽可能多地找出潜在的流失者,从而进行有效的保留活动并降低成本。接着按照客户的价值和流失倾向给客户排序,找出最有价值的客户。 交叉销售 在客户关系管理中,交叉销售是一种有助于形成客户对企业忠诚关系的重要工具,有助于企业避开“挤奶式”的饱和竞争市场。由于客户从企业那里获得更多的产品和服务,客户与企业的接触点也就越多,企业就越有机会更深入地了解客户的偏好和购买行为,因此,企业提高满足客户需求的能力就比竞争对手更有效。 研究表明,银行客户关系的年限与其使用的服务数目、银行每个账户的利润率之间,存在着较强的正相关性。企业通过对现有客户进行交叉销售,客户使用企业的服务数目就会增多,客户使用银行服务的年限就会增大,每个客户的利润率也随着增大。 从客户的交易数据和客户的自然属性中寻找、选择最有可能捆绑在一起销售的产品和服务,发现有价值的产品和服务组合,从而有效地向客户提供额外的服务,提高活期收入并提升客户的收益率。

BP神经网络matlab实例(简单而经典)

p=p1';t=t1'; [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %原始数据归一化 net=newff(minmax(pn),[5,1],{'tansig','purelin'},'traingdx'); %设置网络,建立相应的BP网络 net.trainParam.show=2000; % 训练网络 net.trainParam.lr=0.01; net.trainParam.epochs=100000; net.trainParam.goal=1e-5; [net,tr]=train(net ,pn,tn); %调用TRAINGDM算法训练BP网络 pnew=pnew1'; pnewn=tramnmx(pnew,minp,maxp); anewn=sim(net,pnewn); %对BP网络进行仿真 anew=postmnmx(anewn,mint,maxt); %还原数据 y=anew'; 1、BP网络构建 (1)生成BP网络 = net newff PR S S SNl TF TF TFNl BTF BLF PF (,[1 2...],{ 1 2...},,,) R?维矩阵。 PR:由R维的输入样本最小最大值构成的2 S S SNl:各层的神经元个数。 [ 1 2...] { 1 2...} TF TF TFNl:各层的神经元传递函数。 BTF:训练用函数的名称。 (2)网络训练 [,,,,,] (,,,,,,) = net tr Y E Pf Af train net P T Pi Ai VV TV (3)网络仿真 = [,,,,] (,,,,) Y Pf Af E perf sim net P Pi Ai T {'tansig','purelin'},'trainrp'

matlab经典编程例题

以下各题均要求编程实现,并将程序贴在题目下方。 1.从键盘输入任意个正整数,以0结束,输出那些正整数中的素数。 clc;clear; zzs(1)=input('请输入正整数:');k=1; n=0;%素数个数 while zzs(k)~=0 flag=0;%是否是素数,是则为1 for yz=2:sqrt(zzs(k))%因子从2至此数平方根 if mod(zzs(k),yz)==0 flag=1;break;%非素数跳出循环 end end if flag==0&zzs(k)>1%忽略0和1的素数 n=n+1;sus(n)=zzs(k); end k=k+1; zzs(k)=input('请输入正整数:'); end disp(['你共输入了' num2str(k-1) '个正整数。它们是:']) disp(zzs(1:k-1))%不显示最后一个数0 if n==0 disp('这些数中没有素数!')%无素数时显示 else disp('其中的素数是:') disp(sus) end 2.若某数等于其所有因子(不含这个数本身)的和,则称其为完全数。编程求10000以内所有的完全数。 clc;clear;

wq=[];%完全数赋空数组 for ii=2:10000 yz=[];%ii的因子赋空数组 for jj=2:ii/2 %从2到ii/2考察是否为ii的因子 if mod(ii,jj)==0 yz=[yz jj];%因子数组扩展,加上jj end end if ii==sum(yz)+1 wq=[wq ii];%完全数数组扩展,加上ii end end disp(['10000以内的完全数为:' num2str(wq)])%输出 3.下列这组数据是美国1900—2000年人口的近似值(单位:百万)。 (1)若. 2c + = y+ 与试编写程序计算出上式中的a、b、c; 的经验公式为 t at bt y (2)若.bt 的经验公式为 y= 与试编写程序计算出上式中的a、b; y ae t (3)在一个坐标系下,画出数表中的散点图(红色五角星),c + =2中 ax bx y+拟合曲线图(蓝色实心线),以及.bt y=(黑色点划线)。 ae (4)图形标注要求:无网格线,横标注“时间t”,纵标注“人口数(百万)”,图形标题“美国1900—2000年的人口数据”。 (5)程序中要有注释,将你的程序和作好的图粘贴到这里。 clf;clc;clear %清除图形窗、屏幕、工作空间 t=1900:10:2000; y=[76 92 106 123 132 151 179 203 227 250 281]; p1=polyfit(t,y,2);%二次多项式拟合

大数据应用案例

四大经典大数据应用案例解析 什么是数据挖掘(Data Mining)?简而言之,就是有组织有目的地收集数据,通过分析数据使之成为信息,从而在大量数据中寻找潜在规律以形成规则或知识的技术。在本文中,我们从数据挖掘的实例出发,并以数据挖掘中比较经典的分类算法入手,给读者介绍我们怎样利用数据挖掘的技术解决现实中出现的问题。 数据挖掘是如何解决问题的? 本节通过几个数据挖掘实际案例来诠释如何通过数据挖掘解决商业中遇到的问题。下面关于“啤酒和尿不湿”的故事是数据挖掘中最经典的案例。而Target 公司通过“怀孕预测指数”来预测女顾客是否怀孕的案例也是近来为数据挖掘学者最津津乐道的一个话题。

一、尿不湿和啤酒 很多人会问,究竟数据挖掘能够为企业做些什么?下面我们通过一个在数据挖掘中最经典的案例来解释这个问题——一个关于尿不湿与啤酒的故事。超级商业零售连锁巨无霸沃尔玛公司(Wal Mart)拥有世上最大的数据仓库系统之一。为了能够准确了解顾客在其门店的购买习惯,沃尔玛对其顾客的购物行为进行了购物篮关联规则分析,从而知道顾客经常一起购买的商品有哪些。在沃尔玛庞大的数据仓库里集合了其所有门店的详细原始交易数据,在这些原始交易数据的基础上,沃尔玛利用数据挖掘工具对这些数据进行分析和挖掘。一个令人惊奇和意外的结果出现了:“跟尿不湿一起购买最多的商品竟是啤酒”!这是数据挖掘技术对历史数据进行分析的结果,反映的是数据的内在规律。那么这个结果符合现实情况吗?是否是一个有用的知识?是否有利用价值? 为了验证这一结果,沃尔玛派出市场调查人员和分析师对这一结果进行调查分析。经过大量实际调查和分析,他们揭示了一个隐藏在“尿不湿与啤酒”背后的美国消费者的一种行为模式: 在美国,到超市去买婴儿尿不湿是一些年轻的父亲下班后的日常工作,而他们中有30%~40%的人同时也会为自己买一些啤酒。产生这一现象的原因是:美国的太太们常叮嘱她们的丈夫不要忘了下班后为小孩买尿不湿,而丈夫们在买尿不湿后又随手带回了他们喜欢的啤酒。另一种情况是丈夫们在买啤酒时突然记起他们的责任,又去买了尿不湿。既然尿不湿与啤酒一起被购买的机会很多,那么沃尔玛就在他们所有的门店里将尿不湿与啤酒并排摆放在一起,结果是得到了尿不湿与啤酒的销售量双双增长。按常规思维,尿不湿与啤酒风马牛不相及,若不是

三个遗传算法matlab程序实例

遗传算法程序(一): 说明: fga.m 为遗传算法的主程序; 采用二进制Gray编码,采用基于轮盘赌法的非线性排名选择, 均匀交叉,变异操作,而且还引入了倒位操作! function [BestPop,Trace]=fga(FUN,LB,UB,eranum,popsize,pCross,pMutation,pInversion,options) % [BestPop,Trace]=fmaxga(FUN,LB,UB,eranum,popsize,pcross,pmutation) % Finds a maximum of a function of several variables. % fmaxga solves problems of the form: % max F(X) subject to: LB <= X <= UB % BestPop - 最优的群体即为最优的染色体群 % Trace - 最佳染色体所对应的目标函数值 % FUN - 目标函数 % LB - 自变量下限 % UB - 自变量上限 % eranum - 种群的代数,取100--1000(默认200) % popsize - 每一代种群的规模;此可取50--200(默认100) % pcross - 交叉概率,一般取0.5--0.85之间较好(默认0.8) % pmutation - 初始变异概率,一般取0.05-0.2之间较好(默认0.1) % pInversion - 倒位概率,一般取0.05-0.3之间较好(默认0.2) % options - 1*2矩阵,options(1)=0二进制编码(默认0),option(1)~=0十进制编 %码,option(2)设定求解精度(默认1e-4) % % ------------------------------------------------------------------------ T1=clock; if nargin<3, error('FMAXGA requires at least three input arguments'); end if nargin==3, eranum=200;popsize=100;pCross=0.8;pMutation=0.1;pInversion=0.15;options=[0 1e-4];end if nargin==4, popsize=100;pCross=0.8;pMutation=0.1;pInversion=0.15;options=[0 1e-4];end if nargin==5, pCross=0.8;pMutation=0.1;pInversion=0.15;options=[0 1e-4];end if nargin==6, pMutation=0.1;pInversion=0.15;options=[0 1e-4];end if nargin==7, pInversion=0.15;options=[0 1e-4];end if find((LB-UB)>0) error('数据输入错误,请重新输入(LB

数据挖掘商业案例

金融行业应用 1.前言 随着中国加入WTO,国内金融市场正在逐步对外开放,外资金融企业的进入在带来先进经营理念的同时,无疑也加剧了中国金融市场的竞争。金融业正在快速发生变化。合并、收购和相关法规的变化带来了空前的机会,也为金融用户提供了更多的选择。节约资金、更完善的服务诱使客户转投到竞争对手那里。即便是网上银行也面临着吸引客户的问题,最有价值的客户可能正离您而去,而您甚至还没有觉察。在这样一种复杂、激烈的竞争环境下,如何才能吸引、增加并保持最好的客户呢? 数据挖掘(Data Mining,DM)是指从大量不完全的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、有用的信息和知识的过程。其表现形式为概念(Concepts)、规则(Rules)、模式(Patterns)等形式。用统计分析和数据挖掘解决商务问题。 金融业分析方案可以帮助银行和保险业客户进行交叉销售来增加销售收入、对客户进行细分和细致的行为描述来有效挽留有价值客户、提高市场活动的响应效果、降低市场推广成本、达到有效增加客户数量的目的等。 客户细分―使客户收益最大化的同时最大程度降低风险 市场全球化和购并浪潮使市场竞争日趋激烈,新的管理需求迫切要求金融机构实现业务革新。为在激烈的竞争中脱颖而出,业界领先的金融服务机构正纷纷采用成熟的统计分析和数据挖掘技术,来获取有价值的客户,提高利润率。他们在分析客户特征和产品特征的同时,实现客户细分和市场细分。 数据挖掘实现客户价值的最大化和风险最小化。SPSS预测分析技术能够适应用于各种金融服务,采用实时的预测分析技术,分析来自各种不同数据源-来自ATM、交易网站、呼叫中心以及相关分支机构的客户数据。采用各种分析技术,发现数据中的潜在价值,使营销活动更具有针对性,提高营销活动的市场回应率,使营销费用优化配置。 客户流失―挽留有价值的客户 在银行业和保险业,客户流失也是一个很大的问题。例如,抵押放款公司希望知道,自己的哪些客户会因为竞争对手采用低息和较宽松条款的手段而流失;保险公司则希望知道如何才能减少取消保单的情况,降低承包成本。 为了留住最有价值的客户,您需要开展有效的保留活动。然而,首先您需要找出最有价值的客户,理解他们的行为。可以在整个客户群的很小一部分中尽可能多地找出潜在的流失者,从而进行有效的保留活动并降低成本。接着按照客户的价值和流失倾向给客户排序,找出最有价值的客户。 交叉销售 在客户关系管理中,交叉销售是一种有助于形成客户对企业忠诚关系的重要工具,有助于企业避开“挤奶式”的饱和竞争市场。由于客户从企业那里获得更多的产品和服务,客户与企业的接触点也就越多,企业就越有机会更深入地了解客户的偏好和购买行为,因此,企业提高满足客户需求的能力就比竞争对手更有效。 研究表明,银行客户关系的年限与其使用的服务数目、银行每个账户的利润率之间,存在着较强的正相关性。企业通过对现有客户进行交叉销售,客户使用企业的服务数目就会增多,客户使用银行服务的年限就会增大,每个客户的利润率也随着增大。

图论算法及matlab程序的三个案例

图论实验三个案例 单源最短路径问题 Dijkstra 算法 Dijkstra 算法是解单源最短路径问题的一个贪心算法。其基本思想是,设置一个顶点集合S 并不断地作贪心选择来扩充这个集合。一个顶点属于集合S 当且仅当从源到该顶点的最短路径长度已知。设v 是图中的一个顶点,记()l v 为顶点v 到源点v 1的最短距离,,i j v v V ?∈,若 (,)i j v v E ?,记i v 到j v 的权ij w =∞。 Dijkstra 算法: ① 1{}S v =,1()0l v =;1{}v V v ??-,()l v =∞,1i =,1{}S V v =-; ② S φ=,停止,否则转③; ③ ()min{(),(,)} j l v l v d v v =, j v S ∈,v S ?∈; ④ 存在1 i v +,使 1()min{()} i l v l v +=,v S ∈; ⑤ 1{} i S S v +=U , 1{} i S S v +=-,1i i =+,转②; 实际上,Dijkstra 算法也是最优化原理的应用:如果121n n v v v v -L 是从1v 到 n v 的最 短路径,则 121 n v v v -L 也必然是从1v 到 1 n v -的最优路径。 在下面的MATLAB 实现代码中,我们用到了距离矩阵,矩阵第i 行第j 行元素表 示顶点i v 到j v 的权ij w ,若i v 到j v 无边,则realmax ij w =,其中realmax 是MATLAB 常量,表示最大的实数+308)。 function re=Dijkstra(ma) %用Dijkstra 算法求单源最短路径 %输入参量ma 是距离矩阵 %输出参量是一个三行n 列矩阵,每列表示顶点号及顶点到源的最短距离和前顶点 n=size(ma,1);%得到距离矩阵的维数 s=ones(1,n);s(1)=0;%标记集合S 和S 的补 r=zeros(3,n);r(1,:)=1:n;r(2,2:end)=realmax;%初始化 for i=2:n;%控制循环次数 mm=realmax; for j=find(s==0);%集合S 中的顶点 for k=find(s==1);%集合S 补中的顶点

Matlab简单实例学习

Matlab 程序代码 绘制y = 10e-1.5t sin( 7.75t ) 的函数图象 7.75 fv clear; t=0:0.02:10; f1=10/sqrt(7.75).*exp(-1.5*t); f2=sin(sqrt(7.75).*t); y=f1.*f2; plot(t,y,'-k',t,y,'ok'); xlabel('t');ylabel('y(t) ');title('函数图像') axis([-2 10 -0.5 2]) 拉氏变换 clear; clc; syms s t fs1 fs2 fs3 ft1 ft2 ft3; L=1,C=0.1,R=[1.5 3 5]; h1=1/(L*C*s^2+R(1)*C*s+1); h2=1/(L*C*s^2+R(2)*C*s+1); h3=1/(L*C*s^2+R(3)*C*s+1); fs1=h1*(1/s); fs2=h2*(1/s); fs3=h3*(1/s);

ft1=ilaplace(fs1,s,t); ft2=ilaplace(fs2,s,t); ft3=ilaplace(fs3,s,t); ezplot(t,ft1); hold on; ezplot(t,ft2); hold on; ezplot(t,ft3); 信号编码 对[1 1 0 1 1 1 0 1 0 0 1]进行编码。 clear; clc; c=[1 1 0 1 1 1 0 1 0 0 1] for i=1:length(c) if i==1 d1(i)=0;d2(i)=0; elseif i==2 d1(i)=c(i-1);d2(i)=c(i-1); elseif i==3 d1(i)=mod(c(i-1)+c(i-2),2); d2(i)=c(i-1); else d1(i)=mod(c(i-1)+c(i-2),2); d2(i)=mod(c(i-1)+c(i-3),2); end

matlab函数计算的一些简单例子1

MATLAB作业一1、试求出如下极限。 (1) 23 25 (2)(3) lim (5) x x x x x x x ++ + →∞ ++ + ,(2) 23 3 1 2 lim () x y x y xy x y →- → + + ,(3) 22 22 22 1cos() lim ()x y x y x y x y e+ → → -+ + 解:(1)syms x; f=((x+2)^(x+2))*((x+3)^(x+3))/((x+5)^(2*x+5)) limit(f,x,inf) =exp(-5) (2)syms x y; f=(x^2*y+x*y^3)/(x+y)^3; limit(limit(f,x,-1),y,2) =-6; (3)syms x y; f=(1-cos(x^2+y^2))/(x^2+y^2)*exp(x^2+y^2); limit(limit(f,x,0),y,0) =0 2、试求出下面函数的导数。 (1 )() y x=, (2)22 atan ln() y x y x =+ 解; (1)syms x; f=sqrt(x*sin(x)*sqrt(1-exp(x))); g= diff(f,x); g== (sin(x)*(1 - exp(x))^(1/2) + x*cos(x)*(1 - exp(x))^(1/2) - (x*exp(x)*sin(x))/(2*(1 - exp(x))^(1/2)))/(2*(x*sin(x)*(1 - exp(x))^(1/2))^(1/2)) pretty(g)= (2)syms x y; f=atan(y/x)-log(x^2+y^2) pretty(-simple(diff(f,x)/diff(f,y)))= 2 x + y =------- x - 2 y (3) 假设1 cos u- =,试验证 22 u u x y y x ?? = ???? 。 解:syms x y; u=1/cos(sqrt(x/y)); diff(diff(u,x),y)-diff(diff(u,y),x)=0; 所以: 22 u u x y y x ?? = ????

matlab程序设计实例

MATLAB 程序设计方法及若干程序实例 樊双喜 (河南大学数学与 信息科学学院开封475004) 摘要本文通过对 MATLAB 程序设计中的若干典型问题做简要的分析和总结,并在此基础上着重讨论了有关算法设计、程序的调试与测试、算法与程序的优化以及循环控制等方面的问题.还通过对一些程序实例做具体解析,来方便读者进行编程训练并掌握一些有关MATLAB 程序设计方面的基本概念、基本方法以及某些问题的处理技巧等.此外,在文章的最后还给出了几个常用数学方法的算法程序, 供读者参考使用.希望能对初学者进行 MATLAB 编程训练提供一些可供参考的材料,并起到一定的指导和激励作用,进而为MATLAB 编程入门打下好的基础. 关键字算法设计;程序调试与测试;程序优化;循环控制 1 算法与程序 1.1 算法与程序的关系算法被称为程序的灵魂,因此在介绍程序之前应先了 解什么是算法.所谓算 法就是对特定问题求解步骤的一种描述.对于一个较复杂的计算或是数据处理的问题,通常是先设计出在理论上可行的算法,即程序的操作步骤,然后再按照算法逐步翻译成相应的程序语言,即计算机可识别的语言. 所谓程序设计,就是使用在计算机上可执行的程序代码来有效的描述用于解决特定问题算法的过程.简单来说,程序就是指令的集合.结构化程序设计由于采用了模块分化与功能分解,自顶向下,即分而治之的方法,因而可将一个较复杂的问题分解为若干子问题,逐步求精.算法是操作的过程,而程序结构和程序流程则是算法的具体体现. 1.2MATLAB 语言的特点 MATLAB 语言简洁紧凑,使用方便灵活,库函数极其丰富,其语法规则与科技人员的思维和书写习惯相近,便于操作.MATLAB 程序书写形式自由,利用其丰富

matlab仿真实例

matlab 仿真实例 实验五MATLAB 及仿真实验一、控制系统的时域分析 (一)稳定性 1、系统传递函数为G(s),试判断其稳定性。 程序: >> nu m=[3,2,5,4,6]; >> den=[1,3,4,2,7,2]; >> sys=tf( nu m,de n); >> figure(1); >> pzmap(sys); >> title(' 零极点图') 由图可知:在S 右半平面有极点,因此可知系统是不稳定的。 2、用MATLA 求 出 G(s)=(s A 2+2*s+2)/(s A 4+7*s A 3+5*s+2) 的极点。 程序及结果: >> sys=tf([1,2,2],[1,7,3,5,2]); >> p=pole(sys) 矿'. 赳 _ ■ —

-6.6553 0.0327 + 0.8555i 0.0327 - 0.8555i -0.4100 (二)阶跃响应 1、二阶系统G(s)=10/s A2+2*s+10 1)键入程序,观察并记录单位阶跃响应曲线: 程序: >> sys=tf(10,[1,2,10]); >> step(sys); >> title('G(s)=10/sA2+2*s+10 单位阶跃响应曲线') 2)计算系统闭环跟、阻尼比、无阻尼振荡频率,并记录程序及结果: >> sys=tf(10,[1,2,10]); >> p=pole(sys)

p = -1.0000 + 3.0000i -1.0000 - 3.0000i >> [wn,z]=damp(sys) wn = 3.1623 3.1623 z = 0.3162 0.3162 3)记录实际测取的峰值大小,峰值时间和过渡过程时间,并填表实际值理论值峰值Cmax 1.35s 峰值时间tp 1.05s 过渡时间+5% 3.54s ts +2% 3.18s 程序: >> sys=tf(10,[1,2,10]); >> step(sys); >> title('G(s)=10/sA2+2*s+10 单位阶跃响应曲线')

相关文档