多領(lǐng)域物理統(tǒng)一建模語言與MWORKS實踐 課件 4-3-Modelica語法詳解-數(shù)組(2學(xué)時)_第1頁
多領(lǐng)域物理統(tǒng)一建模語言與MWORKS實踐 課件 4-3-Modelica語法詳解-數(shù)組(2學(xué)時)_第2頁
多領(lǐng)域物理統(tǒng)一建模語言與MWORKS實踐 課件 4-3-Modelica語法詳解-數(shù)組(2學(xué)時)_第3頁
多領(lǐng)域物理統(tǒng)一建模語言與MWORKS實踐 課件 4-3-Modelica語法詳解-數(shù)組(2學(xué)時)_第4頁
多領(lǐng)域物理統(tǒng)一建模語言與MWORKS實踐 課件 4-3-Modelica語法詳解-數(shù)組(2學(xué)時)_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Modelica語法詳解數(shù)組哈工大計算學(xué)部-工業(yè)軟件中心哈工大重慶研究院-無人裝備中心曲明成

博士/副教授

qumingcheng@2025年4月23日一個簡單的平拋模型是這樣的modelFlatThrow"平拋運(yùn)動"

finalparameter

Realg=9.81;

parameter

Realv0=1;

Realx(start=0);

Realh(start=10);

Realposition[2]={x,h};

Realv[2];equation

v[1]=v0;v[1]=der(x);v[2]=der(h);

der(v[2])=-g;endFlatThrow;在建模過程中,如何表示位移、速度等物理變量各個方向的分量?如何對各個分量進(jìn)行計算?數(shù)組:一組同類型變量的集合分類(根據(jù)維度):0維數(shù)組:標(biāo)量,如:3.141維數(shù)組:向量,如:2維數(shù)組:矩陣,如:……確定數(shù)組的維度以及各維度的長度數(shù)組賦值以及簡單方式生成數(shù)組將多個數(shù)組組合成一個數(shù)組讀取數(shù)組中某個元素或某個區(qū)域元素的值對數(shù)組進(jìn)行求解運(yùn)算思考目錄1.

數(shù)組聲明2.數(shù)組構(gòu)造3.數(shù)組連接4.數(shù)組索引與切片5.數(shù)組運(yùn)算6.本章回顧數(shù)組維度:

,[3]表示V為1維數(shù)組,其中第一維長度為3。

,[2,3]表示A為2維數(shù)組,其中第一維長度為2,第二維長度為3。定義數(shù)組首先要聲明數(shù)組的維度維度聲明維度聲明方式1(java方式):形式:數(shù)據(jù)類型[第1維長度,第2維長度,…]+數(shù)組名稱+(數(shù)組賦值)維度聲明方式2(C語言方式):modelArray

Reala=1;

Integerb[3]={1,2,3};

Realc[3,3]={{1,2,3},{2,1,2},{3,2,1}};endArray;形式:數(shù)據(jù)類型+數(shù)組名稱[第1維長度,第2維長度,…]+(數(shù)組賦值)定義組件時,建議使用。注意:向量只有一種表示方式,所以不分行向量和列向量避免使用兩種聲明方式混合modelArray

Reala=1;

Integer[3]b={1,2,3};

Real[3,3]c={{1,2,3},{2,1,2},{3,2,1}};endArray;1.數(shù)組聲明使用場景數(shù)組下標(biāo)為整型數(shù)組長度不確定數(shù)組下標(biāo)為布爾型數(shù)組下標(biāo)為枚舉型model

ArrayReala[3]={1,2,3};

Realb[2,3]={{1,2,3},{4,5,6}};

Integerc=3;

Reald[c]={2,4,6};end

Array;使用場景1:數(shù)組下標(biāo)為整型a[3]:3表示向量個數(shù)b[2,3]:

2表示矩陣行數(shù)3表示矩陣列數(shù)下標(biāo)的個數(shù)代表維度下標(biāo)的值代表各維度的長度。model

Arrayparameter

Integerc=3;

Reala[3]={1,2,3};

Realb[2,3]={{1,2,3},{4,5,6}};

Reald[c]={2,4,6};end

Array;注意:下標(biāo)賦值必須為參數(shù)或常值,不支持動態(tài)數(shù)組下標(biāo)賦值不能為實型錯誤正確錯誤model

ArrayReala[3]={1,2,3};

Realb[2,3]={{1,2,3},{4,5,6}};

Realc=3;Reald[c]={2,4,6};end

Array;//c不為整型//c不為參數(shù)或常數(shù)1.數(shù)組聲明使用場景2:數(shù)組長度不確定modelArray

parameter

Reala[:,:]={{1,2},{3,4},{5,6}};

Realb;equation

b=sum(a);endArray;更改參數(shù),維度和長度都可根據(jù)賦值進(jìn)行改變。參數(shù)的各維的長度不確定時:注意:數(shù)組的長度一定可以根據(jù)賦值或其他參數(shù)或常數(shù)推導(dǎo)確定;只有參數(shù)支持不確定長度,目前不支持變量使用不確定長度;盡量避免使用不確定長度;使用“:”表示不確定的長度1.數(shù)組聲明使用場景3:數(shù)組下標(biāo)為布爾型model

Array

Reala[Boolean]={1,2};

Realb[Boolean,Boolean]={{1,2},{3,4}};

Realc=a[true];

Reald=b[true,false];endarray;注意:下標(biāo)為布爾型長度為2下界為false,上界為true使用場景4:數(shù)組下標(biāo)為枚舉型modelArray

typecolors=enumeration(red,green,blue);

Reala[colors]={1,3,5};

Realb=a[colors.red];

Realc=a[colors.green];

Reald=a[colors.blue];endarray;注意:下標(biāo)為枚舉型維度為枚舉數(shù)量賦值順序按照枚舉順序1.數(shù)組聲明目錄1.

數(shù)組聲明2.數(shù)組構(gòu)造3.數(shù)組連接4.數(shù)組索引與切片5.數(shù)組運(yùn)算6.本章回顧model

Array

Reala[3]={1,2,3};

Realb[3]={4,5,6};Realc1[2,3]={{1,2,3},{4,5,6}};

Realc2[2,3]=[1,2,3;4,5,6];

Realc3[2,3]={a,b};endarray;標(biāo)量形成向量,向量形成矩陣。注意:每個參數(shù)維度相等且每一維度長度均相等向量形成矩陣只能使用{}使用{}:可以構(gòu)造多維度數(shù)組;每多一層嵌套,維度加一。

每一層多一個參數(shù),對應(yīng)維度長度加一。使用[]:只可構(gòu)造二維數(shù)組,即矩陣使用“;”

切換到下一行構(gòu)建向量使用{},構(gòu)建矩陣推薦使用[]。賦值的維度和長度與變量定義的維度和長度相同。(1)一般構(gòu)造方式

說明:2.數(shù)組構(gòu)造(2)范圍向量構(gòu)造范圍向量:向量元素取值于一個數(shù)值區(qū)間內(nèi)的固定間距點形式:范圍起點(:步長):范圍終點model

Array

Reala[3]=1.2:1.1:3.5;

Realb[3]=1.2:3.5;end

Array;model

Array

Reala[4]=1.2:3.5;

Realb[3]=1.2:1.1:3.5;end

Array;錯誤注意:區(qū)間內(nèi)能夠取值的點個數(shù)大于等于向量長度說明:如果不指定步長,則步長默認(rèn)為1起點值一定轉(zhuǎn)化為一個數(shù)組元素2.數(shù)組構(gòu)造目錄1.

數(shù)組聲明2.數(shù)組構(gòu)造3.數(shù)組連接4.數(shù)組索引與切片5.數(shù)組運(yùn)算6.本章回顧向量連接

model

Array

Reala[3]={1,2,3};

Realb[3]={4,5,6};

//向量連接形成向量

Realc[6]=cat(1,a,b);//向量連接形成矩陣//Real

d0[2,3]=cat(2,a,b)

Real

d1[2,3]={{1,2,3},{1,2,3}};

Real

d2[2,3]={a,b};end

Array;錯誤注意:連接向量只有cat函數(shù)一種方式。使用cat函數(shù)的兩個參數(shù)維度必須相等,無法使用cat函數(shù)將向量連接為矩陣。直接使用{}的形式將多個同長度的向量組成對應(yīng)矩陣排列順序:按照參數(shù)順序。向量連接形成向量向量連接形成矩陣3.數(shù)組連接矩陣連接

modelarray

Reala[1,3]=[1,2,3];

Realb[1,3]=[4,5,6];

endarray;注意:列方向拼接,行數(shù)必須相等。行方向拼接,列數(shù)必須相等?!?”優(yōu)先級比“;”高。方式1:使用cat函數(shù)2:沿2維方向連接,即列方向1:沿1維方向連接,即行方向,

:沿列方向連接;

:沿行方向連接思考:先列方向連接還是行方向連接?形似:Real

a[2,2]=[1,2;1,2];所以默認(rèn)先列方向連接,后行方向連接,與f1等價。如需要先連接行方向則使用f2的形式。方式2:使用[],推薦使用

Realc1[1,6]=cat(2,a,b);

Reald1[2,3]=cat(1,a,b);Real

f3[2,6]=[a,b;a,b];

Realc2[1,6]=[a,b];

Reald2[2,3]=[a;b];Real

f1[2,6]=[[a,b];[a,b]];Real

f2[2,6]=[[a;b],[a;b]];3.數(shù)組連接

Reala[3]={1,2,3};

Realb[3]={4,5,6};

//向量連接形成向量

Realc[6]=cat(1,a,b);目錄1.

數(shù)組聲明2.數(shù)組構(gòu)造3.數(shù)組連接4.數(shù)組索引與切片5.數(shù)組運(yùn)算6.本章回顧通過數(shù)組索引操作符“[…]”用來訪問數(shù)組元素的值。數(shù)組索引modelarray

typecolors=enumeration(red,green,blue);

parameter

Reala[3]={0,0,-9.8};

parameter

Realb[3,3]=[1,2,3;4,5,6;7,8,9];

parameter

Realc[Boolean]={2,3};

parameter

Reald[colors]={1,3,5};

Realaz;

Reale;

Realf;

Realg;equation

az=a[3];e=b[1,2];f=c[true];g=d[colors.green];endarray;向量索引:[k]中的k表示向量中第k個量的值矩陣索引:[j,k]中的j、k表示矩陣中第j行,第k列的值形式:數(shù)組名稱[索引坐標(biāo)]4.數(shù)組索引與切片通過數(shù)組索引操作符“[…]”和“:”用來訪問數(shù)組某個區(qū)域元素。數(shù)組切片modelArray

parameter

Reala[6]={1,2,3,4,5,6};

parameter

Realb[3,3]=[1,2,3;4,5,6;7,8,9];

Realc[4];

Reald[4];

Reale[3];

Realf[3];

Realg[2,3];

Realh[3,2];equation

endArray;取a中第1個到第4個量取a中最后4個量取b中第1行的所有量取b中最后1列的所有量取b中第1行到第2行組成的矩陣取b中第1列和第3列組成的矩陣說明:“1:4”表示此維度中第1個到第4個量“:”表示此維度中所有量“end”表示此維度中最后1個量“{1,3}”表示此維度中第1個和第3個量注意:取矩陣中某一行或一列中某一個或某幾個值時,取出的值為對應(yīng)個數(shù)的向量。c=a[1:4];d=a[end-3:end];e=b[1,:];f=b[:,end];g=b[1:2,:];h=b[:,{1,3}];4.數(shù)組索引與切片索引及切片歸納功能表達(dá)式維數(shù)結(jié)果類型索引v[1]0標(biāo)量x[1,1]0標(biāo)量切片v[1:p]1p長度向量x[:,1]1n長度向量x[1,:]1m長度向量x[1:p,:]2p×m矩陣x[1:1,:]21×m矩陣x[{1,3,5},:]23×m矩陣x[:,v]2n×j矩陣z[:,3,:]2i×m矩陣x[{1},:]21×m矩陣Integerv[j]Real

x[n,m]Realz[i,n,m]4.數(shù)組索引與切片modelModel10

Integerv[2]={2,3};

Realx[3,4]=[1,2,3,4;5,6,7,8;9,10,11,12];

Realy[3,2];equationy=x[:,v];endModel10;目錄1.

數(shù)組聲明2.數(shù)組構(gòu)造3.數(shù)組連接4.數(shù)組索引與切片5.數(shù)組運(yùn)算6.本章回顧數(shù)組運(yùn)算等式與賦值對數(shù)組進(jìn)行運(yùn)算求解四則運(yùn)算加法減法乘法除法內(nèi)置函數(shù)數(shù)組維和維長度的操作函數(shù)維轉(zhuǎn)換函數(shù)特殊的數(shù)組構(gòu)造函數(shù)歸約函數(shù)矩陣和矢量的代數(shù)函數(shù)5.數(shù)組運(yùn)算等式與賦值形式:a=b要求:a與b維度以及各維度的長度均相等賦值順序:各維度上的各個量一一對應(yīng)相等,

等式兩側(cè)完全相同。modelarray

parameter

Reala0=1;

parameter

Reala1[3]={1,2,3};

parameter

Reala2[2,2]=[1,2;3,4];

parameter

Reala3[2,2,2]={{{1,2},{3,4}},{{1,2},{3,4}}};

Realb0;

Realb1[3];

Realb2[2,2];

Realb3[2,2,2];equation

b0=a0;b1=a1;b2=a2;b3=a3;endarray;5.數(shù)組運(yùn)算加減形式:c=a+/-b要求:a、b、c維度以及各維度的長度均相等加減法則:各維度上的各個量一一對應(yīng)相加或相減

modelarray

parameter

Reala0=1;

parameter

Reala1[3]={1,2,3};

parameter

Reala2[2,2]=[1,2;3,4];

parameter

Reala3[2,2,2]={{{1,2},{3,4}},{{1,2},{3,4}}};

parameter

Realb0=2;

parameter

Realb1[3]={3,2,1};

parameter

Realb2[2,2]=[4,3;2,1];

parameter

Realb3[2,2,2]={{{4,3},{2,1}},{{4,3},{2,1}}};Real

c0;

Real

c1[3];

Real

c2[2,2];

Real

c3[2,2,2];equation

c0=a0+b0;c1=a1+b1;c2=a2-b2;c3=a3-b3;endarray;5.數(shù)組運(yùn)算乘法(標(biāo)量*數(shù)組)形式:c=a0*b或c=b*a0(注:a0為標(biāo)量)要求:b、c維度以及各維度的長度均相等乘法法則:標(biāo)量與各維度上的各個量一一對應(yīng)相乘

modelarray

parameter

Reala0=2;parameter

Realb0=2;

parameter

Realb1[3]={3,2,1};

parameter

Realb2[2,2]=[4,3;2,1];

parameter

Realb3[2,2,2]={{{4,3},{2,1}},{{4,3},{2,1}}};Real

c0;

Real

c1[3];

Real

c2[2,2];

Real

c3[2,2,2];equation

c0=a0*b0;c1=a0*b1;c2=b2*a0;c3=b3*a0;endarray;5.數(shù)組運(yùn)算乘法(向量*矩陣、矩陣*向量)形式:c1=a1*b2或c1=b2*a1(注:a1為向量,b2為矩陣,c1為向量)要求:a1*b2時,

a1的長度與b2行數(shù)相等;c1的長度與b2的列數(shù)相等;b2*a1時,

a1的長度與b2列數(shù)相等;c1的長度與b2的行數(shù)相等;乘法法則:a1*b2同行向量*矩陣;b2*a1同矩陣*列向量;

modelarray1

parameter

Reala1[2]={1,2};

parameter

Realb2[2,2]={{1,2},{3,4}};

Realc1_1[2];

Realc1_2[2];equation

c1_1=a1*b2;c1_2=b2*a1;endarray1;計算方式與矩陣相乘有什么區(qū)別?區(qū)別:向量*矩陣或矩陣*向量計算結(jié)果為向量矩陣*矩陣計算結(jié)果為矩陣5.數(shù)組運(yùn)算乘法(矩陣*矩陣)形式:c2=a2*b2(注:a2、b2、c2均為矩陣)要求:a2*b2時,

a2的列數(shù)與b2行數(shù)相等;c2的行數(shù)與a2的行數(shù)相等;c2的列數(shù)與a2的列數(shù)相等;乘法法則:

矩陣乘法法則modelarray

parameter

Reala2_1[1,2]=[1,2];

parameter

Reala2_2[2,1]=[1;2];

parameterReala2_3[2,3]=[1,2,3;4,5,6];

parameter

Realb2_1[2,2]=[1,2;3,4];

parameter

Realb2_2[3,3]=[1,2,3;4,5,6;7,8,9];

Realc2_1[1,2];

Realc2_2[2,1];

Realc2_3[2,3];equation

c2_1=a2_1*b2_1;c2_2=b2_1*a2_2;c2_3=a2_3*b2_2;endarray;5.數(shù)組運(yùn)算乘法(向量.*向量,矩陣.*矩陣)形式:c=a.*b要求:a、b、c維度長度均相等即可乘法法則:

對應(yīng)位置元素進(jìn)行乘法運(yùn)算modelarray

parameter

Reala1[2]={3,4};

parameter

Realb1[2]={5,8};

parameter

Reala2[2,3]=[1,4,5;6,7,8];

parameter

Realb2[2,3]=[2,4,5;5,6,8];

Realc1[2];

Realc2[2,3];equation

c1=a1.*b1;c2=a2.*b2;endarray;5.數(shù)組運(yùn)算除法(數(shù)組/標(biāo)量)形式:c=b/a0(注:a0為標(biāo)量)要求:b、c維度以及各維度的長度均相等除法法則:各維度上的各個量一一與標(biāo)量對應(yīng)相除

modelarray

parameter

Reala0=2;parameter

Realb0=2;

parameter

Realb1[3]={3,2,1};

parameter

Realb2[2,2]=[4,3;2,1];

parameter

Realb3[2,2,2]={{{4,3},{2,1}},{{4,3},{2,1}}};Real

c0;

Real

c1[3];

Real

c2[2,2];

Real

c3[2,2,2];equation

c0=b0/a0;c1=b1/a0;c2=b2/a0;c3=b3/a0;endarray;5.數(shù)組運(yùn)算除法(向量./向量,矩陣./矩陣)形式:c=a./b要求:a、b、c維度長度均相等即可乘法法則:

對應(yīng)位置元素進(jìn)行除法運(yùn)算modelarray

parameter

Reala1[2]={3,4};

parameter

Realb1[2]={5,8};

parameter

Reala2[2,3]=[1,4,5;6,7,8];

parameter

Realb2[2,3]=[2,4,5;3,5,8];

Realc1[2];

Realc2[2,3];equation

c1=a1./b1;c2=a2./b2;endarray;5.數(shù)組運(yùn)算內(nèi)置函數(shù)分類函數(shù)名稱說明數(shù)組維和維長度的操作函數(shù)ndims(A)返回數(shù)組的維數(shù)size(A,i) 返回數(shù)組A的第i維的長度size(A) 返回數(shù)組A各維長度的向量維轉(zhuǎn)換函數(shù)scalar(A)返回數(shù)組的單個元素,數(shù)組各維長度均為1vector(A)返回包含數(shù)組所有元素的向量matrix(A)返回數(shù)組前兩維的元素組成的矩陣特殊的數(shù)組構(gòu)造函數(shù)identity(n) 返回n×n的單位陣diagonal(v)返回向量v作為對角元素的對角陣zeros(n1,n2,n3,…)返回所有元素為0的n1×n2×n3×…整型數(shù)組ones(n1,n2,n3,…)返回所有元素為1的n1×n2×n3×…整型數(shù)組fill(s,n1,n2,n3,...)返回所有元素為s的n1×n2×n3×…數(shù)組linspace(x1,x2,n)返回具有n個等距元素的實型向量分類函數(shù)名稱說明歸約函數(shù)min(A) 返回所有元素中的最小值max(A) 返回所有元素中的最大值sum(A) 返回所有元素的和product(A) 返回所有元素的積矩陣和矢量的代數(shù)函數(shù)transpose(A 返回A的轉(zhuǎn)置矩陣outerProduct(v1,v2)返回向量的外積cross(v1,v2) 返回長度為3的向量x,y的叉積symmetric(A)返回A的對稱陣skew(v)返回與v關(guān)聯(lián)的斜對稱矩陣cat(n,A,B,…)返回幾個數(shù)組連接后的數(shù)組5.數(shù)組運(yùn)算數(shù)組維和維長度的操作函數(shù)ndims(A):返回數(shù)組表達(dá)式A的維數(shù)modelNdims

parameter

RealA[2,3]=[1,2,3;4,5,6];

Realb;equation

b=ndims(A);endNdims;b=2;size(A):返回數(shù)組各維長度的向量,注意:返回值為向量size(A,i):返回數(shù)組第i維度的長度modelSize

parameter

RealA_1[3]={1,2,3};

parameter

RealA_2[2,3]=[1,2,3;4,5,6];

Realb_1[1];

Realb_2;equation

b_1=size(A_1);b_2=size(A_2,1);endSize;b_1={3};b_2=2;5.數(shù)組運(yùn)算維轉(zhuǎn)換函數(shù)scalar(A):將數(shù)組轉(zhuǎn)化為標(biāo)量。說明:數(shù)組各維度的長度為1,modelScalar

parameter

RealA[1]={2};

Realb;equation

b=scalar(A);endScalar;b=2vector(A):標(biāo)量或數(shù)組轉(zhuǎn)化為向量。

說明:最多有一個維度大于1的數(shù)組,返回包含數(shù)組中元素組成的向量;

標(biāo)量返回只有1個元素的向量;modelVector

parameter

RealA_1=1;

parameter

RealA_2[1,3]=[1,2,3];

parameter

RealA_3[3,1]=[3;2;1];

Realb_1[1];

Realb_2[3];

Realb_3[3];equation

b_1=vector(A_1);b_2=vector(A_2);b_3=vector(A_3);endVector;b_1={1};b_2={1,2,3};b_3={3,2,1};modelScalar

parameter

RealA[1,1]={{3}};

Realb;equation

b=scalar(A);endScalar;b=35.數(shù)組運(yùn)算matrix(A):數(shù)組轉(zhuǎn)化為矩陣。

說明:標(biāo)量轉(zhuǎn)化為1×1的矩陣;

向量轉(zhuǎn)化為n×1的矩陣;

維度大于2的數(shù)組,第3維起每一維的大小必須為1,返回前2維度組成的矩陣modelMatrix

parameter

RealA0=1;

parameter

RealA1[3]={1,2,3};

parameter

RealA3[2,2,1]={{{1},{2}},{{3},{4}}};

Realb_1[1,1];

Realb_2[3,1];

Realb_3[2,2];equation

b_1=matrix(A0);b_2=matrix(A1);b_3=matrix(A3);endMatrix;維轉(zhuǎn)換函數(shù)5.數(shù)組運(yùn)算特殊的數(shù)組構(gòu)造函數(shù)identity(n):返回n×n的整型單位對角矩陣

說明:矩陣對角線元素為1,其余元素為0。n必須為整型標(biāo)量。modelIdentity

parameter

Integern=3;

RealA[3,3];equation

A=identity(n);endIdentity;diagonal(v):返回n×n方陣。

說明:向量v的元素在對角線上,其余元素為0。n為向量v的長度。modelDiagonal

parameter

Integerv[3]={1,2,3};

RealA[3,3];equation

A=diagonal(v);endDiagonal;zeros(n1,n2,…):返回n1×n2×…的整型零數(shù)組。

說明:所有元素均為0。n1、n2等必須為整型標(biāo)量。modelDiagonal

parameter

Integern1=2;

parameter

Integern2=3;

RealA1[2];

RealA2[2,3];equation

A1=zeros(n1);A2=zeros(n1,n2);endDiagonal;ones(n1,n2,…):返回n1×n2×…的整型數(shù)組。

說明:所有元素均為1。n1、n2等必須為整型標(biāo)量。modelDiagonal

parameter

Integern1=2;

parameter

Integern2=3;

RealA1[2];

RealA2[2,3];equation

A1=ones(n1);A2=ones(n1,n2);endDiagonal;5.數(shù)組運(yùn)算fill(s,n1,n2,…):返回n1×n2×…的數(shù)組

。

說明:s為標(biāo)量時,數(shù)組所有元素均為s;s為數(shù)組時,數(shù)組所有子數(shù)組均為s;n1、n2等必須為整型標(biāo)量。linspace(x1,x2,n):返回具有n個等距元素的實型向量。

說明:向量第一個元素為x1,最后一個元素為x2。

將x1至x2分成n-1等份,n為整型標(biāo)量。modelLinspace

parameter

Realx1=3;

parameter

Realx2=4;

parameter

Realx3=6;

parameter

Integern1=3;

parameter

Integern2=4;

RealA1[n1];

RealA2[n2];equation

A1=linspace(x1,x2,n1);A2=linspace(x1,x3,n2);endLinspace;modelFill

parameter

Reals0=2;

parameter

Reals1[2]={1,2};

parameter

Integern1=3;

parameter

Integern2=2;

RealA1[3];

RealA2_1[3,2];

RealA2_2[3,2];equation

A1=fill(s0,n1);A2_1=fill(s0,n1,n2);A2_2=fill(s1,n1);endFill;特殊的數(shù)組構(gòu)造函數(shù)5.數(shù)組運(yùn)算歸約函數(shù)min(x,

y):返回標(biāo)量x和y的最小元素。min(A):返回數(shù)組A中最小元素。min(e(i,…,j),foriinu,…,jinv):返回函數(shù)輸出組合的最小值。說明:u、v為向量,分別是函數(shù)e輸入量i、j的集合。modelMin

parameter

RealA1_1[3]={1,2,3};

parameter

RealA1_2[4]={1,3,5,7};

parameter

RealA2[2,2]=[2,4;6,8];

Realb1;

Realb2;

Realb3;

Realb4;equation

b1=min(1.2,1.5);b2=min(A1_1);b3=min(A2);b4=min(a+bforainA1_1,binA1_2);endMin;b1=1.2b2=1b3=2b4=2max(x,

y):返回標(biāo)量x和y的最大元素。max(A):返回數(shù)組A中最大元素。max(e(i,…,j),foriinu,…,jinv):返回函數(shù)輸出組合的最大值。說明:u、v為向量,分別是函數(shù)e輸入量i、j的集合。modelMax

parameter

RealA1_1[3]={1,2,3};

parameter

RealA1_2[4]={1,3,5,7};

parameter

RealA2[2,2]=[2,4;6,8];

Realb1;

Realb2;

Realb3;

Realb4;equation

b1=max(1.2,1.5);b2=max(A1_1);b3=max(A2);b4=max(a+bforainA1_1,binA1_2);endMax;b1=1.5b2=3b3=8b4=105.數(shù)組運(yùn)算(2,4,6,8,3,4,7,9,4,6,8,10)(2,4,6,8,3,4,7,9,4,6,8,10)sum(A):返回數(shù)組A中所有元素的和。sum(e(i,…,j),foriinu,…,jinv):返回函數(shù)輸出組合的和。說明:u、v為向量,分別是函數(shù)e輸入量i、j的集合。modelSum

parameter

RealA1_1[3]={1,2,3};

parameter

RealA1_2[4]={1,3,5,7};

parameter

RealA2[2,2]=[2,4;6,8];

Realb1;

Realb2;

Realb3;equation

b1=sum(A1_1);b2=sum(A2);b3=sum(a+bforainA1_1,binA1_2);endSum;b1=6b2=20b3=72product(A):返回數(shù)組A中所有元素的標(biāo)量積。product(e(i,…,j),foriinu,…,jinv):返回函數(shù)輸出組合的標(biāo)量積。說明:u、v為向量,分別是函數(shù)e輸入量i、j的集合。model

Product

parameter

RealA1_1[3]={1,2,3};

parameter

RealA1_2[4]={1,3,5,7};

parameter

RealA2[2,2]=[2,4;6,8];Realb1;

Realb2;

Realb3;equation

b1=product(A1_1);b2=product(A2);b3=product(a+bforainA1_1,binA1_2);end

Product;b1=6b2=384b3=6.9673e8歸約函數(shù)5.數(shù)組運(yùn)算(2,4,6,8,3,4,7,9,4,6,8,10)(2,4,6,8,3,4,7,9,4,6,8,10)矩陣和矢量的代數(shù)函數(shù)transpose(A):返回數(shù)組A中前兩維的轉(zhuǎn)置。

說明:

維度必須大于等于2。modelTranspose

parameter

RealA[2,3]=[1,2,3;4,5,6];

RealB[3,2];equation

B=transpose(A);endTranspose;outerProduct(v1,v2):返回向量v1和向量v2的外積。

說明:

輸出為size(v1)×size(v2)的矩陣modeloutProduct

parameter

Realv1[3]={1,2,3};

parameter

Realv2[3]={1,3,5};

RealA[3,3];equation

A=outerProduct(v1,v2);endoutProduct;cross(v1,v2):返回向量v1和向量v2的叉積。

說明:v1,v2長度均為3,輸出向量的長度也為3。modelCross

parameter

Realv1[3]={1,2,3};

parameter

Realv2[3]={1,3,5};

Realv[3];equation

v=cross(v1,v2);endCross;5.數(shù)組運(yùn)算矩陣和矢量的代數(shù)函數(shù)symmetric(A):返回一個對稱矩陣。說明:

輸出矩陣的對角線元素等于A的對角線元素,對角線以下的元素被置對角線以上對稱的元素。A必須為方陣。modelSymmetric

parameter

RealA[3,3]=[1,2,3;4,5,6;7,8,9];

RealB[3,3];equation

B=symmetric(A);endSymmetric;skew(v):返回一個與向量v關(guān)聯(lián)的3×3斜對稱矩陣。說明:

v的長度為3。modelSkew

parameter

Realv[3]={1,2,3};

RealA[3,3];equationA=skew(v);endSkew;5.數(shù)組運(yùn)算內(nèi)置函數(shù)小結(jié)分類函數(shù)名稱說明數(shù)組維和維長度的操作函數(shù)ndims(A)返回數(shù)組的維數(shù)size(A,i) 返回數(shù)組A的第i維的長度size(A) 返回數(shù)組A各維長度的向量維轉(zhuǎn)換函數(shù)scalar(A)返回數(shù)組的單個元素,數(shù)組各維長度均為1vector(A)返回包含數(shù)組所有元素的向量matrix(A)返回數(shù)組前兩維的元素組成的矩陣特殊的數(shù)組構(gòu)造函數(shù)identity(n) 返回n×n的單位陣diagonal(v)返回向量v作為對角元素的對角陣zeros(n1,n2,n3,…)返回所有元素為0的n1×n2×n3×…整型數(shù)組ones(n1,n2,n3,…)返回所有元素為1的n1×n2×n3×…整型數(shù)組fill(s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論