搜档网
当前位置:搜档网 › COMSOL 操作符&数学函数

COMSOL 操作符&数学函数

COMSOL 操作符&数学函数
COMSOL 操作符&数学函数

d(f,x) f对x方向的微分

1. 使用d算符来计算一个变量对另一个变量的导数,如:

d(T,x)指变量T对x求导,而d(u^2,u)=2*u等;

2. 如果模型中含有任何独立变量,建模中使用d算符会使

模型变为非线性;

3. 在解的后处理上使用d算符,可以使用一些预置的变

量,如:uxx,d(ux,x),d(d(u,x),x)都是等效的;

4. pd算符与d算符类似,但对独立变量不使用链式法则;

5. d(E,TIME)求解表达式E的时间导数;

6. dtang算符可以计算表达式在边界上的切向微分(d算

符无法计算),在求解域上使用dtang等价于d,dtang

只求解对坐标变量的微分,但需要注意的是并不是所有

的量都有切向微分。

pd(f,x) f对x方向的微分

pd和d的区别:

d(u+x,x)=ux+1,d(u,t)=ut,u和x,t等有关

pd(u+x,x)=1,pd(u,t)=0,u是独立的和x,t无关

dtang(f,x) 边界上f对x的切向微分

在边界上d(u,x)不能定义,但是可以使用dtang(u,x),dtang

付出基本的微分法则,如乘积法则和链式法则,但是需要指

出的是,dtang(x,x)不一定等于1。

test(expr) 试函数

用于方程弱形式的算符,test(F(u,?u))等价于:

var(expr,fieldnam

变异算子

e1,

用于弱形式,它和test算符功能相同,但是仅用于某些特

fieldname2, ...) 定的场中;

如var(F(u,?u, v,?v),a),变量u是a场的变量,而v不

是。

试函数之只作用于变量u。

nojac(expr) 对Jacobian矩阵没有贡献

将表达式排除在Jacobian计算外,这对那些对Jacobian贡

献不大,但是计算消耗很大的变量是否有效;

k-e 湍流模型就是利用 nojac算符来提高计算性能的例子。up(expr) 上邻近估算表达式

up,down,mean算符只能用在边界上,对于一个表达式或变

量在边界处两边不连续,COMSOL通常显示边界的平均值,使

用up,down可计算某个方向上的值。

down(expr) 下邻近估算表达式

mean(expr) 邻近边界上的平均值

depends(expr) 查看某个表达式是否依赖于求解结果

isdefined(variabl

变量是否定义

e)

dest(expr) 在目标端计算积分耦合表达式

dest算符强制将source points上的表达式用在

destination points上。

例如:u/((dest(x)-x)^2+(dest(y)-y)^2)

if(cond,expr1,exp

条件表达式

r2)

例如:if(x==0,1,sin(x)/x)

isinf(expr) 表达式的值是否是无穷大

islinear(expr) 解是否是线性函数

isnan(expr) 表达式是否是非数

with 调用某个解

例如with(3,u^2)指调用解3的u^2用于本次求解;

with只能用于解的后处理,不能用于建模;

at 调用解的某个时间

例如:at(12.5,u)

timeint 表达式的时间积分

timeint(t1,t2,expr,tol,minlen),t1,t2需要是实数,expr

是表达式,tol是容差,默认大小为1e-8,minlen设置积分

的最短路径,它需要是正数,默认长度为1e-6。

timeint只能用于解的后处理,不能用于建模;

timeavg 表达式的时间积分平均值

timeavg(t1,t2,expr,tol,minlen)

linpoint 调用线性化点

lindev 计算在线性化点的表达式

当解存储了一个线性化点,那么表达式在线性化点上先线性

化,然后用当前的解来计算;

特别的:当f线性依赖于解,那么lindev(f)=f,如果不依

赖则lindev(f)=0;

如果解没有线性化点,那么会报错;

lintotal 调用线性化点的和和线性扰动

lintotalavg 在各相中计算平均lintotal

lintotalrms 在各相中计算lintotal的RMS

lintotalrms(f)=sqrt(lintotalavg(abs(f)^2)) lintotalpeak 在各相中计算lintotal的最大值

linsol 调用标准解,如linpoint或lintotal

linzero 计算表达式的根

linper 标记一个荷载项用于线性扰动求解器

ppr 精确的派生修复

用polynomial-preserving recovery计算表达式中所有用

lagrange形函数差分的变量,如 e=ux+vy

ppr(e^2)=(ppr(ux)+ppr(vy))^2

pprint 在各求解域群中精确派生修复

用这些操作符来计算梯度计算中的离散误差

ux-pprint(ux)

reacf 反应力和反应流的精确积分

用于表面积分,如在结构力学中,u,v与x,y位移有关,用

reacf(u),reaf(v)计算x,y方向上的反应力;

reacf在弱贡献中无效;

adj(expr) 用伴随灵敏度计算表达式

fsens(expr) 用函数灵敏度计算表达式

sens(expr,i) 用第二个参数向前灵敏度计算表达式

?u/?q=sens(u,q)

realdot(a,b) 两个复数的点积

realdot(a,b), real(a*conj(b))

shapeorder(variab

le)

差分一个变量使用的单元级数

prev(expr,i) 在i步前计算表达式

向后Euler法: (u-prev(u,1))/timestep

bdf(expr,i) 应用级数为i的向后差分公式

bdf(u,1) = (u-prev(u,1))/timestep

subst(expr,

expr1_orig, , expr1_subst,...) 用其他变量或表达式替换一个表达式 subst(hmnf.nutildeinit,p,pin_stat)

circint(r,expr),

circavg(r,expr),

diskint(r,expr),

diskavg(r,expr),

sphint(r,expr),

sphavg(r,expr),

ballint(r,expr),

ballavg(r,expr)

计算在一个特殊的形状,曲率为r时的表达式积分或平均值scope.ati(coordin计算表达式在i维下的表达式coordinate exprs值

ate

exprs,expr) root.mod1.at1(0,y,dom)在2D的一条边的点(0,y)上计算dom

数学函数

abs 绝对值 abs(x)

acos 反余弦 acos(x) acosh 反双曲余弦 (in radians) acosh(x) acot 反余切 (in radians) acot(x) acoth 反双曲余切 (in radians) acoth(x) acsc 反余割 (in radians) acsc(x) acsch 反双曲余割 (in radians) acsch(x)

arg 相位角(in radians) arg(x)

asec 反正割 (in radians) asec(x) asech 反双曲正割 (in radians) asech(x) asin 反正弦 (in radians) asin(x) asinh 反双曲正弦(in radians) asinh(x) atan 反正切 (in radians) atan(x)

atan2 四象限反正切 (in radians) atan2(y,x) atanh 反双曲正切 (in radians) atanh(x) besselj 一类Bessel函数 besselj(a,x) bessely 二类Bessel函数 bessely(a,x) besseli 一类改性Bessel函数 besseli(a,x) besselk 二类改性Bessel函数 besselk(a,x) ceil 上约数 ceil(x)

conj 复共轭 conj(x)

cot余切 cot(x)

coth双曲余切 coth(x)

csc余割 csc(x)

csch双曲余割 csch(x)

eps相对精度 eps

erf误差函数 erf(x)

exp指数函数 exp(x)

floor下约数 floor(x) gamma Gamma函数 gamma(x)

i,j虚数单位 i

imag虚部 imag(u)

inf无穷 inf

log自然对数 ln log(x)

log10对数,底数为10 log10(x)

log2对数,底数为2 log2(x)

max最大值 max(a,b)

min最小值 min(a,b)

mod取模 mod(a,b)

NaN,非数 nan

pi Pi pi

psi Psi函数和它的衍生物 psi(x,k)

range建立一个数列 range(a,step,b) real实部 real(u)

round四舍五入 round(x)

sec正割 sec(x)

sech双曲正割 sech(x)

sign符号函数 sign(u)

sin正弦 sin(x)

sinh双曲正弦 sinh(x)

sqrt根号 sqrt(x)

tan正切 tan(x)

tanh双曲正切 tanh(x)

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中常见函数基本用法 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等于零的情况

COMSOL-Multiphysics仿真步骤

COMSOL Multiphysics仿真步骤 1算例介绍 一电磁铁模型截面及几何尺寸如图1所示,铁芯为软铁,磁化曲线(B-H)曲线如图2所示,励磁电流密度J=250 A/cm2。现需分析磁铁内的磁场分布。 图1电磁铁模型截面图(单位cm) 图2铁芯磁化曲线 2 COMSOL Multiphysics仿真步骤 根据磁场计算原理,结合算例特点,在COMSOL Multiphysics中实现仿真。 (1) 设定物理场 COMSOL Multiphysics 4.0以上的版本中,在AC/DC模块下自定义有8种应用模式,分别为:静电场(es)、电流(es)、电流-壳(ecs)、磁场(mf)、磁场和电场(mef)、带电粒子追踪(cpt)、电路(cir)、磁场-无电流(mfnc)。其中,“磁场(mef)”是以磁矢势A作为因变量,可应用于: ①已知电流分布的DC线圈; ②电流趋于表面的高频AC线圈;

③任意时变电流下的电场和磁场分布; 根据所要解决的问题的特点——分析磁铁在线圈通电情况下的电磁场分布,选择2维“磁场(mf)”应用模式,稳态求解类型。 (2) 建立几何模型 根据图1,在COMSOL Multiphysics中建立等比例的几何模型,如图3所示。 图3几何模型 有限元仿真是针对封闭区域,因此在磁铁外添加空气域,包围磁铁。 由于磁铁的磁导率,因此空气域的外轮廓线可以理想地认为与磁场线迹线重合,并设为磁位的参考点,即 (21) 式中,L为空气外边界。 (3) 设置分析条件 ①材料属性 本算例中涉及到的材料有空气和磁铁,在软件自带的材料库中选取Air和Soft Iron。 对于磁铁的B-H曲线,在该节点下将已定义的离散B-H曲线表单导入其中即可。 ②边界条件 由于磁铁的磁导率,因此空气域的外轮廓线可以理想地认为与磁场线迹线重合,并设为磁位的参考点,即 (21) 式中,L为空气外边界。 为引入磁铁的B-H曲线,除在材料属性节点下导入B-H表单之外,还需在“磁场(mef)”节点下选择“安培定律”,域为“2”,即磁铁区域,在“磁场 > 本构关系”处将本构关系选择为“H-B曲线”。此时,即表示将材料性质表达为磁通密度B的函数,也符合以磁矢势A作为因变量时的表达,从而避免在本构关系中定义循环变量。设置窗口如下图所示。

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可列出大量的矩阵函数名。

COMSOL光学案例

Modeling of Pyramidal Absorbers for an Anechoic Chamber Introduction In this example, a microwave absorber is constructed from an infinite 2D array of pyramidal lossy structures. Pyramidal absorbers with radiation-absorbent material (RAM) are commonly used in anechoic chambers for electromagnetic wave measurements. Microwave absorption is modeled using a lossy material to imitate the electromagnetic properties of conductive carbon-loaded foam. Perfectly matched layers Port Conductive pyramidal form Unit cell surrounded by periodic conditions Conductive coating on the bottom Figure 1: An infinite 2D array of pyramidal absorbers is modeled using periodic boundary conditions on the sides of one unit cell. Model Definition The infinite 2D array of pyramidal structures is modeled using one unit cell with Floquet-periodic boundary conditions on four sides, as shown in Figure 1. The geometry of one unit cell consists of one pyramid sitting on a block made of the same

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 基础函数用法总结

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中常用命令调用格式总结

第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常用函数大全

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 的最大值的函数有两种调用格式,分别是:

COMSOL3.5快速入门案例1——导电体的热效应

COMSOL Multiphysics快速入门实例: 导电体的热效应 导电体的热效应 该模型的目的在于给出一个多物理场模型的概念并给出采用COMSOL Multiphysics求解这类问题的方法。 该实例研究了热和电流平衡之间的耦合作用现象。装置中通有直流电流。由于装置的有限电导率,在电流流过装置的过程中会出现发热现象,装置的温度将会显著上升,从而也将改变材料的导电率。这种作用过程是双向耦合的过程;即电流平衡影响到热平衡,而热平衡又反过来影响到电流平衡。 模型的过程包含以下两个基本过程: ? 绘制装置的结构图 ? 定义物理环境,设置材料属性和边界条件 ? 绘制网格 ? 选择一个合适的求解器并开始求解过程 ? 后处理结果 COMSOL Multiphysics 包含一个非常易用的CAD工具,在该模型中将会得到介绍。你可能更习惯于采用其它的CAD工具来绘制几何图形,然后将其导入到COMSOL Multiphysics中; 如果是采用这种方式,则可以跳过下面的几何结构绘制过程介绍,而通过导入一个CAD文件到COMSOL Multiphysics 中来作为分析模型,在安装目录下有为该模型准备的分析CAD几何模型文件。 简介 图 2-1显示了装置的几何结构, 该结构实际上是IC卡的支撑结构的一部分,并被焊接到一个印刷电路板上。结构由两条腿焊接到pc电路板上,上部通过一个很薄的导电薄膜连接到IC上。 两个导体部分(腿结构)是由铜制成,焊点由 60% 锑 和 40%铅组成的合金制成. 模型假定导体部分必须将1A的电流通过焊点流入到IC电路板中,计算在这个过程中温度的变化情况。

图 2-1: 装置的几何结构 模型定义 电流平衡条件由下列方程式来描述 其中 σmetal 表示电导率(S/m), V 表示电势(V). 电导率是温度相关函数,用下列表达式来描述: 其中 ρ0 表示在参考温度T 0 (K)下的参考电阻 (?·m), a 表示温度因变量的比例系数 (K -1)。 热量平衡方程包含了导电体损失的电能转化来的热能: 其中,热源由以下表达式来表达: 在这个表达式里面, k T 表示热导率(W/m·K) Q electric 表示热源(W/m 3)。 电流平衡模式下的边界条件分为三种类型: ? 在焊点处,连接点将导体部分和电路板部分连接在一起,给定电势值为: ? 装置上表面的氧化薄膜层的边界条件设置为给定电流密度,其为薄膜中的电势差的函数

COMSOL使用技巧

COMSOL Multiphysics使用技巧 (旧版通用)

一、全局约束/全局定义 对于多物理仿真,添加全局约束是COMSOL非常有用的功能之一。 例如,对于一个涉及传热的仿真,希望能够调整热源Q_0的大小,从而使得某一位置处的温度T_probe恒定在指定值T_max,我们可以直接将这个全局约束添加进来即可。

有些情况下,全局约束可能包含有对时间的微分项,也就是常说的常微分方程(ODE),COMSOL同样也支持自定义ODE作为全局约束。 例如,在一个管道内流体+物质扩散问题的仿真中,利用PID算法控制管道入口的流速u_in_ctrl,从而使得某一位置处的浓度conc 恒定在指定值c_set。(基本模块模型库> Multidisciplinary > PID control)。需要添加的PID算法约束如下式:

要添加上述约束,除变上限积分项外,另外两项都可以很容易的在边界条件中的“入口流速”设置中直接定义。因此,这个变上限积分需要转化成一个ODE ,作为全局约束加入。 令?-=t dt set c conc 0)_(int ,方程两边同对时间t 求导,得到 set c conc dt d _int -=。在COMSOL 中,变量u 对时间的导数,用ut 表示。因此变量int 的时间导数即为intt 。利用COMSOL 的“ODE 设定”,我们可以很容易的将intt-(conc-c_set)=0这个ODE 全局约束添加入模型之中。

二、积分耦合变量 COMSOL的语法中,变量u对空间的微分,分别默认为用ut,ux,uy,uz等来表示,这为仿真提供了极大的便利。那么对变量u 的空间积分呢?COMSOL提供了积分耦合变量来实现这一功能。 积分耦合变量分为四种:点(point)积分耦合变量、边(edge)积分耦合变量、边界(boundary)积分耦合变量、求解域(subdomain)积分耦合变量。根据模型的维度,会有相应积分耦合变量。用户还可以指定得到结果后的作用域,例如全局,或指定某些点、边、边界或求解域。从而可以将对积分耦合变量结果的访问限制在指定的对象上。 求解域积分耦合变量,就是对指定变量或表达式在指定的某个或者某些求解域上做积分,积分的结果赋给自定义的这个积分耦合变量。对于三维仿真,这个积分是体积分;对于二维则是面积分。最典型的应用当属对数值1进行积分,可以得到体积或面积。 边界积分耦合变量,就是对指定变量或表示在指定的某个或者某些边界上做积分,积分的结果付给自定义的这个积分耦合变量。对于三维仿真,这个积分是面积分;对于二维则是线积分。对1积分可以得到面积或边长。 边积分耦合变量,就是对指定变量或表达式在指定的某个或者某些边上做积分,积分的结果付给自定义的这个积分耦合变量。仅存在于三维仿真中,这个积分是线积分。对1积分得到边长。 点积分耦合变量,就是对指定变量或表达式在指定的某个或者某些点上给出它的值。它的最主要用法是将某个点上的结果映射到指定

常用的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)

matlab的常用函数及函数库

表2.1基本矩阵和矩阵运算(elmat)(d) 基本矩阵zeros全零矩阵(m×n)logspace对数均分向量1×n维数组ones全一矩阵(m×n)Freqspace频率特性的频率区间 rand随机数矩阵(m×n)meshgrid画三维曲面时的X,Y网格randn正态随机数矩阵(m×n)Linspace均分向量(1×n维数组)Eye(n)单位矩阵(方阵)…(竖的)将元素按列取出排成一列 特殊变量和函数ans最近的答案inf Infinity(无穷大)eps浮点数相对精度NaN Not-a-Number(非数)realmax最大浮点实数flops浮点运算次数realmin最小浮点实数computer计算机类型 pi 3.14159235358579inputname输入变量名 i,j虚数单位size多维矩阵的各维长度length一维矩阵的长度 矩阵结构提取和变换cat*链接数组diag提取或建立对角阵 fliplr矩阵左右翻转ind2sub把元素序号变为矩阵下标flipud矩阵上下翻转sub2ind把矩阵下标变为元素序号repmat复制和排成矩阵tril取矩阵的左下三角部分reshape维数重组triu去矩阵的右上三角部分rot90矩阵整体逆时针旋转90° 特殊矩阵company Companion矩阵magic魔方矩阵 gallery Higham测试矩阵pascal Pascal矩阵 hadamard Hadamard矩阵rosser经典的对称特征值测试问题hankle Hankle矩阵Toeplitz Toeplitz矩阵 hilb Hilbert矩阵vander vandermonde矩阵 invhilb Hilbert逆矩阵wilkinson Wilkinson’s特征值测试矩阵表2.5简单的元素群运算 运算式输出结果z=x.*y z=41018 z=x.\y z=4.0000 2.5000 2.0000 z=x.^y z=132729 z=x.^2z=149 z=2.^[x y]z=248163264 注:x=[1,2,3]y=[4,5,6]

matlab自动控制仿真常见函数应用

自动控制常见MATLAB 函数的应用 roots/conv/rlocus/zpk/tf/bode/step/impulse 1、 在matlab 中采用roots 函数求解多项式的根,采用conv 函数实 现多项式的积,相互连接的模块的模型求解也相当简单(1)、串联连接命令G=G1*G2(2)、并联连接命令G=G 1±G2(3)、反馈连接命令G=feedback (G1,G2,Sign )(sign 用来表示系统是正反馈或负反馈,sign=-1为负反馈) 例如:① 程序如下: >> p=[1 3 0 4]; >> roots(p) ans = -3.3553 0.1777 + 1.0773i 0.1777 - 1.0773i ②、用matlab 实现: 程序如下: >> p=[3 2 1];q=[1 4]; >> n=conv(p,q) n = 3 1 4 9 4 ③、一个传递函数模型, 32()34p s s s =++2 ()(321)(4)n s s s s =+++325()345 s G s s s s +=+++

可以由下面的命令输入: >> num=[1 5];den=[1 3 4 5]; >> G=tf(num,den) Transfer function: s + 5 --------------------- s^3 + 3 s^2 + 4 s + 5 ④、如下图所示,前向传递函数为G (S ),反馈回路传递函数为H(S),利用feedback 计算系统的闭环传递函数 程序如下: >> numg=[1];deng=[500 0 0]; >> numh=[1 1];denh=[1 2]; >> [num,den]=feedback(numg,deng,numb,denh,-1); >> [num,den]=feedback(numg,deng,numh,denh,-1); >> G=tf(num,den) () R S ???

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的永久常数i或j:基本虚数单位(即) eps:系统的浮点(Floating-point)精确度 inf:无限大,例如1/0 nan或NaN:非数值(Not a number),例如0/0 pi:圆周率 p(= 3.1415926...) realmax:系统所能表示的最大数值 realmin:系统所能表示的最小数值 nargin: 函数的输入引数个数 nargin: 函数的输出引数个数

相关主题