卫星星下点matlab程序

卫星星下点matlab程序
卫星星下点matlab程序

我们对卫星星下点的代码做了点修改,把地球自转也考虑进去了。

卫星星下点的运行轨迹如下:

代码如下:(红色的为修改部分)

clc

close all

clear all

%% % % % % % % % % % % %

% % % % % 变量定义 % % % % % % % % % % % % % % % % % % % % % %

PI = 3.1415926;

W_EARTH = 7.29e-5;% 地球自转速度(rad)

GGC = 3.986e5;% 地心引力常数

N_T =10;% 实验观测周期数,可延长观察时间

% 轨道六根数

a = 20000;% 轨道长半轴(Km )

e = 0.3;% 轨道偏心率

i = 30 * PI/180;% 轨道倾角(rad )

w = 70 * PI/180;% 轨道近地点幅角(rad )

RAAN = 10 * PI/180;% 升交点赤经

T = 2 * PI * sqrt((a^3) / GGC);

050100150200

250300350400

卫星经度卫星纬度

% 轨道真近心角f(rad),由以下公式计算

Ts = 5;% 采样时间间隔(s)

t = [0:Ts:fix(N_T*T)];% 采样时间点

tp = 5400;

n = sqrt(GGC/a^3);% 卫星平运动速度(rad)

M = n * (t - tp);% 卫星平近点角(rad)

f = M + (2*e - e^3/4)*sin(M) + 1.25*e^2 * sin(2*M) +13/12 * e^3 * sin(3*M);% 轨道真近心角(rad)

%% % % % % % % % % % % % % % % % % 计算星下点轨迹% % % % % % % % % % % % % %

Rz_RAAN = [cos(RAAN) -sin(RAAN) 0 ; sin(RAAN) cos(RAAN) 0 ; 0 0 1];

Rz_w = [cos(w) -sin(w) 0 ; sin(w) cos(w) 0 ; 0 0 1];

Rx_i = [1 0 0 ; 0 cos(i) -sin(i) ; 0 sin(i) cos(i)];

R = a*(1-e^2)./(1+e*cos(f));% 卫星距地心的距离,考虑f离散值

r_sv = [R;R;R] .* [cos(f);sin(f);zeros(1,size(f,2))];% 卫星在轨道坐标系中的坐标

r_so = Rz_RAAN * Rx_i * Rz_w * r_sv;% 卫星在地心惯性坐标系中的坐标

x_so = r_so(1,:) ; y_so = r_so(2,:) ;z_so = r_so(3,:) ;% 卫星在地心惯性坐标系的分量

% 卫星纬度delta,大于零为北纬

delta = atan( z_so ./sqrt((x_so .^2+y_so .^2)) ) * 180/PI;

% 卫星经度alpha,大于180为西经

for m = 1:1:size(r_so,2)

if (r_so(1,m) < 0)

alpha(m) = 180 + atan(r_so(2,m)/r_so(1,m)) * 180/PI;

else

if (r_so(2,m)>0)

alpha(m) = atan(r_so(2,m)/r_so(1,m)) * 180/PI;

else

alpha(m) = 360 + atan(r_so(2,m)/r_so(1,m)) * 180/PI;

end

end

end

% 计算地心经度alpha1

alpha1 = rem((alpha - W_EARTH*t*180/PI + N_T*360),360);

plot(alpha1,delta,'.');grid; xlabel('卫星经度');ylabel('卫星纬度');

Matlab程序命令

Matlab程序命令(四)数据处理及空间自回归模型参数估计 一、教材实例 Matlab操作过程(注意:在进行空间计量模型参数估计时,要把空间计量软件包jplv7和fanzuan、lYhbzh函数添加到Matlab程序文件夹中,否则,所有与Matlab相关的程序、函数等都能够被Matlab识别并使用) %空间自回归模型设立 %移项、矩阵变换 %估计结果 (一)构造变量矩阵 y=[42;37;30;26;30;37;42] %7行1列矩阵 x=[10,30;20,20;30,10;50,0;30,10;20,20;10,30] %7行2列矩阵 (二)构建已经行标准化的空间权重矩阵 W=zeros(7) %建立7×7零矩阵 W(1,2)=1 %赋W第1行第2列为1的值 W(2,1)=0.5 %赋W第2行第1列为0.5的值 W(2,3) =0.5 %赋W第2行第3列为0.5的值 W(3,2) =0.5 %赋W第3行第2列为0.5的值 W(3,4) =0.5 %赋W第3行第4列为0.5的值 W(4,3) =0.5 %赋W第4行第3列为0.5的值 W(4,5) =0.5 %赋W第4行第5列为0.5的值 W(5,4) =0.5 %赋W第5行第4列为0.5的值 W(5,6) =0.5 %赋W第5行第6列为0.5的值 W(6,5) =0.5 %赋W第6行第5列为0.5的值 W(6,7) =0.5 %赋W第6行第7列为0.5的值 W(7,6) =1 %赋W第7行第6列为1的值 (三)估计空间自回归模型Matlab程序命令 results = sar(y,x,W) %估计估计空间自回归模型参数 prt(results) %格式化 二、教材实例(续) (一)引进函数lyhbzh的Matlab程序命令

一个简单的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) 复制代码

matlab运算函数与命令

Matlab符号运算介绍 Matlab符号运算是通过符号数学工具箱(Symbolic Math Toolbox)来实现的. Matlab符号运算(二) 符号对象的建立:sym 和syms 例: >> syms x y z >> x=sym('x'); >> y=sym('y'); >> z=sym('z'); 符号对象建立时可以附加属性: real,positive 和unreal >> k=sym('k','positive') >> x=sym('x','real') >> x=sym('x','unreal') 表明x 是实的 Matlab符号运算(二) 表明k 是正的 去掉x 的附加属性 符号表达式的建立 >> f2=sym('sin(x)+cos(x)') >> syms x >> f1=sin(x)+cos(x) >> f3='sin(x)+cos(x)' 用这种方法创建的符号表达式对空格很敏感,不要在字符间随意添加空格! Matlab符号运算(二) 推荐! 符号变量与符号常量 >> a=sym('a'); >> b=sym('5'); >> c=sym(5); b,c有区别吗 hint:help sym 相关函数 findsym: 查找符号表达式中的符号变量 findsym(f) 按字母顺序列出符号表达式 f 中的所有自由变量findsym(f,N) 列出f 中距离x 最近的N 个自由变量(i,j 除外) 默认自变量=findsym(f,1) Matlab符号运算(二) >> a=sym('a');x=sym('x');k=sym('3'); >> f=k*x+a; >> findsym(f) 例: ans=a,x

数字信号处理Matlab实现实例(推荐给学生)

数字信号处理Matlab 实现实例 第1章离散时间信号与系统 例1-1 用MATLAB计算序列{-2 0 1 –1 3}和序列{1 2 0 -1}的离散卷积。 解 MATLAB程序如下: a=[-2 0 1 -1 3]; b=[1 2 0 -1]; c=conv(a,b); M=length(c)-1; n=0:1:M; stem(n,c); xlabel('n'); ylabel('幅度'); 图1.1给出了卷积结果的图形,求得的结果存放在数组c中为:{-2 -4 1 3 1 5 1 -3}。 例1-2 用MATLAB计算差分方程 当输入序列为时的输出结果。 解 MATLAB程序如下: N=41; a=[0.8 -0.44 0.36 0.22]; b=[1 0.7 -0.45 -0.6]; x=[1 zeros(1,N-1)];

k=0:1:N-1; y=filter(a,b,x); stem(k,y) xlabel('n');ylabel('幅度') 图 1.2 给出了该差分方程的前41个样点的输出,即该系统的单位脉冲响应。 例1-3 用MATLAB 计算例1-2差分方程 所对应的系统函数的DTFT 。 解 例1-2差分方程所对应的系统函数为: 123 123 0.80.440.360.02()10.70.450.6z z z H z z z z -------++= +-- 其DTFT 为 23230.80.440.360.02()10.70.450.6j j j j j j j e e e H e e e e ωωωω ωωω--------++= +-- 用MATLAB 计算的程序如下: k=256; num=[0.8 -0.44 0.36 0.02]; den=[1 0.7 -0.45 -0.6]; w=0:pi/k:pi; h=freqz(num,den,w); subplot(2,2,1); plot(w/pi,real(h));grid title('实部') xlabel('\omega/\pi');ylabel('幅度')

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);

第1章 MATLAB

第1章MATLAB 7.x概述 MATLAB是目前世界上最流行的、应用最广泛的工程计算和仿真软件。MATLAB是Matrix Laboratory的缩写,它的产生是与数学计算紧密联系在一起的。MATLAB是一个交互式开发系统,其基本数据要素是矩阵。 本门课程以MATLAB 7.3和simulink 6.5版为平台进行全面地介绍。 1.1 MATLAB 7.3 简介 1.1.1 MATLAB的系统结构 MATLAB系统由MATLAB开发环境、MATLAB语言、MATLAB数学函数库、MATLAB图形处理系统和MATLAB应用程序接口(API)五大部分组成。 (1)MATLAB开发环境是一个集成的工作环境。 (2)MATLAB语言具有程序流程控制、函数、数据结构、输入输出和面向对象的编程特点,是基于矩阵/数组的语言。 (3)MATLAB的数学函数库包含了大量的计算算法。 (4)MATLAB的图形处理系统能够将二维和三维数组的数据用图形表示出来。 (5)MATLAB应用程序接口使MATLAB语言能与C或FORTRAN等其他编程语言进行交互。 1.1.2 MATLAB的特点 1. 运算功能强大 2. 编程效率高 3. 强大而智能化的作图功能 4. 可扩展性强 5. Simulink动态仿真功能 1.1.3 MATLAB工具箱 MATLAB的工具箱(Toolbox)是一个专业家族产品,工具箱实际上是MATLAB 的M文件和高级MATLAB语言的集合,用于解决某一方面的专门问题或实现某一类的新算法。 包括应用数学类、控制类、信号处理类等工具箱。 1.2 MATLAB 7.3的开发环境 1.2.1 MATLAB 7.3的环境设置 1.2.3 菜单和工具栏 1. 菜单 MATLAB 7.3还会根据不同的窗口,增加一些浮动菜单。 (1)File菜单 (2)Edit菜单 (3)Debug菜单 (4)Desktop菜单 (5)Windows菜单 (6)Help菜单 (7)开始菜单 在MATLAB操作界面的左下角有一个按钮,是MATLAB的快捷菜单。

常见的MATLAB绘图程序

常见的MATLAB绘图程序y=[3,7,9,1,5,2,8]; subplot(1,2,1),plot(y,'linewidth',2),grid x=[3,3,9;8,1,2;1,8,5;7,9,1]; subplot(1,2,2),plot(x),xlabel('x'),ylabel('y') grid on %极坐标曲线 theta=0:0.1:8*pi; polar(theta,cos(4*theta)+1/4) %对数坐标 x=0:0.1:2*pi; y=sin(x); semilogx(x,y); grid on %各种坐标系中 theta=0:0.1:6*pi; r=cos(theta/3)+1/9; subplot(2,2,1),polar(theta,r); subplot(2,2,2),plot(theta,r); subplot(2,3,4),semilogx(theta,r); subplot(2,3,5),semilogy(theta,r); subplot(2,3,6),loglog(theta,r); grid on %双y轴图形 x=0:0.01:5; y=exp(x); plotyy(x,y,x,y,'semilogy','plot'),grid grid on %复数数据 t=0:0.1:2*pi; x=sin(t); y=cos(t); z=x+i*y; plot(t,z),grid plot(z) grid on %二维图形处理 x=(0:0.1:2*pi)'; y1=2*exp(-0.5*x)*[1,-1]; y2=2*exp(-0.5*x).*sin(2*pi*x); x1=(0:12)/2; y3=2*exp(-0.5*x1).*sin(2*pi*x1);

matlab程序设计实例

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

matlab实验报告

Matlab实验报告 ——定积分的近似计算 学生姓名: 学号: 专业:数学与应用数学专业

数学实验报告 实验序号:1001114030 日期:2012年10月20日 班级应一姓名陈璐学号1001114030 实验名称:定积分的近似运算 问题背景描述: 利用牛顿—莱布尼茨公式虽然可以精确地计算定积分的值,但它仅适合于被积分函数的原函数能用初等函数表达出来的情形。如果这点办不到或不容易办到, 这就有必要考虑近似计算的方法。在定积分的很多应用问题中,被积函数甚至没 有解析表达式,可能只是一条实验记录曲线,或者是一组离散的采样值,这时只 能应用近似方法去计算相应的定积分。 实验目的: 本实验将主要研究定积分的三种近似计算算法:矩形法、梯形法、抛物线发。对于定积分的近似数值计算,Matlab有专门函数可用。 实验原理与数学模型: 1.sum(a):求数组a的和。 2.format long:长格式,即屏幕显示15位有效数字。 3.double():若输入的是字符则转化为相应的ASCII码;若输入的是整型数之则转化为 相应的实型数值。 4.quad():抛物线法求数值积分。格式:quad(fun,a,b)。此处的fun是函数,并且

为数值形式,所以使用*、/、^等运算时要在其前加上小数点。 5.trapz():梯形法求数值积分。格式:trapz(x,y)。其中x为带有步长的积分区间;y为数 值形式的运算。 6.fprintf(文件地址,格式,写入的变量):把数据写入指定文件。 7.syms 变量1变量2……:定义变量为符号。 8.sym('表达式'):将表达式定义为符号。 9.int(f,v,a,b):求f关于v积分,积分区间由a到b。 10.subs(f,'x',a):将a的值赋给符号表达式f中的x,并计算出值。若简单地使用subs (f),则将f的所有符号变量用可能的数值代入,并计算出值。 实验所用软件及版本:Matlab 7.0.1

多目标优化实例和matlab程序

NSGA-II 算法实例 目前的多目标优化算法有很多,Kalyanmoy Deb 的带精英策略的快速非支配排序遗传算法(NSGA-II)无疑是其中应用最为广泛也是最为成功的一种。本文用的算法是MATLAB 自带的函数gamultiobj ,该函数是基于NSGA-II 改进的一种多目标优化算法。 一、数值例子 多目标优化问题 42422 11211122124224212212112 12min (,)10min (,)55..55 f x x x x x x x x x f x x x x x x x x x s t x =-++-=-++-≤≤??-≤≤?二、Matlab 文件 1.适应值函数m 文件: function y=f(x) y(1)=x(1)^4-10*x(1)^2+x(1)*x(2)+x(2)^4-x(1)^2*x(2)^2; y(2)=x(2)^4-x(1)^2*x(2)^2+x(1)^4+x(1)*x(2);2.调用gamultiobj 函数,及参数设置: clear clc fitnessfcn=@f; %适应度函数句柄nvars=2; %变量个数lb=[-5,-5]; %下限ub=[5,5]; %上限A=[];b=[];%线性不等式约束 Aeq=[];beq=[];%线性等式约束 options=gaoptimset('paretoFraction',0.3,'populationsize',100,'generations',200,'stallGenLimit',200,'TolFun',1e-100,'PlotFcns',@gaplotpareto); %最优个体系数paretoFraction 为0.3;种群大小populationsize 为100,最大进化代数generations 为200, %停止代数stallGenLimit 为200,适应度函数偏差TolFun 设为1e-100,函数gaplotpareto :绘制Pareto 前端 [x,fval]=gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,options)

(第2章)MATLAB软件包使用精要

第2章MATLAB软件包使用精要 2.1 MATLAB通用命令介绍 2.1.1 管理命令与函数 一、指定搜索路径 path( ),addpath( ),rmpath( ):指定、增加、删除搜索路径。语法格式为: p=path:将搜索路径字符串值返回给字符串变量p path(‘newdir’):将搜索路径改变为字符串’newdir’指定的路径 rmpath(‘directory’):删除’directory’路径 addpath(‘directory’):增加’directory’路径 addpath(‘dir1’, ‘dir1’, ‘dir1’,…) addpath(…,‘-flag’):flag值为0或begin表示将目录加在原搜索路径之前;1或end表示将目录加在原搜索路径之后 二、doc命令:读入超文本文件 三、help命令:MATLAB函数和M文件的在线式帮助。语法格式为: helpl topic:topic为要取得帮助的主题,可省略topic。 四、type命令:在命令窗口显示文件内容。语法格式为: type filename:filename为文件名,缺省扩展名为“.m”。 五.what命令:列出给定目录下的所有M文件、MAT文件、MEX文件。语法格式为:what dirname:列出给定目录dirname下的上述文件,其中dirname可不用全部路径名称,可用最后一层或两层路径代替。 2.1.2 变量和工作空间管理命令与函数 一、工作空间的概念及操作 1.概念:当MATLAB启动后,系统自动在内存中开辟一块存储区域用于存储用户在MATLAB 命令窗口中定义的变量、运算结果和有关数据。此内存空间称为MATLAB的工作空间。 工作空间在MATLAB刚启动时为空,此后,用户所定义的变量、运算结果和有关数据均存储在该空间。但一旦退出系统,工作空间的内存将不再保留。为了能够将工作空间的内容长期保留下来,MATLAB为用户提供了将工作空间以MAT文件保存到磁盘的功能,具体步骤如下: (1)保存工作空间:单击MATLAB命令窗口菜单栏的文件(【File】)菜单, 选择【Save Worspace as】菜单选项。 (2)装载工作空间:单击MATLAB命令窗口菜单栏的文件(【File】)菜单, 选择【Save Worspace as】菜单选项,系统打开工作空间装载设置对话框。 在该对话框中选定已保存的工作空间的文件名,单击【打开】按钮,即可 将已保存的工作空间的内容装载到当前工作空间。 二、管理命令与函数 1.clear命令:清除内存中的对象。语法格式为: clear:清除工作空间中的全部变量

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

图论实验三个案例 单源最短路径问题 1.1 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 ?∈; ④ 存在1i v +,使1()min{()}i l v l v +=,v S ∈; ⑤ 1{}i S S v += ,1{}i S S v +=-,1i i =+,转②; 实际上,Dijkstra 算法也是最优化原理的应用:如果121n n v v v v - 是从1v 到n v 的最短路径,则121n v v v - 也必然是从1v 到1n v -的最优路径。 在下面的MATLAB 实现代码中,我们用到了距离矩阵,矩阵第i 行第j 行元素表示顶点i v 到 j v 的权 ij w ,若i v 到 j v 无边,则 realmax ij w =,其中realmax 是 MATLAB 常量,表示最大的实数(1.7977e+308)。 function re=Dijkstra(ma)

MATLAB中的绘图程序

MATLAB中的绘图程序 2011-03-25 12:45:48| 分类:matlab | 标签:绘图 matlab |字号大中小订阅 matlab中如何在指定一点画一个填充颜色的小圆 plot(1,1,'r.','markersize',50) §4.1二维作图 绘图命令plot绘制x-y坐标图;loglog命令绘制对数坐标图;semilogx和semilogy命令绘制半对数坐标图;polar命令绘制极坐标图. §4.1.1 基本形式 如果y是一个向量,那么plot(y)绘制一个y中元素的线性图.假设我们希望画出 y=[0., 0.48, 0.84, 1., 0.91, 6.14 ] 则用命令:plot(y) 它相当于命令:plot(x, y),其中x=[1,2,…,n]或x=[1;2;…;n],即向量y的下标编号, n为向量y 的长度 Matlab会产生一个图形窗口,显示如下图形,请注意:坐标x和y 是由计算机自动绘出的. 图4.1.1.1 plot([0.,0.48,0.84,1.,0.91,6.14]) 上面的图形没有加上x轴和y轴的标注,也没有标题.用xlabel,ylabel,title命令可以加上.如果x,y是同样长度的向量,plot(x,y)命令可画出相应的x元素与y元素的x-y坐标图.例:x=0:0.05:4*pi; y=sin(x); plot(x,y) grid on, title(' y=sin( x ) 曲线图' ) xlabel(' x = 0 : 0.05 : 4Pi ') 结果见下图.

图4.1.1.2 y=sin(x)的图形 表4.1.1.1 Matlab图形命令 §4.1.2 多重线 在一个单线图上,绘制多重线有三种办法. 第一种方法是利用plot的多变量方式绘制: plot(x1,y1,x2,y2,...,xn,yn) x1,y1,x2,y2,...,xn,yn是成对的向量,每一对x, y在图上产生如上方式的单线.多变量方式绘图是允许不同长度的向量显示在同一图形上. 第二种方法也是利用plot绘制,但加上hold on/off命令的配合: plot(x1,y1) hold on plot(x2,y2) hold off 第三种方法还是利用plot绘制,但代入矩阵: 如果plot用于两个变量plot(x,y),并且x,y是矩阵,则有以下情况: (1)如果y是矩阵,x是向量,plot(x,y)用不同的画线形式绘出y的行或列及相应的x向量,y的行或列的方向与x向量元素的值选择是相同的. (2)如果x是矩阵,y是向量,则除了x向量的线族及相应的y向量外,以上的规则也适用.(3)如果x,y是同样大小的矩阵,plot(x,y)绘制x的列及y相应的列. 还有其它一些情况,请参见Matlab的帮助系统. §4.1.3 线型和颜色的控制 如果不指定划线方式和颜色,Matlab会自动为您选择点的表示方式及颜色.您也可以用不同的符号指定不同的曲线绘制方式.例如:

matlab程序设计与应用实验指导书

附件2 《matlab程序设计与应用》实验指导书 山东建筑大学信息与电气工程学院

前言 一、实验目的 本课程是电气工程及其自动化、自动化、电力工程与管理专业本科生的 学科基础选修课,它在线性代数、信号分析和处理、控制系统设计和仿真等 方面有着广泛的应用。主要是学习MATLAB的语法规则、基本命令和使用环境,使学生掌握MATLAB的基本命令和基本程序设计方法,提高使用该语言 的应用能力,具有使用MATLAB语言编程和调试的能力,以便为后续多门课 程使用该语言奠定必要的基础。 通过上机实验,使学生掌握MATLAB在线帮助功能的使用、熟悉MATLAB运行环境和MATLAB语言的主要特点,掌握MA TLAB语言的基本 语法规则及基本操作命令的使用,学会M文件的建立和使用方法以及应用MATLAB实现二维和三维图形的绘制方法,具有使用MATLAB语言编程和 调试的能力。 二、实验前预习 每次实验前,学生须仔细阅读本实验指导书的相关内容,明确实验目的、要求;明确实验步骤、测试数据及需观察的现象;复习与实验内容有关的理论知识;预习仪器设备的使用方法、操作规程及注意事项;做好预习要求中提出的其它事项。 三、实验注意事项 1.实验开始前,应先检查本组电脑设备是否工作正常,matlab软件工作是否正常。 2.实验时每位同学应独立完成实验任务,避免抄袭。 3.实验后应及时将实验数据进行记录与存盘,避免因电脑故障或其它原因造成实验数据的丢失。 4.实验中严格遵循电脑操作规程,如电脑发生异常现象,应立即切断电源,

报告指导教师检查处理。 5.测量数据或观察现象要认真细致,实事求是。 6.未经许可,不得对电脑进行软件及硬件的更改操作。 7.实验结束后,实验记录交指导教师查看并认为无误后,方可关掉电脑离开。 8.爱护公物,发生仪器设备等损坏事故时,应及时报告指导教师,按有关实验管理规定处理。 9.自觉遵守学校和实验室管理的其它有关规定。 四、实验总结 每次实验后,应对实验进行总结,即实验数据进行整理,绘制波形和图表,分析实验现象,撰写实验报告。实验报告除写明实验名称、日期、实验者姓名、同组实验者姓名外,还包括: 1.实验目的; 2.实验内容 3.实验流程图; 4.程序命令清单; 5.运行结果; 6.实验的收获与体会; 7.回答每项实验的有关问答题。

Matlab程序设计与作图

(封面) 学生实验报告 学院: 课程名称: 专业班级: 姓名: 学号:

学生实验报告 一、实验综述 1、实验目的及要求 熟悉MATLAB软件的用户环境;了解MATLAB软件的一般命令;掌握 MATLAB向量、数组、矩阵操作与运算函数;掌握MATLAB软件的基本绘图命令;掌握MATLAB语言的几种循环、条件和开关选择结构,及其编程规范。 通过该实验的学习,使学生能灵活应用MATLAB软件解决一些简单问题,能借助MATLAB软件的绘图功能,对函数的特性进行探讨,广泛联想,大胆猜想,发现进而证实其中的规律 2、实验仪器、设备或软件 电脑、matla b 二、实验过程(实验步骤、记录、数据、分析) 1.在D 盘建立一个自己的文件夹 2.开启软件平台——MATLAB,将你建立的文件夹加入到MATLAB的搜索路径中; 3.利用帮助了解函数 max, min, sum, mean, sort, length,rand, size 和diag 的功能和用法; 4.开启MATLAB编辑窗口,键入你编写的M 文件(命令文件或函数文件); 5.保存文件(注意将文件存入你自己的文件夹)并运行; 6.若出现错误,修改、运行直到输出正确结果; 7.写出实验报告,并浅谈学习心得体会。 三、结论 1、 1. 已知矩阵要求:(1)屏幕输出 A 与 B;(2)A 的转置 A′;(3)求 A+B 的值;(4)求 A-B的值;(5)求 4A;(6)求 A×B;(7)求 A-1.

实验结果>> A=[3 1 1;2 1 2;1 2 3] A = 3 1 1 2 1 2 1 2 3 >> B=[1 1 1;2 1 0;1 0 1] B = 1 1 1 2 1 0 1 0 1 >> A' ans = 3 2 1 1 1 2 1 2 3 >> A+B ans = 4 2 2 4 2 2 2 2 4 >> A-B ans = 2 0 0 0 0 2 0 2 2 >> 4*A ans = 12 4 4

Matlab课后习题

Matlab变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符.在MATLAB中,变量名区分字母的大小写. 赋值语句: 变量=表达式或表达式 其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵. clear命令用于删除MATLAB工作空间中的变量.who和whos这两个命令用于显示在MATLAB工作空间中已经驻留的变量名清单.who命令只显示出驻留变量的名称,whos在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息. 利用MAT文件可以把当前MATLAB工作空间中的一些有用变量长久地保留下来,扩展名是.mat.MAT文件的生成和装入由save和load 命令来完成.常用格式为: save 文件名 [变量名表] [-append][-ascii] load 文件名 [变量名表] [-ascii] 其中,文件名可以带路径,但不需带扩展名.mat,命令隐含一定对.mat文件进行操作.变量名表中的变量个数不限,只要内存或文件中存在即可,变量名之间以空格分隔.当变量名表省略时,保存或装入全部变量.-ascii选项使文件以ASCII格式处理,省略该选项时文件将以二进制格式处理.save命令中的-append选项控制将变量追加到MAT文件中. (1) 向量的创建 用步长生成法: 数组=初值:步长(增量):终值 >> a=1:0.5:3 a = 1.0000 1.5000 2.0000 2.5000 3.0000 用linspace生成: 数组=linspace(初值,终值,等分点数目) >> b=linspace(1,3,5) b = 1.0000 1.5000 2.0000 2.5000 3.0000 列向量用分号(;)作为分行标记: >> c=[1;2;3;4;] c = 1 2 3 4 若不想输出结果,在每一条语句后用分号作为结束符,若留空或用逗号结束,则在执行该语句后会把结果输出来. >> a+b; >> a+b ans = 2 3 4 5 6 (2) 矩阵的创建 直接输入——最简单的建立矩阵的方法是从键盘直接输入矩阵的元素.具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔. >> A=[1 2 3;4 5 6;2 3 5] A = 1 2 3 4 5 6 2 3 5 利用矩阵函数创建: >> B=magic(3)%魔方阵 B = 8 1 6 3 5 7 4 9 2 >> C=hilb(3)%3阶Hilbert矩阵 C = 1.0000 0.5000 0.3333 0.5000 0.3333 0.2500 0.3333 0.2500 0.2000 Matlab中用%引导注释 其它创建矩阵函数还有: eye(m,n):生成m行n列单位矩阵. zeros(m,n):生成m行n列全零矩阵. ones(m,n):生成全1矩阵. rand(m,n):生成随机矩阵. rand:生成一个随机数. diag(A):取A的对角线元素. tril(A):取A的下三角元素. triu(A):取A的上三角元素. hilb(n):生成n维Hilbert矩阵. randn(n):产生均值为0,方差为1的标准正态分布随机矩阵. vander(V):生成以向量V为基础向量的范得蒙矩阵. invhilb(n): 求n阶的希尔伯特矩阵的逆矩阵. toeplitz(x,y): 生成一个以x为第一列,y为第一行的托普利兹矩阵 compan(p): 生成伴随矩阵, p是一个多项式的系数向量,高次幂系数排在前,低次幂排在后. pascal(n): 生成一个n阶帕斯卡矩阵. compan: 生成伴随矩阵 (3) 矩阵运算 MATLAB的基本算术运算有:+(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方). 加法:>> A+B ans = 9 3 9 7 10 13 6 12 7 减法:>> B-A ans = 7 -1 3 -1 0 1 2 6 -3 乘法:>> A*B ans = 26 38 26 71 83 71 45 62 43

matlab30个案例分析案例6代码

Draw %function J=draw(individual) load best zbest individual=zbest; %函数功能:画出最优粒子对应的各种图形 %individual输入粒子 %fitness输出适应度值 w11=reshape(individual(1:6),3,2); w12=reshape(individual(7:12),3,2); w13=reshape(individual(13:18),3,2); w21=individual(19:27); w22=individual(28:36); w23=individual(37:45); rate1=0.006;rate2=0.001;%学习率 k=0.3;K=3; y_1=zeros(3,1);y_2=y_1;y_3=y_2;%输出值 u_1=zeros(3,1);u_2=u_1;u_3=u_2;%控制率 h1i=zeros(3,1);h1i_1=h1i;%第一个控制量 h2i=zeros(3,1);h2i_1=h2i;%第二个控制量 h3i=zeros(3,1);h3i_1=h3i;%第三个空置量 x1i=zeros(3,1);x2i=x1i;x3i=x2i;x1i_1=x1i;x2i_1=x2i;x3i_1=x3i;%隐含层输出 %权值初始化 k0=0.03; %值限定 ynmax=1;ynmin=-1;%系统输出值限定 xpmax=1;xpmin=-1;%P节点输出限定 qimax=1;qimin=-1;%I节点输出限定 qdmax=1;qdmin=-1;%D节点输出限定 uhmax=1;uhmin=-1;%输出结果限定 for k=1:1:200 %--------------------------------网络前向计算-------------------------- %系统输出 y1(k)=(0.4*y_1(1)+u_1(1)/(1+u_1(1)^2)+0.2*u_1(1)^3+0.5*u_1(2))+0.3*y_1(2); y2(k)=(0.2*y_1(2)+u_1(2)/(1+u_1(2)^2)+0.4*u_1(2)^3+0.2*u_1(1))+0.3*y_1(3); y3(k)=(0.3*y_1(3)+u_1(3)/(1+u_1(3)^2)+0.4*u_1(3)^3+0.4*u_1(2))+0.3*y_1(1);

(完整版)三个遗传算法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

相关文档
最新文档