文档视界 最新最全的文档下载
当前位置:文档视界 › ISM模型的matlab实现

ISM模型的matlab实现

ISM模型的matlab实现
ISM模型的matlab实现

ISM模型的matlab实现

1、可达矩阵的求解

A:邻接矩阵

E=zeros(A);

通过布尔运算求出A^2、A^3…直至A^n=A^n-1,停止运算,此时的A^n便是要求的可达矩阵。

具体实施:

通过将上次循环得出来的A赋给E,并判断新一轮循环得出的A是否与E相等,决定是否终止循环。循环终止意味着此时的A就是最终的可达矩阵。

具体程序如下:

n=input('请输入矩阵维数:');

A=input('请输入邻接矩阵:');

E=zeros(n);

B=A;

while(norm(A-E)>0)

E=A;

for i=1:n

for j=1:n

for k=1:n

if A(i,k)&B(k,j)

A(i,j)=1;

end

end

end

end

end

A

2、区域划分

找出各个元素相对应的可达集P、先行集Q以及两者的交集S

求解P:找出每一行中元素为1对应的列

求解Q:找出每一列中元素为1对应的行

求解S:套用Matlab本身自带的函数S=intersect(P,Q);

或者编写M文件函数,如下所示:

具体程序如下:

for i=1:n

P=find(A(i,:));

Q=find(A(:,i));

S=intersect(P,Q);

P;

Q;

S;

3、级别划分

因为S是P与Q的交集,所以只需判断P与S的长度是否相等便可进行级别划分。

M=zeros(n);

r=1;r为第几级

求出每个元素的P、Q、S,再将相应的对角线元素A(i,i)赋予0,通过查找对角线为0

的元素位置将所对应的行列均赋值0。每次循环r自增1,再进行循环,求出每一级的元素,直至A==M。

具体程序如下:

r=1;

M=zeros(n);

while(~isequal(A,M))

for i=1:n

P=find(A(i,:));

Q=find(A(:,i));

S=intersect(P,Q);

P;

Q;

S;

if(~isempty(P)&~isempty(Q)&( length(P)==length(S))

disp('第r级:')

r

disp('元素为')

i

A(i,i)=0;

end

end

for i=1:n

if A(i,i)==0

A(i,:)=0;

A(:,i)=0;

end

end

r=r+1;

end

4.课本例题程序验证

请输入矩阵维数:7

请输入邻接矩阵:

1 1 1 0 1 1 0

0 1 0 0 1 1 0

0 1 1 0 1 1 0

0 1 1 1 1 1 0

0 0 0 0 1 0 0

0 1 0 0 1 1 0

0 1 1 0 1 1 1

第r 级:r = 1,元素为i =5

第r级:r =2,元素为i =2 第r级:r = 2,元素为i =6 第r级:r =3,元素为i =3 第r级:r =4,元素为i =1 第r级:r =4,元素为i =4 第r级:r = 4,元素为i =7

交通流中的nasch模型及matlab代码元胞自动机

元胞自动机NaSch模型及其MATLAB代码 作业要求 根据前面的介绍,对NaSch模型编程并进行数值模拟: ●模型参数取值:Lroad=1000,p=0.3,Vmax=5。 ●边界条件:周期性边界。 ●数据统计:扔掉前50000个时间步,对后50000个时间步进行统计,需给出的 结果。 ●基本图(流量-密度关系):需整个密度范围内的。 ●时空图(横坐标为空间,纵坐标为时间,密度和文献中时空图保持一致, 画 500个时间步即可)。 ●指出NaSch模型的创新之处,找出NaSch模型的不足,并给出自己的改进思 路。 ●流量计算方法: 密度=车辆数/路长; 流量flux=density×V_ave。 在道路的某处设置虚拟探测计算统计时间T内通过的车辆数N; 流量flux=N/T。 ●在计算过程中可都使用无量纲的变量。 1、NaSch模型的介绍 作为对184号规则的推广,Nagel和Schreckberg在1992年提出了一个模拟车辆交通的元胞自动机模型,即NaSch模型(也有人称它为NaSch模型)。 ●时间、空间和车辆速度都被整数离散化。

● 道路被划分为等距离的离散的格子,即元胞。 ● 每个元胞或者是空的,或者被一辆车所占据。 ● 车辆的速度可以在(0~Vmax )之间取值。 2、NaSch 模型运行规则 在时刻t 到时刻t+1的过程中按照下面的规则进行更新: (1)加速:),1min(max v v v n n +→ 规则(1)反映了司机倾向于以尽可能大的速度行驶的特点。 (2)减速:),min(n n n d v v → 规则(2)确保车辆不会与前车发生碰撞。 (3)随机慢化: 以随机概率p 进行慢化,令:)0, 1-min(n n v v → 规则(3)引入随机慢化来体现驾驶员的行为差异,这样既可以反映随机加速行为, 又可以反映减速过程中的过度反应行为。这一规则也是堵塞自发产生的至关重要因素。 (4)位置更新:n n n v x v +→ ,车辆按照更新后的速度向前运动。 其中n v ,n x 分别表示第n 辆车位置和速度;l (l ≥1)为车辆长度; 11--=+n n n x x d 表示n 车和前车n+1之间空的元胞数;p 表示随机慢化概率;max v 为最大速度。 3、NaSch 模型实例 根据题目要求,模型参数取值:L=1000,p=0.3,Vmax=5,用matlab 软件进行编程,扔掉前11000个时间步,统计了之后500个时间步数据,得到如下基本图和时空图。 3.1程序简介 初始化:在路段上,随机分配200个车辆,且随机速度为1-5之间。 图3.1.1是程序的运行图,图3.1.2中,白色表示有车,黑色是元胞。

Matlab实验报告五(微分方程求解Euler折线法)-推荐下载

数学与信息科学系实验报告 实验名称微分方程求解 所属课程数学软件与实验 实验类型综合型实验 专业信息与计算科学 班级 学号姓名指导教师 吊 顶 到 位 。 连 接 管 半 径 标 式 , 为备 , 查 所 有 试 卷 设 备 进 电 保 护 试 卷 ; 对 整 置 技 术 限 度 内 卷 破 避 免 错 中 资 料

一、实验概述 【实验目的】 熟悉在Matlab 环境下求解常微分方程组和偏微分方程组的方法,掌握利用Matlab 软件进行常微分方程组和偏微分方程组的求解。 【实验原理】 1.dsolve(‘equ1’,’equ2’,...):matlab 求微分方程的解析解。 2.simplify(s):对表达式S 使用MAPLE 的化简规则进行化简。 3.[x,y]=dslove(‘方程1’,‘方程2’,...‘初始条件1’‘初始条件2’,..’自变量’):用字符串方程表示,自变量缺省值为t. 4.ezplot(x,y,[tmin,tmax]):符号函数的作图命令。【实验环境】 MatlabR2010b 二、实验内容 问题1. 求微分方程组在初始条件下的解,并 00dx x y dt dy x y dt ?++=????+-=??00|1,|0t t x y ====[0,0.5]t ∈画出函数的图像. ()y f x =1.分析问题 本题是根据初始条件求微分方程组的特解,并根据t 的范围画出函数的图形。 2.问题求解 syms x y t [x,y]=dsolve('Dx+x+y=0','Dy+x-y=0','x(0)=1','y(0)=0','t')x=simple(x)y=simple(y) ezplot(x,y,[0,0.5]);axis auto 3.结果 x = exp(2^(1/2)*t)/2 + 1/(2*exp(2^(1/2)*t)) - (2^(1/2)*exp(2^(1/2)*t))/4 + 2^(1/2)/(4*exp(2^(1/2)*t)) y = 2^(1/2)/(4*exp(2^(1/2)*t)) - (2^(1/2)*exp(2^(1/2)*t))/4 x = cosh(2^(1/2)*t) - (2^(1/2)*sinh(2^(1/2)*t))/2 、管路敷设技术通过管线不仅可以解决吊顶层配置不规范高中资料试卷问题,而且可保障各类管路习题到位。在管路敷设过程中,要加强看护关于管路高中资料试卷连接管口处理高中资料试卷弯扁度固定盒位置保护层防腐跨接地线弯曲半径标高等,要求技术交底。管线敷设技术包含线槽、管架等多项方式,为解决高中语文电气课件中管壁薄、接口不严等问题,合理利用管线敷设技术。线缆敷设原则:在分线盒处,当不同电压回路交叉时,应采用金属隔板进行隔开处理;同一线槽内,强电回路须同时切断习题电源,线缆敷设完毕,要进行检查和检测处理。、电气课件中调试对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行 高中资料试卷调整试验;通电检查所有设备高中资料试卷相互作用与相互关系,根据生产工艺高中资料试卷要求,对电气设备进行空载与带负荷下高中资料试卷调控试验;对设备进行调整使其在正常工况下与过度工作下都可以正常工作;对于继电保护进行整核对定值,审核与校对图纸,编写复杂设备与装置高中资料试卷调试方案,编写重要设备高中资料试卷试验方案以及系统启动方案;对整套启动过程中高中资料试卷电气设备进行调试工作并且进行过关运行高中资料试卷技术指导。对于调试过程中高中资料试卷技术问题,作为调试人员,需要在事前掌握图纸资料、设备制造厂家出具高中资料试卷试验报告与相关技术资料,并且了解现场设备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。 、电气设备调试高中资料试卷技术电力保护装置调试技术,电力保护高中资料试卷配置技术是指机组在进行继电保护高中资料试卷总体配置时,需要在最大限度内来确保机组高中资料试卷安全,并且尽可能地缩小故障高中资料试卷破坏范围,或者对某些异常高中资料试卷工况进行自动处理,尤其要避免错误高中资料试卷保护装置动作,并且拒绝动作,来避免不必要高中资料试卷突然停机。因此,电力高中资料试卷保护装置调试技术,要求电力保护装置做到准确灵活。对于差动保护装置高中资料试卷调试技术是指发电机一变压器组在发生内部故障时,需要进行外部电源高中资料试卷切除从而采用高中资料试卷主要保护装置。

云模型matlab程序

1.绘制云图 Ex=18 En=2 He=0.2 hold on for i=1:1000 Enn=randn(1)*He+En; x(i)=randn(1)*Enn+Ex; y(i)=exp(-(x(i)-Ex)^2/(2*Enn^2)); plot(x(i),y(i),'*') end Ex=48.7 En=9.1 He=0.39 hold on for i=1:1000 Enn=randn(1)*He+En; x(i)=randn(1)*Enn+Ex; y(i)=exp(-(x(i)-Ex)^2/(2*Enn^2)); plot(x(i),y(i),'*')

end 2.求期望、熵及超熵 X1=[51.93 52.51 54.70 43.14 43.85 44.48 44.61 52.08]; Y1=[0.91169241573 0.921875 0.96032303371 0.75737359551 0.76983848315 0.7808988764 0.78318117978 0.9143258427]; m=8; Ex=mean(X1) En1=zeros(1,m); for i=1:m En1(1,i)=abs(X1(1,i)-Ex)/sqrt(-2*log(Y1(1,i))); end En=mean(En1); He=0; for i=1:m He=He+(En1(1,i)-En)^2; end En=mean(En1) He=sqrt(He/(m-1)) 3.平顶山so2环境: X1=[0.013 0.04 0.054 0.065 0.07 0.067 0.058 0.055 0.045]; Y1=[0.175675676 0.540540541 0.72972973 0.878378378

MATLAB改进欧拉法与四阶龙格-库塔求解一阶常微分方程

姓名:樊元君学号:02 日期: 一、实验目的 掌握MATLAB语言、C/C++语言编写计算程序的方法、掌握改进欧拉法与四阶龙格-库塔求解一阶常微分方程的初值问题。掌握使用MATLAB程序求解常微分方程问题的方法。 : 二、实验内容 1、分别写出改进欧拉法与四阶龙格-库塔求解的算法,编写程序上机调试出结果,要求所编程序适用于任何一阶常微分方程的数值解问题,即能解决这一类问题,而不是某一个问题。 实验中以下列数据验证程序的正确性。 求,步长h=。 * 2、实验注意事项 的精确解为,通过调整步长,观察结果的精度的变化 ^ )

三、程序流程图: ●改进欧拉格式流程图: ~ |

●四阶龙格库塔流程图: ] 四、源程序: ●改进后欧拉格式程序源代码: function [] = GJOL(h,x0,y0,X,Y) format long h=input('h='); … x0=input('x0='); y0=input('y0='); disp('输入的范围是:'); X=input('X=');Y=input('Y='); n=round((Y-X)/h); \

i=1;x1=0;yp=0;yc=0; for i=1:1:n x1=x0+h; yp=y0+h*(-x0*(y0)^2);%yp=y0+h*(y0-2*x0/y0);% · yc=y0+h*(-x1*(yp)^2);%yc=y0+h*(yp-2*x1/yp);% y1=(yp+yc)/2; x0=x1;y0=y1; y=2/(1+x0^2);%y=sqrt(1+2*x0);% fprintf('结果=%.3f,%.8f,%.8f\n',x1,y1,y); : end end ●四阶龙格库塔程序源代码: function [] = LGKT(h,x0,y0,X,Y) 。 format long h=input('h='); x0=input('x0='); y0=input('y0='); disp('输入的范围是:'); " X=input('X=');Y=input('Y='); n=round((Y-X)/h); i=1;x1=0;k1=0;k2=0;k3=0;k4=0; for i=1:1:n ~ x1=x0+h; k1=-x0*y0^2;%k1=y0-2*x0/y0;% k2=(-(x0+h/2)*(y0+h/2*k1)^2);%k2=(y0+h/2*k1)-2*(x0+h/2)/(y0+h/2*k1);% k3=(-(x0+h/2)*(y0+h/2*k2)^2);%k3=(y0+h/2*k2)-2*(x0+h/2)/(y0+h/2*k2);% k4=(-(x1)*(y0+h*k3)^2);%k4=(y0+h*k3)-2*(x1)/(y0+h*k3);% … y1=y0+h/6*(k1+2*k2+2*k3+k4);%y1=y0+h/6*(k1+2*k2+2*k3+k4);% x0=x1;y0=y1; y=2/(1+x0^2);%y=sqrt(1+2*x0);% fprintf('结果=%.3f,%.7f,%.7f\n',x1,y1,y); end · end

欧拉法matlab程序

法 function [x,y]=naeuler(dyfun,xspan,y0,h) x=xspan(1):h:xspan(2); y(1)=y0; for n=1:length(x)-1 y(n+1)=y(n)+h*feval(dyfun,x(n),y(n)); end x=x';y=y'; x1=0::1;y1=(1+2*x1).^; plot(x,y,x1,y1) >> dyfun=inline('y-2*x/y'); [x,y]=naeuler(dyfun,[0,1],1,;[x,y] ans = 2.隐式Euler法 function [x,y]=naeulerb(dyfun,xspan,y0,h) x=xspan(1):h:xspan(2); y(1)=y0; for n=1:length(x)-1 y(n+1)=iter(dyfun,x(n+1),y(n),h); end x=x';y=y'; x1=0::1;y1=(1+2*x1).^; plot(x,y,x1,y1) function y=iter(dyfun,x,y,h) y0=y;e=1e-4;K=1e+4; y=y+h*feval(dyfun,x,y); y1=y+2*e;k=1; while abs(y-y1)>e y1=y; y=y0+h*feval(dyfun,x,y); k=k+1; if k>K error('迭代发散'); end end >> dyfun=inline('y-2*x/y');

[x,y]=naeulerb(dyfun,[0,1],1,;[x,y] ans = 3.改进Euler法 function [x,y]=naeuler2(dyfun,xspan,y0,h) x=xspan(1):h:xspan(2); y(1)=y0; for n=1:length(x)-1 k1=feval(dyfun,x(n),y(n)); y(n+1)=y(n)+h*k1; k2=feval(dyfun,x(n+1),y(n+1)); y(n+1)=y(n)+h*(k1+k2)/2; end x=x';y=y'; x1=0::1;y1=(1+2*x1).^; plot(x,y,x1,y1) >> dyfun=inline('y-2*x/y'); [x,y]=naeuler2(dyfun,[0,1],1,;[x,y] ans =

DEA的Matlab程序(数据包络分析)

模型((P C2R)的MATLAB程序 clear X=[]; %用户输入多指标输入矩阵X Y=[]; %用户输入多指标输出矩阵Y n=size(X',1); m=size(X,1); s=size(Y,1); A=[-X' Y']; b=zeros(n, 1); LB=zeros(m+s,1); UB=[]; for i=1:n; f= [zeros(1,m) -Y(:,i)']; Aeq=[X(:,i)' zeros(1,s)]; beq=1; w(:,i)=LINPROG(f,A,b,Aeq,beq,LB,UB); %解线性规划,得DMU;的最佳权向量w; E(i, i)=Y(:,i)'*w(m+1:m+s,i); %求出DMU i的相对效率值E ii end w %输出最佳权向量 E %输出相对效率值E ii Omega=w(1:m,:) %输出投入权向量。 mu=w(m+1:m+s,:) %输出产出权向量。 模型(D C2R)的MATLAB程序 clear X=[]; %用户输入多指标输入矩阵X Y=[]; %用户输入多指标输出矩阵Y n=size(X',1); m=size(X,1); s=size(Y,1); epsilon=10^-10; %定义非阿基米德无穷小 =10-10 f=[zeros(1,n) -epsilon*ones(1,m+s) 1]; %目标函数的系数矩阵: 的系数为0,s-,s+的系数为- e, 的系数为1; A=zeros(1,n+m+s+1); b=0; %<=约束; LB=zeros(n+m+s+1,1); UB=[]; %变量约束; LB(n+m+s+1)= -Inf; %-Inf表示下限为负无穷大。 for i=1:n; Aeq=[X eye(m) zeros(m,s) -X(:,i) Y zeros(s,m) -eye(s) zeros(s,1)]; beq=[zeros(m, 1 ) Y(:,i)]; w(:,i)=LINPROG (f,A,b,Aeq,beq,LB,UB); %解线性规划,得DMU的最佳权向量w; end w %输出最佳权向量 lambda=w(1:n,:) %输出 s_minus=w(n+1:n+m,:) %输出s- s_plus=w(n+m+1:n+m+s,:) %输出s+ theta=w(n+m+s+1,:) %输出

欧拉算法与改进的欧拉算法实例

题目再现: 2. 当病人采取服用口服药或肌肉注射来治疗疾病时,药物虽然瞬间进入了体内,但它一般都集中与身体的某一部位,靠其表面与肌体接触而逐步被吸收。假定身体系统是一个单房室系统,设t 时刻体内药物的总量为x(t),则x(t)满足: 问题分析:运用欧拉公式求微分方程的数值解。微分方程为: 11dx ,(0)0dt k t k De kx x -=-= 1,欧拉折线法: 设h=0.1,即n=201时,1k 0.6=,k 0.2=,D=200.MATLAB 程序如下所示: clear f=sym('0.6*200*exp(-1*0.6*t)-0.2*x '); a=0; b=20; h=0.1; n=(b-a)/h+1; t=0; x=0; szj=[t,x]; for i=1:n-1 11dx ,(0)0 dt k t k De kx x -=-=10011100 ,(,)()k t k k k k k k k t x x x h f t x x h k De kx t t h -++==??=+=+-??=+?

x=x+h*subs(f,{'t','x'},{t,x}); t=t+h; szj=[szj;t,x]; end szj ; x=dsolve(‘Dx=120*exp(-0.6*t)-0.2*x’,'x(0)=0','t') T=[0:0.1:20]; X=subs(x,T); plot(szj(:,1),szj(:,2),'or-',T,X,’b-’) 输出结果为: 解析解:x= 其中红线代表的是数值解,蓝线代表的是解析解。可见,数值解的误差还是比较小的。

实验一 用MATLAB处理系统数学模型

实验一用MATLAB处理系统数学模型 一、实验原理 表述线性定常系统的数学模型主要有微分方程、传递函数、动态结构图等.求拉氏变换可用函数laplace(ft,t,s),求拉式反变换可用函数illaplace(Fs,s,t);有关多项式计算的函数主要有roots(p),ploy(r),conv(p,q),ployval(n,s);求解微分方程可采用指令 s=dslove(‘a_1’,’a_2’,’···,’a_n’);建立传递函数时,将传递函数的分子、分母多项式的系数写成两个向量,然后用tf()函数来给出,还可以建立零、极点形式的传递函数,采用的函数为zpk(z,p,k);可用函数sys=series(sys1,sys2)来实现串联,用 sys=parallel(sys1,sys2)来实现并联,可用函数sys=feedback(sys1,sys2,sign)来实现系统的反馈连接,其中sign用来定义反馈形式,如果为正反馈,则sign=+1,如果为负反馈,则sign=-1。 二、实验目的 通过MATLAB软件对微分方程、传递函数和动态结构图等进行处理,观察并分析实验结果。 三、实验环境 MATLAB2012b 四、实验步骤 1、拉氏变换 syms s t; ft=t^2+2*t+2; st=laplace(ft,t,s) 2、拉式反变换 syms s t; Fs=(s+6)/(s^2+4*s+3)/(s+2); ft=ilaplace(Fs,s,t) 3、多项式求根 p=[1 3 0 4]; r=roots(p) p=poly(r) 4、多项式相乘 p=[ 3 2 1 ];q=[ 1 4];

欧拉图fluery算法matlab

clear all A=zeros(16); for i=1:16 %A(i,i)=1/2; if i+1<=16 && mod(i,4)~=0 A(i,i+1)=1; end if i+4<=16 A(i,i+4)=1; end end A(2,5)=1; A(3,8)=1; A(9,14)=1; A(12,15)=1; % A(1,6)=1; % A(6,11)=1; % A(11,16)=1; % A(16,1)=1; A=A+A'; [T3 c3]=Fleuf2(A); pos3(1:2,1)=0; for i=1:16 if i==1, pos3(1:2,i)=0; else if mod(i-1,4)~=0 pos3(1,i)=pos3(1,i-1)+1; pos3(2,i)=pos3(2,i-1); else pos3(1,i)=pos3(1,i-4); pos3(2,i)=pos3(2,i-4)-1; end end end figure (1), title('3rd Question')

for j=i:16 if A(i,j)==1, plot([pos3(1,i),pos3(1,j)],[pos3(2,i),pos3(2,j)]); hold on, end end end for i=2:c3 draw_arrow(pos3(:,T3(1,i))',pos3(:,T3(2,i))',0.5) x = mean(pos3(1,T3(:,i))); y = mean(pos3(2,T3(:,i))) text(x,y,num2str(i),'FontSize',18); pause; end pause off; hold off function [T c]=Fleuf1(d) n = length(d); b = d; b(b == Inf)=0; b(b~=0) = 1; m = 0; a = sum(b); eds = sum(a)/2; ed = zeros(2,eds); vexs = zeros(1,eds+1); matr = b; for i=1:n if mod(a(i),2) ==1 m = m+1; end end if m~=0 fprintf('there is not exist Euler path.\n'); T=0;c=0; end if m==0

云模型简介及个人理解matlab程序

云模型简介及个人理解m a t l a b程序 集团档案编码:[YTTR-YTPT28-YTNTL98-UYTYNN08]

随着不确定性研究的深入,越来越多的科学家相信,不确定性是这个世界的魅力所在,只有不确定性本身才是确定的。在众多的不确定性中,和是最基本的。针对和在处理不确定性方面的不足,1995年我国工程院院士教授在概率论和模糊数学的基础上提出了云的概念,并研究了模糊性和随机性及两者之间的关联性。自李德毅院士等人提出云模型至今,云模型已成功的应用到、、、智能控制、等众多领域. 设是一个普通集合。 , 称为论域。关于论域中的模糊集合,是指对于任意元素都存在一个有稳定倾向的随机数,叫做对的隶属度。如果论域中的元素是简单有序的,则可以看作是基础变量,隶属度在上的分布叫做隶属云;如果论域中的元素不是简单有序的,而根据某个法则,可将映射到另一个有序的论域上,中的一个且只有一个和对应,则为基础变量,隶属度在上的分布叫做隶属云[1] 。 数字特征

云模型表示自然语言中的基元——语言值,用云的数字特征——期望Ex,熵En和超熵He表示语言值的数学性质 [3] 。 期望 Ex:云滴在论域空间分布的期望,是最能够代表定性概念的点,是这个概念量化的最典型样本。 熵 En:“熵”这一概念最初是作为描述热力学的一个状态参量,此后又被引入统计物理学、信息论、复杂系统等,用以度量不确定的程度。在云模型中,熵代表定性概念的可度量粒度,熵越大,通常概念越宏观,也是定性概念不确定性的度量,由概念的随机性和模糊性共同决定。一方面, En是定性概念随机性的度量,反映了能够代表这个定性概念的云滴的离散程度;另一方面,又是定性概念亦此亦彼性的度量,反映了在论域空间可被概念接受的云滴的取值范围。用同一个数字特征来反映随机性和模糊性,也必然反映他们之间的关联性。 超熵 He:熵的不确定性度量,即熵的熵,由熵的随机性和模糊性共同决定。反映了每个数值隶属这个语言值程度的凝聚性,即云滴的凝聚程度。超熵越大,云的离散程度越大,隶属度的随机性也随之增大,云的厚度也越大。

用matlab实现碰撞模型程序代码

用m a t l a b实现碰撞模型程序代码 标准化工作室编码[XX968T-XX89628-XJ668-XT689N]

c l c; clear; fill([6,7,7,6],[5,5,0,0],[0,0.5,0]);%右边竖条的填充 holdon;%保持当前图形及轴系的所有特性 fill([2,6,6,2],[3,3,0,0],[0,0.5,0]);%左边竖条的填充 holdon;%保持当前图形及轴系的所有特性 t1=0:pi/60:pi; plot(4-2*sin(t1-pi/2),5-2*cos(t1-pi/2));%绘制中间的凹弧图形gridon;%添加网格线 axis([0,9,0,9]);%定义坐标轴的比例% axis('off');%关闭所有轴标注,标记,背景 fill([1,2,2,1],[5,5,0,0],[0,0.5,0]);%中间长方形的填充 holdon;%保持当前图形及轴系的所有特性 title('碰撞');%定义图题 x0=6; y0=5; head1=line(x0,y0,'color','r','linestyle','.','erasemode','xor','marke rsize',30); head2=line(x0,y0,'color','r','linestyle','.','erasemode','xor','marke rsize',50);%设置小球颜色,大小,线条的擦拭方式 t=0;%设置小球的初始值 dt=0.001;%设置运动周期 t1=0;%设置大球的初始值 dt1=0.001; while1%条件表达式 t=t+dt; x1=9-1*t; y1=5; x3=6; y3=5; ift>0 x2=6; y2=5;%设置小球的运动轨迹 end ift>2.8 t=t+dt; a=sin(t-3); x1=6.1; y1=5.1; x3=4-2*sin(1.5*a); y3=5-2*cos(1.5*a);%设置大球的运动轨迹 end

欧拉法matlab程序学习课件.doc

1.Euler法 function [x,y]=naeuler(dyfun,xspan,y0,h) x=xspan(1):h:xspan(2); y(1)=y0; for n=1:length(x)-1 y(n+1)=y(n)+h*feval(dyfun,x(n),y(n)); end x=x';y=y'; x1=0:0.2:1;y1=(1+2*x1).^0.5; plot(x,y,x1,y1) >> dyfun=inline('y-2*x/y'); [x,y]=naeuler(dyfun,[0,1],1,0.2);[x,y] ans = 0 1.0000 0.2000 1.2000 0.4000 1.3733 0.6000 1.5315 0.8000 1.6811 1.0000 1.8269 2.隐式Euler法 function [x,y]=naeulerb(dyfun,xspan,y0,h) x=xspan(1):h:xspan(2); y(1)=y0; for n=1:length(x)-1 y(n+1)=iter(dyfun,x(n+1),y(n),h); end x=x';y=y'; x1=0:0.2:1;y1=(1+2*x1).^0.5;

plot(x,y,x1,y1) function y=iter(dyfun,x,y,h) y0=y;e=1e-4;K=1e+4; y=y+h*feval(dyfun,x,y); y1=y+2*e;k=1; while abs(y-y1)>e y1=y; y=y0+h*feval(dyfun,x,y); k=k+1; if k>K error('迭代发散'); end end >> dyfun=inline('y-2*x/y'); [x,y]=naeulerb(dyfun,[0,1],1,0.2);[x,y] ans = 0 1.0000 0.2000 1.1641 0.4000 1.3014 0.6000 1.4146 0.8000 1.5019 1.0000 1.5561 3.改进Euler法 function [x,y]=naeuler2(dyfun,xspan,y0,h) x=xspan(1):h:xspan(2); y(1)=y0; for n=1:length(x)-1 k1=feval(dyfun,x(n),y(n)); y(n+1)=y(n)+h*k1; k2=feval(dyfun,x(n+1),y(n+1));

实验五 欧拉法Matlab实验报告

北京理工大学珠海学院实验报告 ZHUHAI CAMPAUS OF BEIJING INSTITUTE OF TECHNOLOGY 班级2012电气2班学号120109021010姓名陈冲指导教师张凯成绩 实验题目(实验五)欧拉法实验地点及时间JD501 2014/1/2(6-7节) 一、实验目的 1.掌握用程序语言来编辑函数。 2.学会用MATLAB编写Euler.m以及TranEuler.m函数。 二、实验环境 Matlab软件 三、实验内容 1、以书中第124页题目11为例编辑程序来实现计算结果。 2、使用MATLAB进行编写: 第一步:编写Euler.m函数,代码如下 编写TranEuler.m函数,代码如下 第二步:利用上述函数编辑命令:(可见实验结果中的截图)

在此之前先建立一个名为f.m 的M 文件,代码如下 function z=f(x); z=8-3y; 再编辑代码: 得到了欧拉法的结果:y (0.4)=2.47838030901267 编辑另一段命令: 得到改进欧拉法的结果:y (0.4)=2.46543714659780 在此基础上,我还编辑龙格库达的命令窗口代码,如下: 四、实验题目 用欧拉法和改进欧拉法求解初值问题'83,(0)2y y y =-=,试取步长0.2h =计算(0.4)y 的近似值。 五、实验结果

六、总结 通过这次实验我掌握了将得到的解进一步精确,而且要学会比较这几种方法的精确性,显然,四阶龙格库达比改进欧拉发精确,改进欧拉发比欧拉法精确。 实验难度不大,要比较n的取值不同,产生的影响不同。

飞机碰撞模型

飞机碰撞模型 摘要 第六架在边长为160km的正方形区域内以的飞行角从坐标为(0,0)的点出发,在飞行过程中不与其它五架飞机发生碰撞,即在该区域内与其它任意飞机的距离大于8km,就要不断调整该飞机的飞行角度,使其任意时刻与其他飞机的距离大于8km,利用空间中点的距离定义,计算任意时刻该飞机与其他飞机的距离,找到调整角度的最小值为。 1、问题重述 在约10000km高空的某边长160km的正方形区域内,有5架飞机均以800km/h的速度作水平飞行,不碰撞的标准为在该区域内任意两架飞机的距离大于8km。现有5架飞机在区域内飞行且它们不会碰撞,其初始坐标和飞行方向由下表给出: 现有第6架飞机要进入该区域,坐标为(0,0),飞行角为,如果其与内部的5架飞机发生碰撞,就需要调整其飞行角度,请建立优化模型,确定其与内部5架飞机不碰撞的最小调整角。 2、基本假设 1、五架飞机在规定正方形区域飞行中不随意改变路线; 2、飞机在飞行中不考虑其他未知因素; 3、符号说明 :正方形区域的边长; :第i架飞机飞行的方向角度; :第六架飞机飞行过程中的调整角度; :第架、第架飞机的距离; :第架飞机在区域内飞行的路线长度; :第架飞机的飞行速度; :第架飞机在区域内的飞行时间; :第i架飞机的横坐标; :第i架飞机的纵坐标; 4、模型的建立与求解 1、模型的建立 先根据五架飞机起始点与终点坐标,在规定的网格区域内画出它们的飞行路线,再根据给出的区域长度与各架飞机飞行速度,计算出各架飞机在区域内的飞行时间, 再根据计算得出的时间,得出时刻各架飞机的坐标,求出在该时刻第六架飞机与其他五架飞机的距离 即 当<8时,此时就需要调整第六架飞机的飞行角度,使其与另外五架飞机

云模型简介及个人理解matlab程序文件

随着不确定性研究的深入,越来越多的科学家相信,不确定性是这个世界的魅力所在,只有不确定性本身才是确定的。在众多的不确定性中,随机性和模糊性是最基本的。针对概率论和模糊数学在处理不确定性方面的不足,1995年我国工程院院士李德毅教授在概率论和模糊数学的基础上提出了云的概念,并研究了模糊性和随机性及两者之间的关联性。自李德毅院士等人提出云模型至今,云模型已成功的应用到自然语言处理、数据挖掘、 设是一个普通集合。 , 称为论域。关于论域中的模糊集合,是指对于任意元素都存在一个有稳定倾向的随机数,叫做对的隶属度。如果论域中的元素是简单有序的,则可以看作是基础变量,隶属度在上的分布叫做隶属云;如果论域中的元素不是简单有序的,而根据某个法则,可将映射到另一个有序的论域上,中的一个且只有一个和对应,则为基础变量,隶属度在上的分布叫做隶属云[1] 。 数字特征 云模型表示自然语言中的基元——语言值,用云的数字特征

——期望Ex,熵En和超熵He表示语言值的数学性质[3] 。 期望 Ex:云滴在论域空间分布的期望,是最能够代表定性概念的点,是这个概念量化的最典型样本。 熵 En:“熵”这一概念最初是作为描述热力学的一个状态参量,此后又被引入统计物理学、信息论、复杂系统等,用以度量不确定的程度。在云模型中,熵代表定性概念的可度量粒度,熵越大,通常概念越宏观,也是定性概念不确定性的度量,由概念的随机性和模糊性共同决定。一方面, En是定性概念随机性的度量,反映了能够代表这个定性概念的云滴的离散程度;另一方面,又是定性概念亦此亦彼性的度量,反映了在论域空间可被概念接受的云滴的取值范围。用同一个数字特征来反映随机性和模糊性,也必然反映他们之间的关联性。 超熵 He:熵的不确定性度量,即熵的熵,由熵的随机性和模糊性共同决定。反映了每个数值隶属这个语言值程度的凝聚性,即云滴的凝聚程度。超熵越大,云的离散程度越大,隶属度的随机性也随之增大,云的厚度也越大。 1.绘制云图 Ex=18

matlab 欧拉算法 附截图

设系统方程为:y t y y /2)1(-=,1)0(=y ,用改进欧拉法求解各离散点y 的数值解,步长 10,1.0≤≤=t h ,解析解为t y 21+= 。 解:改进欧拉法 ),(1n n n p n y t hf y y +=+ )],(),([5.0111p n n n n n c n y t f y t f h y y +++++= 已知 n n n n n y t y y t f /2),(-= n n n n n n n p n y ht y h y t y h y y /2)1()/2(1-+=-+=+ 1 111111/5.0/)5.01()]/2()/2[(5.0+++++++-+-+=-+-+=n n n n n n n n n n n n n c n y ht hy y ht y h y t y y t y h y y 程序: h=0.1; t=0:h:1; N=length(t); y=ones(1,N); ey=ones(1,N); zy=ones(1,N); for k=1:N-1 y(1,k+1)=(1+h)*y(1,k)-(2*h*(k-1)/(N-1))./y(1,k);%预估公式 ey(1,k+1)=(1+h)*ey(1,k)-(2*h*(k-1)/(N-1))./ey(1,k);%欧拉公式 y(1,k+1)=(1+0.5*h)*y(1,k)-(h*(k-1)/(N-1))./y(1,k)+0.5*h*y(1,k+1)-(h*k/(N-1))./y(1,k+1);%改进欧拉 zy(1,k+1)=(1+2*k/(N-1)).^0.5;%解析解 end plot(t,zy,'-xk',t,y,':ob',t,ey,'-.*r','linewidth',1.0); xlabel('t'); ylabel('y'); 截图:

用matlab实现碰撞模型程序代码

clc; clear; fill([6,7,7,6],[5,5,0,0],[0,0.5,0]);%右边竖条的填充 hold on; %保持当前图形及轴系的所有特性 fill([2,6,6,2],[3,3,0,0],[0,0.5,0]);%左边竖条的填充 hold on;% 保持当前图形及轴系的所有特性 t1=0:pi/60:pi; plot(4-2*sin(t1-pi/2),5-2*cos(t1-pi/2));%绘制中间的凹弧图形 grid on;%添加网格线 axis([0,9,0,9]);%定义坐标轴的比例% axis('off');%关闭所有轴标注,标记,背景 fill([1,2,2,1],[5,5,0,0],[0,0.5,0]);%中间长方形的填充 hold on;% 保持当前图形及轴系的所有特性 title('碰撞');%定义图题 x0=6; y0=5; head1=line(x0,y0,'color','r','linestyle','.','erasemode','xor','markersize',30); head2=line(x0,y0,'color','r','linestyle','.','erasemode','xor','markersize',50); %设置小球颜色,大小,线条的擦拭方式 t=0;%设置小球的初始值 dt=0.001;%设置运动周期 t1=0;%设置大球的初始值 dt1=0.001; while 1%条件表达式 t=t+dt; x1=9-1*t; y1=5; x3=6; y3=5; if t>0 x2=6; y2=5;%设置小球的运动轨迹 end if t>2.8 t=t+dt; a=sin(t-3); x1=6.1; y1=5.1; x3=4-2*sin(1.5*a); y3=5-2*cos(1.5*a);%设置大球的运动轨迹

基于MATLAB的地震正演模型实现[1]

基于MATLAB的地震正演模型实现 贾跃玮 (中国地质大学(北京) 北京100083) 摘 要 人工合成地震正演模型是进行三维模型计算的基础。针对地震勘探的原理,本文运用MATLAB强大数学计算和图像可视化功能,对一个三层介质模型制作了人工合成地震记录。文章首先说明了地震记录形成的物理机制,然后介绍了地质模型的构造及参数选择,最后针对该具体地质模型制作了合成地震记录。 关键词 地震;MATLAB;正演 0引 言 地震勘探就是利用地下介质弹性和密度的差异,通过观测和分析大地对人工激发地震波的响应,推断地下岩层的性质和形态的地球物理方法。地震勘探是钻探前勘测石油与天然气资源的重要手段,在煤田和工程地质勘查、区域地质研究和地壳研究等方面,也得到广泛应用。 人工合成二维地震模型记录是各种复杂地震模型正演计算的基础,是对地震勘探经典理论的忠实实现。在实际工作中,针对具体地质构造进行二维地震模拟能够有效帮助地球物理工作者在地震剖面上识别各种地质现象。MATLAB环境集编程、画图于一体,特别适合人工合成地震记录的快速实现。因此,我们在MATLAB环境下设计了一个三层地质模型,并对该模型模拟了地震记录,旨在可视化地观察地震波场记录特征并验证地震褶积模型。 1地震记录形成的物理机制 在地震记录上看到的波形是地震子波叠加的结果,从地下许多反射界面发生反射时形成的地震子波,振幅大小决定于反射界面反射系数的绝对值,极性的正负决定于反射系数的正负,到达时间的先后取决于界面深度和覆盖层的波速。若地震子波波形用S(t)表示,反射系数是双程垂直反射旅行时t的函数,用R(t)表示,地震记录f(t)形成的物理过程在数学上就可表示为:f(t)=S(t)3R(t)=∫0T S(τ)R(t-τ)dτ 地震子波和反射系数资料常常不易取得,因此计算时常做这样一些假设: (1)地质模型的建立是来自大量观察实际地质结构的经验性归纳总结。 (2)为了模型建立和计算过程中突出理论数值,去除了一些干扰因素,对一切衰减、噪声都不进行考虑。 (3)地层在横向上均匀,纵向上是由大量具有不同弹性性质的薄层构成。 (4)地震子波以平面波形式垂直入射到界面,各薄层的反射子波与地震子波形状相同,只是振幅及极性不同。 (5)所有波的转换、吸收及绕射等能量损失都不考虑。 基于以上这些假设条件进行地震记录合就必须已知地震子波以及地层的反射系数,而反射系数又主要由地层的波阻抗反映,所以必须首先获取地层的速度和密度资料。 速度资料可通过连续速度测井获得,密度资料可从密度测井获得,得不到密度资料时,可近似假定密度不变,以速度曲线代替波阻抗曲线来计算反射系数。加德纳根据实际资料提出了一个由速度推算密度的经验公式: ρ=0.23V0.25 (速度单位:英尺/秒) 或 ρ=0.31V0.25 (速度单位:米/秒)

Euler法解微分方程-Matlab程序

%主程序main.m-----OK! clear; T=0.0; Y=zeros(3,1); Y(1)=1.0;Y(2)=1.0;Y(3)=1.0; H1=0.05;M=3;EPS=1.0e-05;%EPS精度要求M方程个数H1拟定的输出步长 for i=1:10 [X,Y]=euler1(T,H1,Y,M,EPS) T=T+H1; End %变步长euler方法 function [X,Y1]=euler1(T,H1,Y,M,EPS) %M-方程个数,EPS-精度,Y0-右端初值,T-自变量前一点值,H-步长 N=1;P=1+EPS;X=T;G=zeros(M,1); H=H1;%H-在程序中要改变的步长H1-主程序中确定的输出步长 for i=1:M C(i)=Y(i); end K1=zeros(M,1);K2=zeros(M,1);K3=zeros(M,1);K4=zeros(M,1); while P>=EPS %变步长积分一步(H1) for i=1:M G(i)=Y(i); Y(i)=C(i); end DT=H/N; T=X; %--变步长积分过程 for j=1:N K1=F(Y); K2=F(Y+H/2*K1'); K3=F(Y+H/2*K2'); K4=F(Y+H*K3'); for i=1:M Y(i)=Y(i)+H/6*(K1(i)+2*K2(i)+2*K3(i)+K4(i)); T=T+DT; end end %--------------------- P=0.0; for i=1:M Q=abs(Y(i)-G(i)); if Q>P

P=Q; end end H=H/2.0; N=N+N; end T=X; X=T+H1; Y1=Y; %右端函数值function D=F(y) D(1)=y(2); D(2)=-1*y(1); D(3)=y(3);

相关文档
相关文档 最新文档