加载中…
  
博文
标签:

matlab

符号工具箱

控制

部分分式分解

z变化

拉普拉斯变换

杂谈

分类: Matlab实例

在控制领域很多时候要用到部分分式法,例如进行一个高阶系统的拉普拉斯变换或Z变换时,常用将系统展开,然后对各部分进行相应的变换。

部分分式分解算法原理:

 

 

标签:

matlab

simulink

神经网络

杂谈

分类: Matlab实例

% 采用贝叶斯正则化算法提高 BP 网络的推广能力。在本例中,我们采用两种训练方法,即 L-M 优化算法

%(trainlm)和贝叶斯正则化算法(trainbr),
% 用以训练 BP 网络,使其能够拟合某一附加有白噪声的正弦样本数据。其中,样本数据可以采用如下

% MATLAB 语句生成:  
% 输入矢量:P = [-1:0.05:1];  
% 目标矢量:randn(’seed’,78341223);  
% T = sin(2*pi*P)+0.1*randn(size(P));  
% MATLAB 程序如下:  
close all  
clear all  
clc  
% NEWFF——生成一个新的前向神经网络  
% TRAIN——对 BP 神经网络进行训练 
% SIM——对 BP 神经网络进行仿真    
定义训练样本矢量  
% P 为输入矢量  
P = [-1:0.05:1];  
% T 为目标矢量  
randn('seed',78341223); T = sin(2*pi*P)+0.1*randn(size(P));  
  
创建一个新的前向

标签:

matlab

simulink

神经网络

杂谈

分类: Matlab实例

采用Matlab工具箱函数建立神经网络,对一些基本的神经网络参数进行了说明,深入了解参考Matlab帮助文档。

 

% 例1 采用动量梯度下降算法训练 BP 网络。 
% 训练样本定义如下: 
% 输入矢量为     
p =[-1 -2 3  
     -1  1 5 -3] 
% 目标矢量为   t = [-1 -1 1 1] 
close all  
clear  
clc 
% ---------------------------------------------------------------
% NEWFF——生成一个新的前向神经网络,函数格式:
% net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) takes,
% PR -- R x 2 matrix of min and max values for R input elements
% (对于R维输入,PR是一个R x 2 的矩阵,每一行是相应输入的边界值)
% Si -- 第i层的维数
% TFi -- 第i层的传递函数, default = 'tansig'
% BTF -- 反向传播网络的训练函数, default = 'traingdx'
% BLF -- 反向传播网络的权值/阈值学

标签:

matlab

万年历

杂谈

分类: Matlab实例

function test_calendar(year,month)

% 输入年份,月份,打印这个月的月历
run = 0;
ping = 0;
fprintf('\n%s %s %s %s %s %s %s\n',...
    '日','一','二','三','四','五','六');
% 计算从第一年到前一年的闰年和平年的个数
for i =1:year-1
    if (mod(i,4)==0 & mod(i,100)~=0) | mod(i,400)==0
        run = run+1;
    else
        ping = ping+1;
    end
end
% 计算从第一年到当年前一个月的天数
sum = 366*run+365*ping;
for i = 1:month-1
    sum = sum+monthday(year,i);
end
% 获得这个月的天数
n = monthday(year,month);
temp = zeros(n,1);
sum = sum+1;
% 计算这个月第一天是星期几
wkd = mod(sum,7);
for i = 1:n
    temp(wkd+i) = i;
end
l = 1;
m = 1;
% 打印日历
for i

标签:

matlab

画图

自定义坐标

教育

分类: Matlab资料
subplot(3,2,1)
plot(x)
title('默认格式')


subplot(3,2,2)
plot(x)
set(gca,'xtick',[1 3 6 8]);
set(gca,'ytick',[]);
title('X自定义间隔,Y关闭')

subplot(3,2,3)
plot(x)
set(gca,'xtick',[1 3 6 8]);
set(gca,'xticklabel',sprintf('%03.4f|',get(gca,'xtick')))
set(gca,'ytick',[2 4 5 7]);
set(gca,'yticklabel',{'Two','Four','Five','Seven'});
title('XY自定义间隔、精度及显示方式')

subplot(3,2,4)
plot(x)
set(gca,'xminortick','on');%style 5
set(gca,'ticklength',[0.05 0.025]);
set(gca,'tickdir','out');
title('XY坐标刻度显示方式')

subplot(3,2,5)
plot(x)
set(gca,'xtick',[min(x) (max(x)+min(x))/2 max(x)]);
set(gca,'ytick',[min(x) (max(x)+min(x))/2 max(x)]);
title('论文中常用的标准3
标签:

matlab

鼠标

获取坐标

it

分类: Matlab资料

第一种途径:ginput()函数

ginput提供了一个十字光标使我们能更精确的选择我们所需要的位置,并返回坐标值。函数调用形式为:

[x,y] = ginput(n)
[x,y] = ginput
[x,y,button] = ginput(...)

对于[x,y] = ginput(n),能使你从当前的坐标系中读取n个点,并返回这n个点的x,y坐标,均为nX1的向量。可以按回车提前结束读数。

[x,y] = ginput 可以无限的读取坐标直到按下回车键。

[x,y,button] = ginput(...) 返回x和y的坐标,以及button值(1=左键,2=中,3=右)或者按键的ASXII码值。

第二种途径:利用figure的WindowButtonDownFcn属性。当你在图上按下鼠标的时候,可通过该属性定义一个回调程序。回调程序可以是一个有效的Matlab表达式或者一个M文件。

那么为显示当前鼠标按下时的坐标值,我们可以将其定义为一个坐标获取和显示程序。

例如:

% 主函数

function test_mouse_track()
figure;
axis([-10,10,0,5]);
set(gcf,'WindowButtonDownFcn',@ButttonDownFcn);

 

% 回调函数

function ButttonDownFcn(src,event)
pt = get(

标签:

matlab

打靶法

两点边值

线性插值

教育

分类: Matlab实例

function varargout = shooting_two_point_boundary(varargin)
% ==========================================================
% 函数名:shooting_two_point_boundary.m
% 基于打靶法计算两点边值问题,仅针对二阶微分方程
% author: xianfa110.

blog: http://blog.sina.com.cn/xianfa110
% 函数形式:
% [result,err,z0] = shooting_two_point_boundary(@fun,[y_0,y_end],[x_0,x_1],h);
% 输入:
% fun = 函数名;
% y_0 = 函数初值;
% y_end = 函数终值;
% x_0 = 自变量初值;
% x_end = 自变量终值;
% h = 积分步长;
% 输出:
% result = [x,y];
% err = 误差;
% z0 = y'初值;
% ===========================================================
% 函数fun:4y''+yy' = 2x^3 +16 ; 2<= x <=3
% 写法:
% function f = fun(y,x)
% dy = y(2);
% dz = (2*x^3+16-y(1)*y(2))/4;
% f = [dy,dz];

标签:

matlab

控制

劳斯判据

稳定性

校园

分类: 控制

function [routh_list,conclusion] = Routh(chara_equ)
% =======================================================
% 自编劳斯判据求解系统稳定性函数
% 输入:
% chara_equ = 特征方程向量
% 输出:
% routh_list = 劳斯表
conclusion = 给出系统是否稳定或存在多少个不稳定的根的结论

% author:xianfa110

% example:
% [routh_list,con] = Routh([1 2 3 4 5]);
% return:
% routh_list =
%
           5
           0
           0
    -6        0
           0
% con =
%

标签:

matlab

单摆

动画

s函数

it

分类: Matlab实例

程序的主体用了Matlab Central的博客Seth on Simulink提供的函数,对其中的画图部分及参数设置做了修改,可接入Simulink模型仿真,后续给出例子。

function [sys,x0,str,ts] = SimpPendAnimation(t,x,u,flag,pausetime)
%=====================================================================
%小车单摆 S-function.
%参考seth的倒立摆动画模型,做了一些修改。
%author:xianfa110
%http://blog.sina.com.cn/xianfa110
%=====================================================================
switch flag,

  case 0,
    [sys,x0,str,ts]=mdlInitializeSizes;

  case 2,
    sys=mdlUpdate(t,x,u,pausetime);

  case { 1, 3, 4, 9 },
    sys = [];
   
  otherwise
    error(['Unhandled flag = ',num2str(flag)]);
end
%===================

标签:

matlab

优化

校园

分类: Matlab资料

1.fminbnd

进行有约束的一元函数最小值求解。它的求解命令是:

X = FMINBND(FUN,x1,x2),FUN 是目标函数,可以为表达式字符串或MATLAB自定义函数的函数柄,要求解在约束 x1 <= X <= x2下的最优解X*。

还有其他一些求解命令是:

x = fminbnd(fun,x1,x2,options)   % options为指定优化参数选项,由OPTIMSET设定
[x,fval] = fminbnd(…)   % fval为目标函数的最小值
[x,fval,exitflag] = fminbnd(…)   %exitflag为终止迭代的原因
[x,fval,exitflag,output] = fminbnd(…)   % output为优化信息
说明:若参数exitflag>0,表示函数收敛于x,若exitflag=0,表示达到了最大迭代次数,exitflag<0表示函数不收敛于x;若参数output=iterations表示迭代次数,output=funccount表示函数赋值次数,output=algorithm表示所使用的算法。

例子:要求解f(x)=x3-2x-5在(0,2)之间最优解,求解命令如下:

f = @(x)x.^3-2*x-5;

x = fminbnd(f, 0, 2);

 

2.fminsearch

进行多变量函数的无

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有