当前位置:文档之家› Matlab求函数最值

Matlab求函数最值

MATLAB 求函數極小(大)值

函數的極值

n函數的極值(極大值或極小值)可從兩個角度來談,一為絕對的極值(absolute or global extreme value),另一為相對的極值(relative or local extreme value)

n絕對的極值:在所有定義域內中的極大值或極小值

n相對的極值:在定義域內某一區間中的極大值或極小值

n 單一變數函數

n 多變數函數

n y = f (x 1, x 2, …, x n )為一函數。若f 在x*上有極值,則

函數極值的發生處

0x y = f (x )

0x y = f (x )極小值

極大值***12()0,()0,,()0n

f f f x x x x x x ???===???L

求單變數函數之極小值n 在特定區間尋找單一變數之函數f(x) 之極小值

n 方法一:在區間內取點,計算這些點的函數值,然後利用min 指令找出其極小值

Ex. 求之極小值,其中>> x=linspace(0,8,100);>> y=cos(x).*exp(-2*x);>> [ymin index]=min(y)>> xmin=x(index)

()*

min (),=££l u

x f x f x x x x 08

££x 2()cos()-=x f x x e ymin =-0.0076index =26xmin =2.0202f(x) 稱為目標函數(objective function)

求單變數函數之極小值n 方法二:利用MATLAB 內建函數fminbnd

Ex.求之極小值,其中*step 1. edit fun.m

function F=fun(x)

F=cos(x)*exp(-2*x);

*step 2. 求解(回到Matlab Command Window )>> [x, fval]=fminbnd(@fun, 0, 8)[x, fval] = fminbnd(@fun, x1, x2)

x: 使函數值最小之x 值fval: 函數之極小值fun: 定義目標函數的function m-file 檔名x1: 區間下限, x2: 區間上限

2()cos()-=x f x x e 08

££x x =2.0344fval =-0.0076

n 驗證答案

n 計算df/dx èdiff

>> syms x

>> dfdx = diff(cos(x)*exp(-2*x))

n

求解df/dx = 0èfzero

2. 求解

>> x = fzero(‘fun ’, 1)

dfdx =-sin(x)*exp(-2*x)-2*cos(x)*exp(-2*x)

x =2.03441.edit fun.m

function dfdx = fun(x)dfdx = -sin(x)*exp(-2*x)-2*cos(x)*exp(-2*x);

求多變數函數之極小值n 尋找多變數之函數f(x 1,x 2,…) 之極小值

n 利用前述方法一過於複雜,不建議使用n

利用MATLAB 內建函數fminsearch

()12**1212,,,,min (,,)=L

L L x x f x x f x x [x, fval] = fminsearch(@fun, x0)

x: 使函數值最小之x 值fval: 函數之極小值fun: 定義目標函數的function m-file 檔名x0: 起始猜值

求多變數函數之極小值Ex : 求之極小值

*step 1. edit fun.m

function F = fun(x)

F = 100*(x(2)-x(1)^2)^2+(1-x(1))^2;*step 2. 求解(回到Matlab Command Window )>> [x, fval] = fminsearch(@fun, [2 3])

()()()22212211,1001=-+-f x x x x

x x =1.0000 1.0000

fval =2.1718e-010

n 驗證答案

n 計算df/dx 1與df/dx 2èdiff

>> syms x1 x2

>> dfdx1 = diff(100*(x2-x1^2)^2+(1-x1)^2, x1)

>> dfdx2 = diff(100*(x2-x1^2)^2+(1-x1)^2, x2)

n 求解df/dx 1= 0與df/dx 1= 0èfsolve

2. 求解

>> x = fsolve('fun', [0 0.5])dfdx1 =-400*(x2-x1^2)*x1-2+2*x1x =1.0000 1.0000

1.edit fun.m

function dfdx = fun(x)dfdx(1) = -400*(x(2)-x(1)^2)*x(1)-2+2*x(1);dfdx(2) = 200*x(2)-200*x(1)^2;

dfdx2 =200*x2-200*x1^2

求多變數函數之極小值n 欲傳其他參數給function m-file

n M-file 定義檔格式: 輸入為x, p1, p2

[x, fval] = fminsearch(@fun, x0, options, p1, p2) x: 使函數值最小之x 值fval: 函數之極小值fun: 定義目標函數的function m-file 檔名x0: 起始猜值options :fminsearch 之設定選項,若不指定則以[ ] 代替p1, p2:傳給fun.m 之參

求函數之極大值

n 尋找函數f(x) 之極大值

n 方法一:在區間內取點,計算這些點的函數值,然後利用max 指令找出其極大值n 方法二:利用MATLAB 內建函數fminbnd (單變數)

或fminsearch (多變數)n 將找極大值之問題轉換成找極小值之問題

n fmax = -fmin

()*

max ()=x

f x f x ()()()**max ()min ()=T

=-x x f x f x f x f x

Exercise

n f (x1,x2) = 12x1 -4x2 -2x12 + 2x1x2 -x22 ,求f之極大值

4, 2, -20

(完整版)MATLAB常用函数大全

一、MATLAB常用的基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle) sqrt(x):开平方 real(z):复数z的实部 imag(z):复数z的虚部 conj(z):复数z的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数ceil(x):天花板函数,即加入正小数至最近整数rat(x):将实数x化为分数表示 rats(x):将实数x化为多项分数展开 sign(x):符号函数(Signum function)。 当x<0时,sign(x)=-1; 当x=0时,sign(x)=0; 当x>0时,sign(x)=1。 rem(x,y):求x除以y的馀数 gcd(x,y):整数x和y的最大公因数 lcm(x,y):整数x和y的最小公倍数 exp(x):自然指数 pow2(x):2的指数 log(x):以e为底的对数,即自然对数或 log2(x):以2为底的对数 log10(x):以10为底的对数 二、MATLAB常用的三角函数 sin(x):正弦函数 cos(x):余弦函数

tan(x):正切函数 asin(x):反正弦函数 acos(x):反馀弦函数 atan(x):反正切函数 atan2(x,y):四象限的反正切函数 sinh(x):超越正弦函数 cosh(x):超越馀弦函数 tanh(x):超越正切函数 asinh(x):反超越正弦函数 acosh(x):反超越馀弦函数 atanh(x):反超越正切函数 三、适用於向量的常用函数有: min(x): 向量x的元素的最小值 max(x): 向量x的元素的最大值 mean(x): 向量x的元素的平均值 median(x): 向量x的元素的中位数 std(x): 向量x的元素的标准差 diff(x): 向量x的相邻元素的差 sort(x): 对向量x的元素进行排序(Sorting)length(x): 向量x的元素个数 norm(x): 向量x的欧氏(Euclidean)长度sum(x): 向量x的元素总和 prod(x): 向量x的元素总乘积 cumsum(x): 向量x的累计元素总和cumprod(x): 向量x的累计元素总乘积 dot(x, y): 向量x和y的内积 cross(x, y): 向量x和y的外积 四、MATLAB的永久常数

matlab中常见函数功用

⊙在matlab中clear,clc,clf,hold作用介绍 clear是清变量, clc只清屏, clf清除图形窗口上的旧图形, hold on是为了显示多幅图像时,防止新的窗口替代旧的窗口。 ①format:设置输出格式 对浮点性变量,缺省为format short. format并不影响matlab如何计算和存储变量的值。对浮点型变量的计算,即单精度或双精度,按合适的浮点精度进行,而不论变量是如何显示的。对整型变量采用整型数据。整型变量总是根据不同的类(class)以合适的数据位显示,例如,3位数字显示显示int8范围-128:127。 format short, long不影响整型变量的显示。 format long 显示15位双精度,7为单精度(scaled fixed point) format short 显示5位(scaled fixed point format with 5 digits) format short eng 至少5位加3位指数 format long eng 16位加至少3位指数 format hex 十六进制 format bank 2个十进制位 format + 正、负或零 format rat 有理数近似 format short 缺省显示 format long g 对双精度,显示15位定点或浮点格式,对单精度,显示7位定点或浮点格式。 format short g 5位定点或浮点格式 format short e 5位浮点格式 format long e 双精度为15位浮点格式,单精度为7为浮点格式 ②plot函数 基本形式 >> y=[0 0.58 0.70 0.95 0.83 0.25]; >> plot(y) 生成的图形是以序号为横坐标、数组y的数值为纵坐标画出的折线。 >> x=linspace(0,2*pi,30); % 生成一组线性等距的数值 >> y=sin(x); >> plot(x,y) 生成的图形是上30个点连成的光滑的正弦曲线。 多重线 在同一个画面上可以画许多条曲线,只需多给出几个数组,例如 >> x=0:pi/15:2*pi; >> y=sin(x); >> w=cos(x);

MATLAB常用函数

MATLAB包括拥有数百个内部函数的主包和三十几种工具包。工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。 开放性使MATLAB广受用户欢迎。除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。 Matlab Main Toolbox——matlab主工具箱 Control System Toolbox——控制系统工具箱 Communication Toolbox——通讯工具箱 Financial Toolbox——财政金融工具箱 System Identification Toolbox——系统辨识工具箱 Fuzzy Logic Toolbox——模糊逻辑工具箱 Higher-Order Spectral Analysis Toolbox——高阶谱分析工具箱 Image Processing Toolbox——图象处理工具箱 LMI Control Toolbox——线性矩阵不等式工具箱 Model predictive Control Toolbox——模型预测控制工具箱 μ-Analysis and Synthesis Toolbox——μ分析工具箱 Neural Network Toolbox——神经网络工具箱 Optimization Toolbox——优化工具箱 Partial Differential Toolbox——偏微分方程工具箱 Robust Control Toolbox——鲁棒控制工具箱 Signal Processing Toolbox——信号处理工具箱 Spline Toolbox——样条工具箱 Statistics Toolbox——统计工具箱 Symbolic Math Toolbox——符号数学工具箱 Simulink Toolbox——动态仿真工具箱 Wavele Toolbox——小波工具箱

matlab基本函数的用法

一. Matlab中常见函数基本用法 1.sum (1 )sum(A)A为矩阵得出A矩阵每列的和组成的一个矢量; A为矢量得出A的各元 素之和 (2)sum(diag(A))得矩阵A的对角元素之和 (3)sum(A,dim) A为矩阵,sum(A,1)按列求和;sum(A,2)按行求和 2.max(min) (1)max(A) 若A为矩阵则得出A矩阵每列的最大元素组成的一个矢量 若A为矢量则得出A中最大的元 (2)max(A,B) A与B为同维矩阵得出取A 与B中相同位置元素中较大者组成的新矩阵 (3)max(A,[],dim) max(a,[ ],1),求每列的最大值;max(a,[ ],2)求每行的最大值 3.find (1)find(X)若X为行向量则得出X中所有非零元素所在的位置(按行)若X为列向量或矩阵则得出X中所有非零元素的位置(按列)(2)ind = find(X, k)/ind = find(X,k,'first') 返回前k个非零元的指标ind = find(X,k,'last') 返回后k个非零元的指标 (3)[row,col] = find(X) row代表行指标,col代表列指标 [row,col,val] = find(X) val表示查找到对应位置非零元的值 [row,col] = find(A>100 & A<1000) 找出满足一定要求的元素 4.reshape (1)B = reshape(A,m,n) 把A变成m*n的矩阵 5.sort (1)B = sort(A) 把A的元素按每列从小到大的顺序排列组成新矩阵

(2)B = sort(A,dim) dim=1同(1); dim=2 把A按每行从小到大的顺序排列组成新矩阵 6.cat (1)C = cat(dim, A, B) dim=1相当于[A;B];dim=2相当于[A,B] (2)C = cat(dim, A1, A2, A3, A4, ...) 类推(1) 7.meshgrid (1)[X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制。(2)[X,Y] = meshgrid(x) (1)y=x中情形 8.diag (1)X = diag(v,k) 向量v作为X的第k对角线上的元素X的其他元素为零(2)X = diag(v) (1)中k=0的情况 (2)v = diag(X,k) v为矩阵X的第k对角线的元素组成的列向量 (4)v = diag(X) (3)中k等于零的情况

matlab最常用函数

1、 基本形式 >> y=[0 0.58 0.70 0.95 0.83 0.25]; >> plot(y) 生成的图形是以序号为横坐标、数组y的数值为纵坐标画出的折线。 >> x=linspace(0,2*pi,30); % 生成一组线性等距的数值 >> y=sin(x); >> plot(x,y) 生成的图形是上30个点连成的光滑的正弦曲线。 多重线 在同一个画面上可以画许多条曲线,只需多给出几个数组,例如 >> x=0:pi/15:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2) 则可以画出多重线。另一种画法是利用hold命令。在已经画好的图形上,若设置hold on,MATLA将把新的plot命令产生的图形画在原来的图形上。而命令hold off 将结束这个过程。例如: >> x=linspace(0,2*pi,30); y=sin(x); plot(x,y) >> hold on >> z=cos(x); plot(x,z) >> hold off 线型和颜色 MATLAB对曲线的线型和颜色有许多选择,标注的方法是在每一对数组后加一个字符串参数,说明如下: 线型线方式:- 实线:点线-. 虚点线- - 波折线。 线型点方式: . 圆点+加号* 星号x x形o 小圆

颜色:y黄;r红;g绿;b蓝;w白;k黑;m紫;c青. 以下面的例子说明用法: >> x=0:pi/15:2*pi; >> y1=sin(x); y2=cos(x); >> plot(x,y1,’b:+’,x,y2,’g-.*’) 网格和标记 在一个图形上可以加网格、标题、x轴标记、y轴标记,用下列命令完成这些工作。 >> x=linspace(0,2*pi,30); y=sin(x); z=cos(x); >> plot(x,y,x,z) >> grid >> xlabel(‘Independent Variable X’) >> ylabel(‘Dependent Variables Y and Z’) >> title(‘Sine and Cosine Curves’) 也可以在图形的任何位置加上一个字符串,如用: >> text(2.5,0.7,’sinx’) 表示在坐标x=2.5, y=0.7处加上字符串sinx。更方便的是用鼠标来确定字符串的位置,方法是输入命令: >> gtext(‘sinx’) 在图形窗口十字线的交点是字符串的位置,用鼠标点一下就可以将字符串放在那里。 坐标系的控制 在缺省情况下MATLAB自动选择图形的横、纵坐标的比例,如果你对这个比例不满意,可以用axis命令控制,常用的有: axis([xmin xmax ymin ymax]) [ ]中分别给出x轴和y轴的最大值、最小值 axis equal 或axis(‘equal’) x轴和y轴的单位长度相同 axis square 或axis(‘square’) 图框呈方形

matlab 常用函数汇总

matlab 常用函数汇总 编程2008-07-10 21:45:20 阅读46 评论0 字号:大中小订阅matlab常用函数 图形注释 Title 图形标题 Xlabel X轴标记 Ylabel Y轴标记 Text 文本注释 Gtext 用鼠标放置文本 Grid 网格线 MATLAB编程语言 Function 增加新的函数 Eval 执行由MA TLAB表达式构成的字串 Feval 执行由字串指定的函数 Global 定义全局变量 程序控制流 If 条件执行语句 Else 与if命令配合使用 Elseif 与if命令配合使用 End For,while和if语句的结束 For 重复执行指定次数(循环) While 重复执行不定次数(循环) Break 终止循环的执行 Return 返回引用的函数 Error 显示信息并终止函数的执行 交互输入 Input 提示用户输入 Keyboard 像底稿文件一样使用键盘输入 Menu 产生由用户输入选择的菜单 Pause 等待用户响应 Uimenu 建立用户界面菜单 Uicontrol 建立用户界面控制 一般字符串函数 Strings MATLAB中有关字符串函数的说明 Abs 变字符串为数值 Setstr 变数值为字符串 Isstr 当变量为字符串时其值为真 Blanks 空串 Deblank 删除尾部的空串 Str2mat 从各个字符串中形成文本矩阵 Eval 执行由MA TLAB表达式组成的串 字符串比较 Strcmp , , , 比较字符串 Findstr 在一字符串中查找另一个子串

Upper 变字符串为大写 Lower 变字符串为小写 Isletter 当变量为字母时,其值为真 Isspace 当变量为空白字符时,其值为真 字符串与数值之间变换 Num2str 变数值为字符串 Int2str 变整数为字符串 Str2num 变字符串为数值 Sprintf 变数值为格式控制下的字符串 Sscanf 变字符串为格式控制下的数值 十进制与十六进制数之间变换 Hex2num 变十六进制为IEEE标准下的浮点数Hex2dec 变十六制数为十进制数 Dec2hex 变十进制数为十六进制数 建模 Append 追加系统动态特性 Augstate 变量状态作为输出 Blkbuild 从方框图中构造状态空间系统Cloop 系统的闭环 Connect 方框图建模 Conv 两个多项式的卷积 Destim 从增益矩阵中形成离散状态估计器Dreg 从增益矩阵中形成离散控制器和估计器Drmodel 产生随机离散模型 Estim 从增益矩阵中形成连续状态估计器Feedback 反馈系统连接 Ord2 产生二阶系统的A、B、C、D Pade 时延的Pade近似 Parallel 并行系统连接 Reg 从增益矩阵中形成连续控制器和估计器Rmodel 产生随机连续模型 Series 串行系统连接 Ssdelete 从模型中删除输入、输出或状态ssselect 从大系统中选择子系统 模型变换 C2d 变连续系统为离散系统 C2dm 利用指定方法变连续为离散系统 C2dt 带一延时变连续为离散系统 D2c 变离散为连续系统 D2cm 利用指定方法变离散为连续系统 Poly 变根值表示为多项式表示 Residue 部分分式展开 Ss2tf 变状态空间表示为传递函数表示 Ss2zp 变状态空间表示为零极点表示

Matlab中常见数学函数的使用

给自己看的----Matlab 的内部常数(转) 2008/06/19 14:01 [Ctrl C/V--学校 ] MATLAB 基本知识 Matlab 的内部常数 pi 圆周率 exp(1) 自然对数的底数e i 或j 虚数单位 Inf 或 inf 无穷大 Matlab 的常用内部数学函数

我们也可在matlab中调用maple的命令进行多项式的运算,调用格式如下: maple(’maple中多项式的运算命令’) 如何用matlab进行分式运算 发现matlab只有一条处理分式问题的命令,其使用格式如下: [n,d]=numden(f)把符号表达式f化简为有理形式,其中分子和分母的系数为整数且分子分母不含公约项,返回结果n为分子,d为分母。注意:f必须为符号表达式 不过我们可以调用maple的命令,调用方法如下: maple(’denom(f)’)提取分式f的分母 maple(’numer(f)’)提取分式f的分子 maple(’normal(f)’ ) 把分式f的分子与分母约分成最简形式 maple(’expand(f)’) 把分式f的分子展开,分母不变且被看成单项。 maple(’factor(f)’) 把分式f的分母和分子因式分解,并进行约分。 如何用Matlab进行因式分解 syms 表达式中包含的变量factor(表达式) 如何用Matlab展开 syms 表达式中包含的变量expand(表达式) 如何用Matlab进行化简 syms 表达式中包含的变量simplify(表达式) 如何用Matlab合并同类项 syms 表达式中包含的变量collect(表达式,指定的变量) 如何用Matlab进行数学式的转换 调用Maple中数学式的转换命令,调用格式如下: maple(‘Maple的数学式转换命令’) 即:maple(‘convert(表达式,form)’)将表达式转换成form的表示方式 maple(‘convert(表达式,form, x)’)指定变量为x,将依赖于变量x的函数转换成form的表示方式(此指令仅对form为exp与sincos的转换式有用) 如何用Matlab进行变量替换 syms 表达式和代换式中包含的所有变量subs(表达式,要替换的变量或式子,代换式) 如何用matlab进行复数运算 a+b*i 或 a +b*j表示复数a+bi 或a+bj real(z)求复数z的实部 imag(z)求复数z的虚部 abs(z)求复数z的模 angle(z)求复数z的辐角, conj(z)求复数z的共轭复数 exp(z)复数的指数函数,表示e^z 如何在matlab中表示集合 [a, b, c,…] 表示由a, b, c,…组成的集合(注意:元素之间也可用空格隔开) unique(A) 表示集合A的最小等效集合(每个元素只出现一次) 也可调用maple的命令,格式如下: maple('{a, b, c,…}')表示由a, b, c,…组成的集合 下列命令可以生成特殊的集合: maple(‘{seq(f(i),i=n..m)}’)生成集合{f(n), f(n+1), f(n+2), … , f(m)} 如何用Matlab求集合的交集、并集、差集和补集

MATLAB函数的调用形式

MATLAB中函数的调用形式MATLAB软件是一种可用于科技开发的高效率工具软件,它将科学计算、函数绘图与快速编程集于一体,不仅功能强大,而且易学易用,深受广大科技工作者和理工科大学生的喜爱。正在逐渐成为理工科大学生必须掌握的基本工具。 1.求函数导数的命令,调用格式是: (1)y=diff(‘f(x)’) (2)diff(‘f(x)’) (3)y=’ f(x)’ ;diff(y,’x’) (4)syms 各种变量; y=f(x);diff(y,x) 一般调用格式是: diff(y,x,n) 2.定义符号变量,一般形式: syms x y a b t 注解: syms是定义符号变量的命令, 被定义的多个变量之间用空格隔开。 3.转变一个符号表达式S的显示形式: pretty(S) 注解:pretty(S)的作用是将符号表达式S显示成更符合数学习惯的形式。 4.输入格式: fplot (‘f(x)’,[X的左界,X的右界,Y的左界,Y 的右界] 注意:●在书写运算语句时,屏幕的同一行可以同时有多个语句, 但语句之间必须用逗号或分号隔开; ●命令语句以分号结尾时,屏幕不显示运行结果; ●命令语句以逗号或不用标点结尾时,屏幕将显示运行结果。

a=100/12 %显示格式为默认的短型实数格式 format rat %显示格式转换为有理格式a format long %显示格式转换为长型实数格式 a format %还原为默认的短型实数格

5.使用clear命令可以删除所有定义过的变量, 如果只是要删除其中的某几个变量,则应在clear后面指明要删除的变量名称。 6.使用clc 命令可以清除屏幕上所有显示的内容, 但不会删除内存中的变量 7.MATLAB提供了大量的函数,可以满足各种运算需要。(1)使用命令help elfun 可列出所有的初等数学函数名。(2)使用命令help elmat可列出大量的矩阵函数名。

matlab function非常全的 matlab 函数

一、常用对象操作:除了一般windows窗口的常用功能键外。 1、!dir 可以查看当前工作目录的文件。!dir&可以在dos状态下查看。 2、who 可以查看当前工作空间变量名,whos 可以查看变量名细节。 3、功能键: 功能键快捷键说明 方向上键Ctrl+P 返回前一行输入 方向下键Ctrl+N 返回下一行输入 方向左键Ctrl+B 光标向后移一个字符 方向右键Ctrl+F 光标向前移一个字符 Ctrl+方向右键Ctrl+R 光标向右移一个字符 Ctrl+方向左键Ctrl+L 光标向左移一个字符 home Ctrl+A 光标移到行首 End Ctrl+E 光标移到行尾 Esc Ctrl+U 清除一行 Del Ctrl+D 清除光标所在的字符 Backspace Ctrl+H 删除光标前一个字符 Ctrl+K 删除到行尾 Ctrl+C 中断正在执行的命令 4、clc可以命令窗口显示的内容,但并不清除工作空间。 二、函数及运算 1、运算符: +:加,-:减,*:乘,/:除,\:左除^:幂,‘:复数的共轭转置,():制定运算顺序。 2、常用函数表: sin( ) 正弦(变量为弧度) Cot( ) 余切(变量为弧度) sind( ) 正弦(变量为度数) Cotd( ) 余切(变量为度数) asin( ) 反正弦(返回弧度) acot( ) 反余切(返回弧度) Asind( ) 反正弦(返回度数) acotd( ) 反余切(返回度数) cos( ) 余弦(变量为弧度) exp( ) 指数 cosd( ) 余弦(变量为度数) log( ) 对数 acos( ) 余正弦(返回弧度) log10( ) 以10为底对数 acosd( ) 余正弦(返回度数) sqrt( ) 开方 tan( ) 正切(变量为弧度) realsqrt( ) 返回非负根 tand( ) 正切(变量为度数) abs( ) 取绝对值

Matlab中常见数学函数的使用

给自己看的----Matlab的内部常数(转) 2008/06/19 14:01[Ctrl C/V--学校 ] MATLAB基本知识 Matlab的内部常数 pi 圆周率 exp(1) 自然对数的底数e i 或j 虚数单位 Inf或inf 无穷大 Matlab的常用内部数学函数

我们也可在matlab中调用maple的命令进行多项式的运算,调用格式如下: maple(’maple中多项式的运算命令’) 如何用matlab进行分式运算 发现matlab只有一条处理分式问题的命令,其使用格式如下: [n,d]=numden(f)把符号表达式f化简为有理形式,其中分子和分母的系数为整数且分子分母不含公约项,返回结果n为分子,d为分母。注意:f必须为符号表达式 不过我们可以调用maple的命令,调用方法如下: maple(’denom(f)’)提取分式f的分母 maple(’numer(f)’)提取分式f的分子 maple(’normal(f)’ ) 把分式f的分子与分母约分成最简形式 maple(’expand(f)’) 把分式f的分子展开,分母不变且被看成单项。 maple(’factor(f)’) 把分式f的分母和分子因式分解,并进行约分。 如何用Matlab进行因式分解 syms 表达式中包含的变量factor(表达式) 如何用Matlab展开 syms 表达式中包含的变量expand(表达式) 如何用Matlab进行化简 syms 表达式中包含的变量simplify(表达式) 如何用Matlab合并同类项 syms 表达式中包含的变量collect(表达式,指定的变量) 如何用Matlab进行数学式的转换 调用Maple中数学式的转换命令,调用格式如下: maple(‘Maple的数学式转换命令’) 即:maple(‘convert(表达式,form)’)将表达式转换成form的表示方式 maple(‘convert(表达式,form, x)’)指定变量为x,将依赖于变量x的函数转换成form的表示方式(此指令仅对form为exp与sincos的转换式有用) 如何用Matlab进行变量替换 syms 表达式和代换式中包含的所有变量subs(表达式,要替换的变量或式子,代换式) 如何用matlab进行复数运算 a+b*i 或 a +b*j表示复数a+bi 或a+bj real(z)求复数z的实部 imag(z)求复数z的虚部 abs(z)求复数z的模 angle(z)求复数z的辐角, conj(z)求复数z的共轭复数 exp(z)复数的指数函数,表示e^z 如何在matlab中表示集合 [a, b, c,…] 表示由a, b, c,…组成的集合(注意:元素之间也可用空格隔开) unique(A) 表示集合A的最小等效集合(每个元素只出现一次) 也可调用maple的命令,格式如下: maple('{a, b, c,…}')表示由a, b, c,…组成的集合 下列命令可以生成特殊的集合: maple(‘{seq(f(i),i=n..m)}’)生成集合{f(n), f(n+1), f(n+2), … , f(m)} 如何用Matlab求集合的交集、并集、差集和补集

Matlab中常用的函数集

sort (排序) xlsread ( exl文件导入) load (txt 文件,mat文件等导入) 附录Ⅰ工具箱函数汇总 Ⅰ.1 统计工具箱函数 表Ⅰ-1 概率密度函数 函数名对应分布的概率密度函数 betapdf 贝塔分布的概率密度函数 binopdf 二项分布的概率密度函数 chi2pdf 卡方分布的概率密度函数 exppdf 指数分布的概率密度函数 fpdf f分布的概率密度函数 gampdf 伽玛分布的概率密度函数 geopdf 几何分布的概率密度函数 hygepdf 超几何分布的概率密度函数normpdf 正态(高斯)分布的概率密度函数lognpdf 对数正态分布的概率密度函数nbinpdf 负二项分布的概率密度函数 ncfpdf 非中心f分布的概率密度函数nctpdf 非中心t分布的概率密度函数 ncx2pdf 非中心卡方分布的概率密度函数poisspdf 泊松分布的概率密度函数 raylpdf 雷利分布的概率密度函数 tpdf 学生氏t分布的概率密度函数unidpdf 离散均匀分布的概率密度函数unifpdf 连续均匀分布的概率密度函数weibpdf 威布尔分布的概率密度函数 表Ⅰ-2 累加分布函数 函数名对应分布的累加函数 betacdf 贝塔分布的累加函数 binocdf 二项分布的累加函数 chi2cdf 卡方分布的累加函数 expcdf 指数分布的累加函数 fcdf f分布的累加函数 gamcdf 伽玛分布的累加函数 geocdf 几何分布的累加函数 hygecdf 超几何分布的累加函数

logncdf 对数正态分布的累加函数 nbincdf 负二项分布的累加函数 ncfcdf 非中心f分布的累加函数 nctcdf 非中心t分布的累加函数 ncx2cdf 非中心卡方分布的累加函数 normcdf 正态(高斯)分布的累加函数 poisscdf 泊松分布的累加函数 raylcdf 雷利分布的累加函数 tcdf 学生氏t分布的累加函数 unidcdf 离散均匀分布的累加函数 unifcdf 连续均匀分布的累加函数 weibcdf 威布尔分布的累加函数 表Ⅰ-3 累加分布函数的逆函数 函数名对应分布的累加分布函数逆函数 betainv 贝塔分布的累加分布函数逆函数 binoinv 二项分布的累加分布函数逆函数 chi2inv 卡方分布的累加分布函数逆函数 expinv 指数分布的累加分布函数逆函数 finv f分布的累加分布函数逆函数 gaminv 伽玛分布的累加分布函数逆函数 geoinv 几何分布的累加分布函数逆函数hygeinv 超几何分布的累加分布函数逆函数logninv 对数正态分布的累加分布函数逆函数nbininv 负二项分布的累加分布函数逆函数ncfinv 非中心f分布的累加分布函数逆函数nctinv 非中心t分布的累加分布函数逆函数 ncx2inv 非中心卡方分布的累加分布函数逆函数icdf norminv 正态(高斯)分布的累加分布函数逆函数poissinv 泊松分布的累加分布函数逆函数 raylinv 雷利分布的累加分布函数逆函数 tinv 学生氏t分布的累加分布函数逆函数unidinv 离散均匀分布的累加分布函数逆函数unifinv 连续均匀分布的累加分布函数逆函数weibinv 威布尔分布的累加分布函数逆函数 表Ⅰ-4 随机数生成器函数

matlab 基础函数用法总结

1、Size 函数用法 例如:1,2,3;4,5,6]是一个2*3的矩阵,则: d = size(X); %返回矩阵的行数和列数,保存在d中 [m,n] = size(X)%返回矩阵的行数和列数,分别保存在m和n中 m = size(X,dim);%返回矩阵的行数或列数,dim=1返回行数,dim=2返回列数 2、Corrcoef 函数用法 corrcoef(x,y)表示序列x和序列y的相关系数,得到的结果是一个2*2矩阵,其中对角线上的元素分别表示x和y的自相关,非对角线上的元素分别表示x 与y的相关系数和y与x的相关系数,两个是相等的 3、sort函数用法 sort(X) 功能:返回对向量X中的元素按列升序排列的新向量。 [Y, I] = sort(A, dim, mode) 功能:对矩阵A的各列或各行重新排序,I记录Y中的元素在排序前A中位置,其中dim指明读A的列还是行进行排序。若dim=1,则按列排序;若dim=2,则按行排序。mode为排序的方式,取值'ascend'为升序,'descend'为降序 4、Legend 函数用法 legend(string1,string2,string3,┈) 分别将字符串1、字符串2、字符串3……标注到图中,每个字符串对应的图标为画图时的图标。 例如: plot(x,sin(x),?.b?,x,cos(x),?+r?) legend(…sin?,?cos?) //这样就可以把”.”标识为”sin”,把”+”标识为“cos” 5、find 函数用法 找到非零元素的索引和值 语法: 1. ind = find(X) 2. ind = find(X, k) 3. ind = find(X, k, 'first') 4. ind = find(X, k, 'last') 5. [row,col] = find(X, ...) 6. [row,col,v] = find(X, ...) 说明: 1. ind = find(X)

MatLab常用函数大全

1、求组合数 C,则输入: 求k n nchoosek(n,k) 例:nchoosek(4,2) = 6. 2、求阶乘 求n!.则输入: Factorial(n). 例:factorial(5) = 120. 3、求全排列 perms(x). 例:求x = [1,2,3]; Perms(x),输出结果为: ans = 3 2 1 3 1 2 2 3 1 2 1 3 1 2 3 1 3 2 4、求指数 求a^b:Power(a,b) ; 例:求2^3 ; Ans = pow(2,3) ; 5、求行列式 求矩阵A的行列式:det(A); 例:A=[1 2;3 4] ; 则det(A) = -2 ; 6、求矩阵的转置 求矩阵A的转置矩阵:A’ 转置符号为单引号. 7、求向量的指数 求向量p=[1 2 3 4]'的三次方:p.^3 例: p=[1 2 3 4]' A=[p,p.^2,p.^3,p.^4] 结果为:

注意:在p 与符号”^”之间的”.”不可少. 8、求自然对数 求ln(x):Log(x) 例:log(2) = 0.6931 9、求矩阵的逆矩阵 求矩阵A 的逆矩阵:inv(A) 例:a= [1 2;3 4]; 则 10、多项式的乘法运算 函数conv(p1,p2)用于求多项式p1和p2的乘积。这里,p1、p2是两个多项式系数向量。 例2-2 求多项式43810x x +-和223x x -+的乘积。 命令如下: p1=[1,8,0,0,-10]; p2=[2,-1,3]; c=conv(p1,p2) 11、多项式除法 函数[q ,r]=deconv(p1,p2)用于多项式p1和p2作除法运算,其中q 返回多项式p1除以p2的商式,r 返回p1除以p2的余式。这里,q 和r 仍是多项式系数向量。 例2-3 求多项式43810x x +-除以多项式223x x -+的结果。 命令如下: p1=[1,8,0,0,-10]; p2=[2,-1,3]; [q,r]=deconv(p1,p2) 12、求一个向量的最大值 求一个向量x 的最大值的函数有两种调用格式,分别是:

MATLAB常用函数

1概述安装介绍(略)。 2 矩阵和数组 2.1 创建特殊矩阵函数 Compan 伴随矩阵Diag 对角矩阵Eye 单位矩阵Gallery 测试矩阵Hadamard hadamard矩阵Hilb hilb矩阵Invhilb invhilb矩阵 Magic魔方矩阵Ones 全一矩阵Rand均匀分布随机矩阵 Randn 正态分布随机矩阵Rosser经典对称特征测试矩阵 Wilkinson wilkinson特征值测试矩阵Zeros 全零矩阵 注:diag(A,n)以向量A为主对角线为基准偏移n个位置。 2.2 矩阵连接 水平c=[a,b]或者c=[a b] 垂直c=[a;b] 连接函数(1)Cat 指定方向;(2)Cat(1,a,b)水平;(3)Cat(2,a,b)垂直;(4)Horzcat 水平方向;(5)Vertcat 垂直方向(6)Repmat 对现有矩阵复制粘贴(7)Blkdiag 以对角阵方式重组。 2.3 改变矩阵形状 Reshape 制定行列重排;Rot90 逆时针90;Filplr 垂直方向为轴旋转180;Flipud 水平方向为轴旋转180;Flipdim 指定方向为轴翻转矩阵 2.4 向量生成函数 Linspace(a,b)首尾为a,b的100个数;Linspace(a,b,n) Logspace(a,b)以10为底;Logspace(a,b,n);Logspace(a,pi) 2.5 矩阵信息的获取 Isempty 判断为空;Isscalar 判断为标量;Isvector 判断向量;Issparse 判断稀疏矩阵;Isa 判断指定数据类型;Iscell 判断元胞数组类型;Iscellstr 元胞字符串数组类型;Isfloat 判断浮点数;Isinteger 判断整形类型;Islogical 判断逻辑类型Isnumeric 判断数值类型;Isreal 判断实数类型;Isstruct 判断结构体类型;Length 最长维长度;Ndims 维数;Numel 元素个数;Size 指定维长度 3 数据类型

MATLAB中常用命令调用格式总结

第2章MATLAB数据及其运算 1.矩阵的表示:将矩阵的方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素用分号分隔; 2.利用M文件建立矩阵 对于比较大且复杂的矩阵,可以为它专门建立一个M文件; 3.建立大矩阵 大矩阵可由方括号中的小矩阵建立起来; 4.冒号表达式 利用冒号表达式可以产生行向量,一般格式是:e1:e2:e3;其中e1为初始值,e2为步长,e3为终止值。即冒号表达式可产生一个由e1开始到e3结束,以步长e2自增的行向量。若冒号表达式中省略e2不写,则步长为1. 注:MATLAB中还可以用linspace函数产生行向量;其调用格式为:linspace(a,b,n) 其中a和b是生成向量的第一个和最后一个元素,n是元素总数。当n省略时,自动产生100个元素;显然,linspace(a,b,n)与a:(b-a)/(n-1):b等价。当步长不方便计算或小数位数较多时用linspace函数很方便。 5.矩阵元素 MATLAB允许对一个矩阵的单个元素进行赋值和操作,矩阵A的第3行第2列元素赋值,A(3,2)=200;此时,只改变该元素的值,对其他元素无影响。如果给出的行下标或列下标大于原矩阵的行数或列数,则将自动扩展原来的矩阵,扩展后未赋值的矩阵元素将置为0. 也可以用矩阵元素的序号来引用矩阵元素,矩阵元素序号就是相应元素在内存中的排列顺序,矩阵元素按列编号,先第一列,再第二列,依次类推。 size(A)函数返回包含两个元素的向量,分别是矩阵A的行数和列数。length(A)给出行数和列数中的较大者,即length(A)=max(size(A))。 6.矩阵拆分 利用冒号表达式获得子知阵:(1)A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵的第i行、第j列的元素;(2)A(i:i+m,:)表示取A矩阵第i-i+m行的全部元素;A(:,k:k+m)表示取A矩阵第k-k+m列的全部元素;A(i:i+m,k:k+m)表示取A矩阵第i-i+m行内,并在第k-k+m列中的所有元素;(3)A(:)将矩阵A每一列元素堆叠起来,成为一个向量,相当于reshape(A,m,1); 7.利用空矩阵删除矩阵的元素 定义[]为空矩阵。给变量X赋空矩阵的语句为X=[].将某些元素从矩阵中删除,采用将其置为空矩阵的方法就是一种有效的方法。 8.矩阵的基本算术运算 矩阵的运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。 矩阵加减运算:两个矩阵的维数相同才可以进行加减运算,否则给出错误信息。一个标量也可以和其他不同维数的矩阵进行加减运算,即每个元素都加上这个标量。 矩阵乘法运算:要求矩阵A的列数与B矩阵的行数相等。矩阵与标量相乘,即矩阵中的每个元素与此标量相乘。 矩阵除法:\左除;/右除;A\B等效于A的逆左乘B矩阵,也就是inv(A)*B;而B/A等效于A矩阵的逆右乘B矩阵,也就是B*inv(A)。对于矩阵运算,一般A\B≠B/A.对于含有标量的运算,两种除法运算的结果相同,如3/4和4\3有相同的值。 矩阵的乘方:一个矩阵的乘方可以表示为A^x,要求A为方阵,x为标量。 9.点运算 .*,./,.\,.^。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵维数相同。 若A,B两矩阵具有相同的维数,则A./B等价于B.\A.若两个矩阵维数一致,则A.^B表示两矩阵对应元素进行乘方运算。指数可以是标量,底也可以是标量。

MATLAB常用函数

数字信号处理与MATLAB 实现 1. n1=[ns:nf]; x1=[zeros(1,n0-ns),1,zeros (1,nf-n0)]; %单位抽样序列的产生 2. subplot(2,2,4) 画2行2列的第4个图 3. stem(n,x) %输出离散序列,(plot 连续) 4. 编写子程序可调用 4.1 单位抽样序列)(0n n -δ生成函数impseq.m [x,m]=impseq(n0,ns,nf); %序列的起点为ns ,终点为nf ,在n=n0点处生成一个单位脉冲 n=[-5:5];x1=3*impseq(2,-5,5)-impseq(-4,-5,5) x1 = 0 -1 0 0 0 0 0 3 0 0 0 n=[-5:5];x1=3*impseq(2,-4,5)-impseq(-4,-5,4) %起点到终点长度要一致 x1 = 0 -1 0 0 0 0 3 0 0 0 4.2 单位阶跃序列)(0n n u -生成函数stepseq.m [x,n]=stepseq(no,ns,nf) %序列的起点为ns ,终点为nf ,在n=n0点处生成一个单位阶跃 4.3 两个信号相加的生成函数sigadd.m [y,n]=sigadd(x1,n1,x2,n2) 4.4 两个信号相乘的生成函数sigmult.m [y,n]=sigmult(x1,n1,x2,n2) 4.5 序列移位y(n)=x(n-n0)的生成函数sigshift.m [y,n]=sigshift(x,m,n0) 4.6 序列翻褶y(n)=x(-n)的生成函数sigfold.m [y,n]=sigfold(x,n) 4.7 evenodd.m 函数可以将任一给定的序列x(n)分解为xe(n)和xo(n)两部分 [xe,xo,m]=evenodd(x,n) 4.8 序列从负值开始的卷积conv_m, conv 默认从0开始 function [y,ny]=conv_m(x,nx,h,nh) 有{x(n):nx1≤n ≤nx2},{h(n):nh1≤n ≤nh2}, 卷积结果序列为 {y(n):nx1+nh1≤n ≤nx2+nh2} 例. 设1132)(-++=z z z X ,1225342)(-+++=z z z z X ,求)()()(21z X z X z Y += 程序: x1=[1,2,3];n1=-1:1; x2=[2,4,3,5];n2=-2:1; [y,n]=conv_m(x1,n1,x2,n2)

常用的MATLAB程序和函数

==等于 <小于 >大于 <=小于或等于>=大于或等于~=不等于 4 常用内部数学函数 指数函数exp(x)以e为底数 对数函数log(x)自然对数,即以e为底数的对数log10(x)常用对数,即以10为底数的对数log2(x)以2为底数的x的对数 开方函数sqrt(x)表示x的算术平方根

绝对值函数abs(x)表示实数的绝对值以及复数的模 三角函数(自变量的单位为弧度)sin(x)正弦函数cos(x)余弦函数tan(x)正切函数cot(x)余切函数sec(x)正割函数csc(x)余割函数 反三角函数asin(x)反正弦函数acos(x)反余弦函数atan(x)反正切函数acot(x)反余切函数asec(x)反正割函数acsc(x)反余割函数 双曲函数sinh(x)双曲正弦函数cosh(x)双曲余弦函数tanh(x)双曲正切函数coth(x)双曲余切函数sech(x)双曲正割函数csch(x)双曲余割函数 反双曲函数asinh(x)反双曲正弦函数acosh(x)反双曲余弦函数atanh(x)反双曲正切函数acoth(x)反双曲余切函数asech(x)反双曲正割函数acsch(x)反双曲余割函数 求角度函数atan2(y,x)以坐标原点为顶点,x轴正半轴为始边,从原点到点(x,y)的射线为终边的角,其单位为弧度,范围为( , ] 数论函数gcd(a,b)两个整数的最大公约数lcm(a,b)两个整数的最小公倍数

排列组合函数factorial(n)阶乘函数,表示n的阶乘 复数函数real(z)实部函数 imag(z)虚部函数 abs(z)求复数z的模 angle(z) 求复数z的辐角,其范围是( , ] conj(z)求复数z的共轭复数 求整函数与截尾函数ceil(x)表示大于或等于实数x的最小整数floor(x)表示小于或等于实数x的最大整数round(x)最接近x的整数 最大、最小函数max([a,b,c,...]) 求最大数min([a,b, c,..]) 求最小数 符号函数 sign(x)

相关主题
文本预览
相关文档 最新文档