文档库 最新最全的文档下载
当前位置:文档库 › 数学建模-MATLAB-暑期培训资料

数学建模-MATLAB-暑期培训资料

数学建模-MATLAB-暑期培训资料
数学建模-MATLAB-暑期培训资料

数学建模暑期培训-MATLAB软件

庄思发

1熟悉软件操作界面

1.1命令窗口

MATLAB执行命令的主窗口,命令于提示符“>>”之后输入,回车确认执

行;

1.2命令历史窗口

显示用户过去所使用过全部命令,可双击后重新执行,避免重新输入命

令,或使用上、下方向键调出修改后再重新执行;

1.3工作空间窗口

显示当前MATLAB在计算机内存中存在的变量、数据等详细信息,以便用户查看,可删除其中若干个或全部删除;

1.4当前工作目录窗口

显示用户当前工作时所处在的目录位置,该目录是用户存放及打开文件时MATLAB指向的默认目录,可通过其目录选择器重新指向新用户目录;

在该窗口中可以观察到当前目录中所有文件的详细情况,可以直接选定某人文件,通过单击右键运行或打开该文件进行编辑。

2 基本运算

2.1 四则运算 + - * / \

2.2 乘方、开方 “^” sqrt( )

例:32:>>2^3↙ 3

1

2:>>2^(1/3) ↙ 2.3 指数函数 exp(x),e :exp(1);;2e :exp(2);

2.4 标点符号 逗号(,)输出结果;分号(;)不输出结果

2.5 常量与变量

常量

圆周率π:pi ;无穷大∞:inf ;等

变量

定义变量不必事先声明,MATLAB 会通过变量所获得的值自动识别,变量名必须以字母开头,后可接字母、数字或下划线,不可使用空格与标点符号;

注意:变量名区分大、小写;

2.6 常用函数:

三角函数

sin(x)、cos(x)、asin(x)、acos(x)、tan(x)、atan(x)、cot(x) acot(x). 指数、对数函数

exp(x) log(x) log10(x) log2(x).

四舍五入

round(x)

求余

mod(x,y):余数符号与y 相同;

rem(x,y):余数符号与x相同.

舍入函数

fix(x):与零最接近的整数;

floor(x):不大于x的整数;

ceil(x):不小于x的整数.

求模(绝对值)

abs(x)

3数值运算

3.1向量运算

向量(数组)表示

元素用中括号括起,元素间用逗号或空格或分号隔开;

例:>>a=[2 4 6 7 8]↙>>b=[1;4;7;9]↙

等差向量

冒号生成法初值:步长:终值;

例:>>c=1:10;↙>>d=1:0.5:10↙

linspace(初值,终值,分段数)

例:>>e=linspace(1,10,10)↙>>linspace(0,10,6)↙ 向量(数组)运算

向量(数组)与常数的加、减

例:>>a=[2 3 5]↙>>a+3,a-2↙

向量(数组)与常数的乘、除

例:>>a*2,a/3↙

向量与向量的加、减法:元素个数必须相同

例:>>a=[1 3 5],b=[2,4,6],c=1:4,a+b,a-b,a+c↙

向量点积:dot(a,b);向量维数不超过3

例:>>dot(a,b)↙

向量叉积:cross(a,b);向量维数不超过3

例:>>cross(a,b)↙

数组的乘、除:.*;./;

例:>>a.*b, a./b ↙

数组的乘方:.^

例:>>a.^2↙

向量(数组)元素的选取

单下标a([ ])

例:>>a=1:10;a(7)↙%选取向量a 的第七个元素

例:>>a([1 3 7])↙%选取向量a 的第1、3、7个元素

向量(数组)排序

sort(a):从小到大;

例:>>a=rand(1,10),sort(a)↙%产生10个元素的行向量,并进行升序排列

向量(数组)长度或大小的检测

length(a);

例:>>length(a)↙%显示向量元素个数

size(a)

例:>>size(a) ↙ %将以向量形式显示矩阵a 的行数与列数 向量(数组)求和

sum(a)

例:>>sum(a)↙%求向量a 的元素总和

向量与多项式

表示:n n n a x a x a x p +++=- 110)(:],,,[10n a a a p =(降幂排列) 例:323)(341+++=x x x x p ,12)(232++=x x x p ,则该多项式

在MATLAB 中可如下表示

>>p1=[1 3 0 2 3],p2=[0 1 2 0 1]↙

多项式相加、减:向量的相加、减(注意补零)

例:>>p1+p2,p1-p2↙

多项式的积:conv(p1,p2);

例:>>conv(p1,p2)↙

多项式的除:deconv(p1,p2);[q,r]=deconv(p1,p2)

例:>>deconv(p1,p2)↙%只输出商式

>>[q,r]=deconv(p1,p2)↙%输出商式与余式

3.2 矩阵(多元数组)运算

矩阵(多元数组)表示

元素用中括号括起,元素间用逗号或空格分列,用分号分行;

例:矩阵????

? ??268493561,在MATLAB 中可如下输入:

>>A=[1 6 5;3 9 4;8 6 2]↙

特殊矩阵

全1矩阵与全零矩阵:ones(m,n);zeros(m,n);作用:预分配空间 例:>>ones(3)↙%产生3阶全1方阵

>>ones(3,4)↙%产生3行4列的全1矩阵

随机矩阵:rand(m,n):产生元素介于0,1之间的矩阵

例:>>rand(3),rand(3,4)↙%分别产生3阶与3行4列随机矩阵 矩阵(多元数组)的运算

矩阵(多元数组)与常数的加、减

例:>>A+3↙ >>A-3,5-A ↙

矩阵(多元数组)与常数的乘、除

例:>>A*3↙ >>A/2↙

矩阵与矩阵的加、减法:形状大小必须相同

例:>>A+B↙ %A,B行、列数相同

矩阵与矩阵的乘、除法:*;与/或\:遵循矩阵乘除运算法则例:>>A*B,A/B↙ %矩阵B的行列式不为0

矩阵的乘方:^:要求为方阵

例:>>A^2↙

多元数组的乘、除法:.*;.\;./;

例:>>C.*3↙>>C./2↙ %矩阵C的每个元素与常数相乘除;

多元数组的乘方:.^

例:>>C.^3↙ %计算C的第个元素的立方。

矩阵(多元数组)元素的选取

单下标A(m)或双下标A(i,j) A([1 3],[2 4])

矩阵(多元数组)的排序

sort(A,1):按列方向排序;sort(A,2):按行方向排序

矩阵(多元数组)大小的检测

size(A):显示行数与列数

矩阵(多元数组)的求和

sum(a,1):按列方向求和;sum(a,2):按行方向求和;

矩阵与线性代数

矩阵的行列式:det(A)

矩阵的逆:inv(A),其中A的行列式不为0

矩阵的转置:A?

矩阵的特征值与特征向量:[v,d]=eig(A):

线性方程组的解:A\b:A:系数矩阵;b:常数列向量

3.3简单数理统计

算术平均值

mean(a)或mean(a,1)或mean(a,2):a是向量或矩阵

方差

var(a):a是向量或矩阵

标准差

std(a) :a是向量或矩阵

4符号运算

4.1符号变量、表达式的定义

符号变量的定义

>>sym(…a?)↙>>sym(…a*x+b?)↙%用sym直接定义符号表达式;

>>syms x y z t …↙ %用syms函数定义多个符号变量

符号表达式输入

>>syms x↙

>>y=f(x)↙或>>sym(…f(x)?)

4.2符号表达式的操作

四则运算

使用通常运算符:+-*/\

化简

>>simplify(S)

合并同类项

>>collect(S,v)

因式分解

factor(S):S为符号表达式则进行因式分解,S为常数则进行因子分

替换求值

>>subs(S,?v?,a) %用数值a的值替换表达式中指定变量v;

>>subs(S,?v?,?t?)%用新变量t替换表达式中指定变量v。

4.3微积分运算

极限

limit(S,?v?,a,?right?或?left?)

微分

diff(S,?v?,n)

积分

int(S,?v?,lb,ub)

4.4方程求解运算

一般方程(组)

solve(‘eq’,’v’)

[v1,v2,…,vn]=solve(…eq1?,?eq2?,…,?eqn?,?v1,v2,…,vn?)

线性方程组

linsolve(A,b):A为系数矩阵,b为常数列向量

微分方程(组)

y:Dny;

'y:Dy;''y:D2y;)(n

求通解

dsolve(…deq?,?v?)或dsolve(…deq1,deq2,…,deqn?,?v1,v2,…,vn?)

求特解

dsolve(…deq1,deq2,…,deqn?,?y(x0)=y0,Dy(x0)=y1,D2y(x0)=y2,…?,?v1,v

2,…,vn?,)

5简单作图

5.1二维曲线

plot(X,Y)

5.2三维曲线

plot3(X,Y,Z)

5.3多个图形

subplot(m,n,k), 1 <= k <= m*n

5.4特殊图形

饼形图

pie(Y);pie(Y,[ EXPLODE]), EXPLODE:为要突出显示的数据向量 条形图

bar(Y):默认横坐标为自然数;bar(X,Y):X为自定义横坐标 曲线拟合

polyfit(X,Y,N):多项式拟合,X,Y为原始数据,N为拟合多项式的

次数

6程序设计

6.1M文件介绍

脚本文件命令集合文件,批量执行

函数文件第一行以字句:function 开头(7.0以上版本取消)

6.2控制结构

顺序结构

选择结构

单个选择

if 条件表达式

执行语句

两个选择

if条件表达式1

执行语句1

else条件表达式2

执行语句2

end

多个选择

if 条件表达式1

执行语句1

elseif条件表达式2

执行语句2

elseif 条件表达式2

执行语句3

else 条件表达式n

执行语句n

end

循环结构

for循环适合循环次数确定的情况

for 循环变量=初值:步长:终值

循环体

end

while循环适合循环次数不确定的情况while 条件表达式

循环体

注意:while循环容易出现死循环,使用时一定要注意.若出现死循环,

则按键盘:Ctrl+C强制结束程序.

提示:与各种编程语言一样,各种结构之间可以互相嵌套使用.

7数据拟合与插值

7.1多项式最小二乘法拟合

polyfit(X,Y,N):X,Y为原始数据,N为拟合的阶数(次数)

7.2一维线性插值

Y0=interp1(X,Y,X0):用于计算插值X0处的函数值,若省略X,则默认为自然数1-length(Y).

Y0= interp1(X,Y,X0,‘methord’):使用‘methord’参数指定插值方法,‘methord’可选为:

'nearest' - 线性最近项插值

'linear' - 线性插值

'spline' - 3次样条插值

'pchip' - 3次Hermite插值

'cubic' - 立方插值

7.3lagrange插值

Y0=Lagrange(X,Y,x0),用法与interp1类似.

7.4三次样条插值

YY=spline(X,Y,XX):计算插值点向量XX的三次样条插值多项式所对应

的值.

8规划问题求解

符号说明:

f :目标函数中的方程的系数矩阵

A :不等式约束中的系数矩阵

b :不等式约束中的常数列向量

Aeq :等式约束中的系数矩阵

beq :等式约束中的常数列向量

lb :决策变量的下界

ub :决策变量的上界

X0:初值(可省)

opti :优化选项(可省)

8.1 线性规则

标准模型:

??

???≤≤=≤ub X lb beq

AeqX b AX t s X

f ..' min 命令:[X,fval]=linprog(f,A,b,Aeq,beq,lb,ub,X0,opti) 例:求解如下线性规则问题

???????=≥≤+≤++≤+----3

,2,1,030

234242320..645 min 213213213

21i x x x x x x x x x t s x x x i 代码: f=[-5;-4;-6];

A=[1 -1 1;3 2 4;3 2 0];

b=[20;42;30];

Lb=zeros(3,1);

[x,fval]=linprog(f,A,b,[],[],lb)

8.2 大规模二次规划

标准模型:

??

???≤≤≤≤+=ub X lb beq

AeqX B AX t s X f HX X Q ..''2

1 min 命令:[X,fval]=quadprog(H,f,A,b,Aeq,beq,lb,ub,X0,opti) 例1:求解如下二次规划问题

?????=≥≤+≤++-+2,1,035

3220..4

433 min 212112221i x x x x x t s x x x i

代码: H=[6 0;0 6];

f=[-4 0];

A=[1 1;2 3];

b=[20;35];

lb=[0;0];

[X,fval]=quadprog(H,f,A,b,[],[],lb,[])

提示:规划问题中的常数与计算无关,因此可忽略.

例2:求解如下二次规划问题

???????=≥≤+≤+-≤+---+2

,1,03

2222..622

1 min 21212121212221i x x x x x x x t s x x x x x x i 代码: H=[1 -1;-1 2];

f=[-2;-6];

A=[1 1;-1 2;2 1];

b=[2;2;3];

lb=zeros(2,1);

[X,fval]=quadprog(H,f,A,b,[],[],lb)

数模培训1(MATLAB基础)

数模培训 一、曲线插值与拟合 二、数值微分与积分 三、微分方程数值解 四、优化问题 五、回归分析 1.一维插值 对表格给出的函数,求出没有给出的函数值。 在实际工作中,经常会遇到插值问题。 例1:表1是待加工零件下轮廓线的一组数据,现需要得到x坐标每改变0.1时所对应的y的坐标. 下面是关于插值的两条命令(专门用来解决这类问题): y=interp1(x0,y0,x) 分段线性插值 y=spline(x0,y0,x) 三次样条插值 其中x0,y0是已知的节点坐标,是同维向量。y对应于x处的插值。y与x是同维向量。解决上述问题,我们可分两步: 一用原始数据绘图作为选用插值方法的参考. 二确定插值方法进行插值计算 对于上述问题,可键入以下的命令: x0=[0,3,5,7,9,11,12,13,14,15]'; y0=[0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1.0,1.6]' plot(x0,y0) %完成第一步工作 x=0:0.1:15; y=interp1(x0,y0,x'); %用分段线性插值完成第二步工作 plot(x,y) y=spline(x0,y0,x'); plot(x,y) %用三次样条插值完成第二步工作 练习:对y=1/(1+x2),-5≤x≤5,用n(=11)个节点(等分)作上述两种插值,用m(=21)个插值点(等分)作图,比较结果。 解:键入并运行如下命令 n=11;m=21;x=-5:10/(m-1):5;y=1./(1+x.^2); xo=-5:10/(n-1):5;yo=1./(1+xo.^2); y1=interp1(xo,yo,x); y2=spline(xo,yo,x); plot(x,y,'r',x,y1,'b',x,y2,'k')

2015研究生数学建模MATLAB程序(完整版)

′ú??ò?£o % ?a?ü1y3ì?°??ò??ü??í3?? clear clc fid1=fopen('mingwen1.txt','r'); str1=fgets(fid1); fclose(fid1); fid2=fopen('jiemihou1.txt','r'); str2=fgets(fid2); fclose(fid2); % é?è¥μ¥′ê????μ?????oí±êμ?·?o? ad=find(str2==',');str2(ad)='';ad=find(str2=='.');str2(ad)='';ad=find(str2==';') ;str2(ad)=''; ad=find(str2=='''');str2(ad)='';ad=find(str2=='?');str2(ad)='';ad=find(str2=='£o');str2(ad)=''; ad=find(str2=='"');str2(ad)='';ad=find(str2=='-');str2(ad)='';ad=find(str2= ='/');str2(ad)=''; ad=find(str2==' ');str2(ad)=''; for i=0:25; ad=find(str1=='A'+i);str1(ad)='a'+i; end for i=0:25; ad=find(str2=='A'+i);str2(ad)='a'+i; end n1(1,26)=0; n2(1,26)=0; n1(1)=sum(str1=='a');n2(1)=sum(str2=='a'); n1(2)=sum(str1=='b');n2(2)=sum(str2=='b'); n1(3)=sum(str1=='c');n2(3)=sum(str2=='c'); n1(4)=sum(str1=='d');n2(4)=sum(str2=='d'); n1(5)=sum(str1=='e');n2(5)=sum(str2=='e'); n1(6)=sum(str1=='f');n2(6)=sum(str2=='f'); n1(7)=sum(str1=='g');n2(7)=sum(str2=='g'); n1(8)=sum(str1=='h');n2(8)=sum(str2=='h'); n1(9)=sum(str1=='i');n2(9)=sum(str2=='i'); n1(10)=sum(str1=='j');n2(10)=sum(str2=='j'); n1(11)=sum(str1=='k');n2(11)=sum(str2=='k'); n1(12)=sum(str1=='l');n2(12)=sum(str2=='l'); n1(13)=sum(str1=='m');n2(13)=sum(str2=='m'); n1(14)=sum(str1=='n');n2(14)=sum(str2=='n'); n1(15)=sum(str1=='o');n2(15)=sum(str2=='o');

MATLAB及在数学建模中的应用

第1讲MATLAB及 在数学建模中的应用 ? MatLab简介及基本运算?常用计算方法 ?应用实例

一、 MatLab简介及基本运算 1.1 MatLab简介 1.2 MatLab界面 1.3 MatLab基本数学运算 1.4 MatLab绘图

1.1 MatLab简介?MATLAB名字由MATrix和 LABoratory 两词组成。20世纪七十年代后期, 美国新墨西哥大学计算机科学系主任Cleve Moler教授为减轻学生编程负担,为学生设计了一组调用LINPACK和EISPACK库程序的“通俗易用”的接口,此即用FORTRAN编写的萌芽状态的MATLAB。

?经几年的校际流传,在Little的推动下,由Little、Moler、Steve Bangert合作,于1984年成立了MathWorks公司,并把MATLAB正式推向市场。从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。

?1997年春,MATLAB5.0版问世,紧接着是5.1、5.2、5.3、6.0、6.1、6.5、7.0版。现今的MATLAB拥有更丰富的数据类型和结构、更友善的面向对象、更加快速精良的图形可视、更广博的数学和数据分析资源、更多的应用开发工具。 ?20世纪九十年代的时候,MATLAB已经成为国际控制界公认的标准计算软件。

?MATLAB具有用法简易、可灵活运用、程式结构强又兼具延展性。以下为其几个特色: ①可靠的数值运算和符号计算。在MATLAB环境中,有超过500种数学、统计、科学及工程方面的函 数可使用。 ②强大的绘图功能。 MATLAB可以绘制各种图形,包括二维和三维图形。 ③简单易学的语言体系。 ④为数众多的应用工具箱。

数学建模(Matlab)

数学规划作业(MatLab) 1、某厂向用户提供发动机,合同规定,第一、二、三季度末分别交货40台、60台、80台.每季度的生产费用为()2 =+ f x ax bx (单位:元), 其中x是该季度生产的台数.若交货后有剩余,可用于下季度交货,但需支付存储费,每台每季度c元.已知工厂每季度最大生产能力为100台,第一季度开始时无存货,设a=50、b=0.2、c=4,问:工厂应如何安排生产计划,才能既满足合同又使总费用最低.讨论a、b、c变化对计划的影响,并作出合理的解释. 解: 问题的分析和假设: 分析: 问题的关键在于由于工厂的生产能力足以满足每个季度用户的需求,但是为了使总费用最少,那么利用每个季度生产费用的不同,可用利用上个生产费用低的季度多生产来为下个季度进行准备,前提是本月节省下的费用减去总的发动机存储费用还有剩余,这样生产才有价值,才可能满足合同的同时又能使总费用最低。基本假设:1工厂的生产能力不受外界环境因素影响。2为使总费用最低,又能满足合同要求,各个季度之间的生产数量之间是有联系的。3第一季度开始时无存货。4工厂每季度的生关费用与本季度生产的发动机台数有关。5生产要按定单的数量来进行,生产的数量应和订单的数量相同,以避免生产出无用的机器。 符号规定:X1―――第一季度生产发动机的数量 X2―――第二季度生产发动机的数量

X3―――第三季度生产发动机的数量 建模: 1.三个季度发动机的总的生产量为180台。 2.每个季度的生产量和库存机器的数量之和要大于等于本季度的交货数量。 3.每个月的生产数量要符合工厂的生产能力。 4.将实际问题转化为非线性规划问题,建立非线性规划模型 目标函数 min f(x)=50(x1+x2+x3)+0.2(x12+x22+x32)+4(x1-40)+4(x1+x2-100) 整理,得 min f(x)=50(x1+x2+x3)+0.2(x12+x22+x32)+4(2x1+x2-140) 约束函数s.t x1+x2≥100; x1+x2+x3=180; 40≤x1≤100; 0≤x2≤100; 0≤x3≤100; 求解的Matlab程序代码: M-文件 fun.m: function f=fun (x); f=50*(x(1)+x(2)+x(3))+0.2*(x(1)^2+x(2)^2+x(3)^2)+4*(2*x(1) +x(2)-140)主程序fxxgh.m:

数学建模matlab例题参考及练习

数学实验与数学建模 实验报告 学院: 专业班级: 姓名: 学号: 完成时间:年月日

承 诺 书 本人承诺所呈交的数学实验与数学建模作业都是本人通过学习自行进行编程独立完成,所有结果都通过上机验证,无转载或抄袭他人,也未经他人转载或抄袭。若承诺不实,本人愿意承担一切责任。 承诺人: 年 月 日 数学实验学习体会 (每个人必须要写字数1200字以上,占总成绩的20%) 练习1 一元函数的图形 1. 画出x y arcsin =的图象. 2. 画出x y sec =在],0[π之间的图象. 3. 在同一坐标系中画出x y =,2x y =,3 x y = ,3x y =,x y =的图象. 4. 画出3 2 3 2)1()1()(x x x f + +-=的图象,并根据图象特点指出函数)(x f 的奇偶性. 5. 画出)2ln(1++=x y 及其反函数的图象. 6. 画出3 21+=x y 及其反函数的图象.

练习2 函数极限 1.计算下列函数的极限. (1) x x x 4 cos 1 2 sin 1 lim 4 - + π → . 程序: sym x; f=(1+sin(2*x))/(1-cos(4*x)); limit(f,x,pi/4) 运行结果: lx21 ans = 1 (2). 程序: sym x; f=(1+cos(x))^(3*sec(x)); limit(f,x,pi/2) 运行结果: lx22 ans = exp(3) (3) 2 2 ) 2 ( sin ln lim x x x - π π → . 程序: sym x; f=log(sin(x))/(pi-2*x)^2; limit(f,x,pi/2) 运行结果: lx23 ans = -1/8 (4) 2 1 2 lim x x e x →. 程序: x x x sec 3 2 ) cos 1( lim+ π →

matlab在数学建模中的应用

Matlab在数学建模中的应用 数学建模是通过对实际问题的抽象和简化,引入一些数学符号、变量和参数,用数学语言和方法建立变量参数间的内在关系,得出一个可以近似刻画实际问题的数学模型,进而对其进行求解、模拟、分析检验的过程。它大致分为模型准备、模型假设、模型构成、模型求解、模型分析、模型检验及应用等步骤。这一过程往往需要对大量的数据进行分析、处理、加工,建立和求解复杂的数学模型,这些都是手工计算难以完成的,往往在计算机上实现。在目前用于数学建模的软件中,matlab 强大的数值计算、绘图以及多样化的工具箱功能,能够快捷、高效地解决数学建模所涉及的众多领域的问题,倍受数学建模者的青睐。 1 Matlab在数学建模中的应用 下面将联系数学建模的几个环节,结合部分实例,介绍matlab 在数学建模中的应用。 1.1 模型准备阶段 模型准备阶段往往需要对问题中的给出的大量数据或图表等进行分析,此时matlab的数据处理功能以及绘图功能都能得到很好的应用。 1.1.1 确定变量间关系 例1 已知某地连续20年的实际投资额、国民生产总值、物价指数的统计数据(见表),由这些数据建立一个投资额模型,根据对未来国民生产总值及物价指数的估计,预测未来的投资额。

表1 实际投资额、国民生产总值、物价指数的统计表 记该地区第t年的投资为z(t),国民生产总值为x(t),物价指数为y(t)。 赋值: z=[90.9 97.4 113.5 125.7 122.8 133.3 149.3 144.2 166.4 195 229.8 228.7 206.1 257.9 324.1 386.6 423 401.9 474.9 424.5]' x=[596.7 637.7 691.1 756 799 873.4 944 992.7 1077.6 1185.9 1326.4 1434.2 1549.2 1718 1918.3 2163.9 2417.8 2631.6 2954.7 3073]' y=[0.7167 0.7277 0.7436 0.7676 0.7906 0.8254 0.8679 0.9145 0.9601 1 1.0575 1.1508 1.2579 1.3234 1.4005 1.5042 1.6342 1.7842 1.9514 2.0688]' 先观察x与z之间,y与z之间的散点图 plot(x,z,'*') plot(y,z,'*') 由散点图可以看出,投资额和国民生产总值与物价指数都近似呈

基于MATLAB的光伏电池通用数学模型

本文由qpadm贡献 pdf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 第 25 卷第 4 期 2009 年 4 月 电 力 For personal use only in study and research; not for commercial use 科 学 与 For personal use only in study and research; not for commercial use 工 程 Vol.25, No.4 Apr., 2009 11 For personal use only in study and research; not for commercial use Electric Power Science and Engineering 基于 MATLAB 的光伏电池通用数学模型 王长江 For personal use only in study and research; not for commercial use (华北电力大学电气与电子工程学院,北京 102206)摘要:针对光伏电池输出特性具有强烈的非线性,根据太阳能电池的直流物理模型,利用 MATLAB 建立了太阳能光伏阵列通用的仿真模型。利用此模型,模拟任意环境、太阳辐射强度、电池板参数、电池板串并联方式下的光伏阵列 I-V 特性。模型内部参数经过优化,较好地反应了电池实际特性。模型带有最大功率点跟踪功能,能很好地实现光伏发电系统最佳工作点的跟踪。关键词:光伏电池;MPPT;I-V 特性中图分类号:TM615 文献标识码:A 引 言 1 光伏电池特性 随着化石能源的消耗,全球都在面临能源危机,太阳能依靠其清洁、分布广泛等特点成为当今发展速度居第二位的能源 [1] 。光伏阵列由多个单体太阳能电池进行串并联封装而成,是光伏发电的能源供给中心,其 I V 特性曲线随日照强度和太阳能电池温度变化,即 I=f ( V, S, T ) 。目前而厂家通常仅为用户提供标准测试的短路电流 I sc 、开路电压 Voc、最大功率点电流 I m 、最大功率点电压 V m 值,所以如何根据已有的标准测试数据来仿真光伏阵列在不同日照、温度下的 I V,P V 特性曲线,在光伏发电系统分析研究中显得至关重要 [2] 。文献 [ 3~4 ] 介绍了一些光伏发电相关的仿真模型,但这些模型都需要已知一些特定参数,使得分析研究有一些困难。文献 [ 5 ] 介绍了经优化的光伏电池模型,但不能任意改变原始参数。文献 [ 6 ] 给出了光伏电池的原理模型,但参数选用典型值,会造成较大的误差。本文考虑工程应用因素,基于太阳能电池的物理模型,建立了适用于任何条件下的工程用光伏电池仿真模型。

matlab数学建模实例

第四周 3. 中的三个根。 ,在求8] [0,041.76938.7911.1-)(2 3=-+=x x x x f function y=mj() for x0=0:0.01:8 x1=x0^3-11.1*x0^2+38.79*x0-41.769; if (abs(x1)<1.0e-8) x0 end end 4.分别用简单迭代法、埃特金法、牛顿法求解方程,并比较收敛性与收敛速度(ε分别取10-3、10-5、10-8)。 简单迭代法: function y=jddd(x0) x1=(20+10*x0-2*x0^2-x0^3)/20; k=1; while (abs(x1-x0)>=1.0e-3) x0=x1; x1=(20+10*x0-2*x0^2-x0^3)/20;k=k+1; end x1 k 埃特金法: function y=etj(x0) x1=(20-2*x0^2-x0^3)/10; x2=(20-2*x1^2-x1^3)/10; x3=x2-(x2-x1)^2/(x2-2*x1+x0); k=1; while (abs(x3-x0)>=1.0e-3) x0=x3; x1=(20-2*x0^2-x0^3)/10; x2=(20-2*x1^2-x1^3)/10; x3=x2-(x2-x1)^2/(x2-2*x1+x0);k=k+1; end 2 ,020102)(023==-++=x x x x x f

x3 k 牛顿法: function y=newton(x0) x1=x0-fc(x0)/df(x0); k=1; while (abs(x1-x0)>=1.0e-3) x0=x1; x1=x0-fc(x0)/df(x0);k=k+1; end x1 k function y=fc(x) y=x^3+2*x^2+10*x-20; function y=df(x) y=3*x^2+4*x+10; 第六周 1.解例6-4(p77)的方程组,分别采用消去法(矩阵分解)、Jacobi迭代法、Seidel迭代法、松弛法求解,并比较收敛速度。 消去法: x=a\d 或 [L,U]=lu(a); x=inv(U)inv(L)d Jacobi迭代法: function s=jacobi(a,d,x0) D=diag(diag(a)); U=-triu(a,1); L=-tril(a,-1); C=inv(D); B=C*(L+U); G=C*d; s=B*x0+G; n=1; while norm(s-x0)>=1.0e-8 x0=s; s=B*x0+G;

MATLAB及其在数学建模中的应用

Modeling and Simulation 建模与仿真, 2015, 4(3), 61-71 Published Online August 2015 in Hans. https://www.wendangku.net/doc/e417041968.html,/journal/mos https://www.wendangku.net/doc/e417041968.html,/10.12677/mos.2015.43008 Study of MATLAB and Its Application in Mathematical Modeling Chuanqi Qin, Ting Wang, Yuanfeng Jin School of Science, Yanbian University, Yanji Jilin Email: yfkim@https://www.wendangku.net/doc/e417041968.html, Received: Jul. 22nd, 2015; accepted: Aug. 11th, 2015; published: Aug. 18th, 2015 Copyright ? 2015 by authors and Hans Publishers Inc. This work is licensed under the Creative Commons Attribution International License (CC BY). https://www.wendangku.net/doc/e417041968.html,/licenses/by/4.0/ Abstract This article firstly introduces the development and the features of MATLAB software. And then the concept and the process of mathematical modeling are explained. After, the article briefly intro-duces some MATLAB solution methods of mathematical modeling problems, giving several in-stances of some methods. At the last of this article, through a relatively complete example, it fo-cuses on the application of MATLAB in mathematical modeling. It has been found that the applica-tion of MATLAB in mathematical modeling can improve the efficiency and quality of mathematical modeling, enrich the means and methods of mathematical modeling, and play a very important role in the teaching of mathematical modeling course. Keywords MATLAB, Mathematical Modeling, Mathematic Model MATLAB及其在数学建模中的应用 秦川棋,王亭,金元峰 延边大学理学院,吉林延吉 Email: yfkim@https://www.wendangku.net/doc/e417041968.html, 收稿日期:2015年7月22日;录用日期:2015年8月11日;发布日期:2015年8月18日

基于MATLAB的数学建模题

1求1到20的阶乘和M文件 function p=fac(n) %fac函数由于阶乘 if n==0 p=1; else p=1; i=1; while i<=n p=p*i; i=i+1; end end clear sum=0; for i==1:20 sum=sum+fac(i) end sum (1)

(2)运行结果 2、用起泡法排数 clc clear all s=[9 8 4 2 7 10 6 1 5 3]; %要排序的数列Ls=length(s); for i=1:Ls-1 for j=1:Ls-i if s(j)>s(j+1) t=s(j); s(j)=s(j+1); s(j+1)=t; end

end end s %输出排序后结果 结果 3、matlab 有一函数 f(x,y)=x2+cos(xy)+2y ,写一程序,输入自变量的值,输出函数值. function z= yourfunc(x,y) % script for f(x,y)=x2+cos(xy)+2y % input scalar: x, y % output scalar: z % written by yourname % 10 May 2010 z=x^2+cos(x*y)+2*y;

end 运行结果 4、小球下落问题 h = zeros(11,1); h(1) = 100; for i = 2:11 h(i) = h(i-1)/2; end % 第10次反弹有多高?h(11)

% 它在第10次落地时,共经过多少米? 2*sum(h(1:10))-h(1) 结果如下 5、矩阵问题 有一个4行5列的矩阵,编程求出其最大值以及最大值所处位置clc; clear all; A = rand(4, 5); m = A(1); ind = [1 1]; for i = 1 : size(A, 1) for j = 1 : size(A, 2) if m < A(i, j)

matlab数学建模实例

第四周3. 中的三个根。 ,在求8] [0,041.76938.7911.1-)(2 3=-+=x x x x f function y=mj()for x0=0:0.01:8 x1=x0^3-11.1*x0^2+38.79*x0-41.769;if (abs(x1)<1.0e-8)x0 end end 4.分别用简单迭代法、埃特金法、牛顿法求解方程,并比较收敛性与收敛速度(ε分别取10-3、10-5、10-8)。 简单迭代法: function y=jddd(x0) x1=(20+10*x0-2*x0^2-x0^3)/20;k=1; while (abs(x1-x0)>=1.0e-3) x0=x1; x1=(20+10*x0-2*x0^2-x0^3)/20;k=k+1;end x1k 埃特金法: function y=etj(x0) x1=(20-2*x0^2-x0^3)/10;x2=(20-2*x1^2-x1^3)/10; x3=x2-(x2-x1)^2/(x2-2*x1+x0);k=1; while (abs(x3-x0)>=1.0e-3) x0=x3; x1=(20-2*x0^2-x0^3)/10;x2=(20-2*x1^2-x1^3)/10; x3=x2-(x2-x1)^2/(x2-2*x1+x0);k=k+1;end 2 ,020102)(023==-++=x x x x x f

x3 k 牛顿法: function y=newton(x0) x1=x0-fc(x0)/df(x0); k=1; while(abs(x1-x0)>=1.0e-3) x0=x1; x1=x0-fc(x0)/df(x0);k=k+1; end x1 k function y=fc(x) y=x^3+2*x^2+10*x-20; function y=df(x) y=3*x^2+4*x+10; 第六周 1.解例6-4(p77)的方程组,分别采用消去法(矩阵分解)、Jacobi迭代法、Seidel迭代法、松弛法求解,并比较收敛速度。 消去法: x=a\d 或 [L,U]=lu(a); x=inv(U)inv(L)d Jacobi迭代法: function s=jacobi(a,d,x0) D=diag(diag(a)); U=-triu(a,1); L=-tril(a,-1); C=inv(D); B=C*(L+U); G=C*d; s=B*x0+G; n=1; while norm(s-x0)>=1.0e-8 x0=s; s=B*x0+G;

用matlab解决数学建模

2、已知速度曲线v(t) 上的四个数据点下表所示 t=[0.15,0.16,0.17,0.18]; v=[3.5,1.5,2.5,2.8]; x=0.15:0.001:0.18 y=i n t e r p1(t,v,x,'s p l i n e') S=t r a p z(x,y) p=p o l y f i t(x,y,5); d p=p o l y d e r(p); d p x=p o l y v a l(d p,0.18) 运行结果 S= 0.0687 Dpx=- 3、计算图片文件tu.bmp 给出的两个圆A,B 的圆心,和两个圆的两条外公切线和两条内公切线的切点的坐标。 (1)计算A 圆的圆心坐标 I=imread('tu.bmp'); [m,n]=size(I) BW=im2bw(I) BW(:,200:512)=1; figure, imshow(BW) ed=edge(BW); [y,x]=find(ed); x0=mean(x), y0=mean(y) r1=max(x)-min(x),r2=max(y)-min(y) r=(r1+r2)/4 x0 =109.7516 y0 =86.7495 r1 =162 r2 =158 r =80 (2)B圆的圆心坐标和半径 I=imread('tu.bmp'); BW=im2bw(I) BW(:,1:200)=1; imshow(BW) ed=edge(BW); [y,x]=find(ed); x0=mean(x), y0=mean(y) r1=max(x)-min(x),r2=max(y)-min(y) r=(r1+r2)/4 x0 =334.0943 y0 =245.7547 r1 =165 r2 =158 r = 80.7500

数学建模培训作业(MATLAB编程部分)

数学建模培训作业 (MATLAB 编程部分) 1. 请使用switch 语句将百分制的学生成绩转换为五级制的成绩输出。 2. 猜数游戏:首先由计算机随机产生一个 [1,100] 之间的一个整数,然后由用户猜测所产生的这个数。根据用户猜测的情况给出不同的提示,如果猜测的数大于产生的数,则显示 “High” ,小于则显示 “ Low ” ,等于则显示 “You won !”,同时退出游戏。用户最多有 7 次机会。 3. 使用for 结构计算1+2+3+…+100。 4. 设计一个九九乘法表。 5. 使用while 结构计算1+2+3+…+100。 6. 求1!+2!+ …+10!的值。 7. 编程生成三对角矩阵。 1 10000011100000001110000000111000000011100 000001110000000111000000011100 1 1 轾犏犏犏犏犏犏犏 犏犏 犏犏犏犏犏犏犏犏臌 8. 计算分段函数的值,要求根据不同的x 输入,给出相应的结果。 223135 x x y x x ì?-???+??=í?-????+?? 110011x x x x ?-< ?> 9. 已知1 1111 1(1)435721 n n p -?+-++-- ,编程求 的近似值。 10. 输入下面的矩阵

12345678 910111213141516A 轾犏犏犏=犏犏 犏臌 编程求该矩阵的对角线元素之和,并找出最大和最小元素的值以及其所在的行、列号。 11. 求水仙花数。如果一个三位数的个位数、十位数和百位数的立方和等于该数自身, 则称该数为水仙花数。编一程序求出所有的水仙花数。 12. 给定两个实数a 、b 和一个正整数n ,计算()k a b +和()k a b -,其中n k ,,2,1 。 13. 编写函数,生成一个1!,2!,…,n!的阶乘表。 14. 编一个函数统计字符串中单词的个数。 15. 求n 阶勒让德多项式的值,其递归公式为: (,)((2* 1)**(1,) (p n x n x p n x n p n n =----- (0,) 1;(1,p x p x x == 16. 编写一个判断任意输入正整数是否为素数的函数文件,并在命令窗口调用。 17. 编写一个万年历计算程序,当输入年月日后,能够计算出该日是星期几。

10909-数学建模-应用MATLAB建模的一个例子

应用MATLAB 的一个例子 ——数学也是一门技术 王天顺 整理 本来想用 “数学也是一门技术”作题目,主要是基于两点,一是从数学的应用角度,它的确具备了作为一门技术的特征,这也就是今天我要通过一个例子要表达的;二是咱们在座的大多数都是从事职业教育的老师,不知道我理解得是不是正确,职业教育与普通教育的区别是较为侧重于教授技术,我主观上感觉这个题目和大家的关系更紧密一些。但是,这个题目有点太大了!和领导商量了一下还是换个题目吧。 首先可以证明:数学确是一门技术,比如说要从技术的定义入手,流行的做法是:查查《辞海》,查查相关的如《科学学辞典》和《科技辞典》等等,看看他们是怎样给技术定义的;其次,论述一下数学的确是符合这些定义的。 实际上,我也确实查阅过这些资料,可以说没有问题,一定可以找到证据证明这个论断! 注:“技术”一词的中文解释有两种,一种是以《辞海》为代表的解释,把技术定义为:(1 )泛指根据生产实践经验和自然科学原理而发展成的各种工艺操作方法与技能;(2)除操作技能外, 广义的还包括相应的生产工具和其他物质设备,以及生产的工艺过程或作业程序、方法。另一种是以《科学学辞典》和《科技辞典》为代表的解释,把技术定义为:是为社会生产和人类物质文化生活需要服务的,供人类利用和改造自然的物质手段、智能手段和信息手段的总和。 可见, “技术”一词所包含的内容除了有形的物化形态之外,还包括无形的智能形态方面。无形的智能形态的技术是客观存在的,在某种意义上说,这方面技术的作用并不亚于物化形态的技术,更不能为物化形态技术所取代(背景资料)。因此,有关“技术”的涵义,有人概括为:指的是有形的物化技术和无形的智能技术的总和。 当然,容易想到我们把数学看作一门技术,可能更多的是从技术的无形“智能形态”角度论述的。我想这只是他的一个方面,今天先给各位介绍的是一个例子,展现他的另一个方面,用数学(包括相关的软件)去解决一个实际问题,其过程就像“传统的”、物化形态的技术一样;其次,结合上述例子,探讨有关数学建模及相关培训指导工作的一般原则和步骤,谈一点个人对此项工作的认识;最后,介绍我校的这些年数学建模培训工作的一些具体做法。 一、足球比赛中的吊门问题 1. 问题:只考虑如下的因素:球与球门的距离为a ,守门员与球门的距离为b (假设在调 门过程中,守门员不能移动),球门高h ,守门员最大摸高H ,球出脚的初速度为0v ,与水平方向的夹角为α(称为初射角).针对下列数据求能吊门成功的α,h=2.44m ,H=3.20m ,s m v /300= ,重力加速度g=10m/s 2,针对下列几组数据分别给出具体能吊门成功的相应初射角范围,要求精度在小数点后第4位。 (1) a=6m ,b=1m ; (2) a=10m ,b=3m ; (3) a=20m ,b=5m ; 2. 问题分析 (1) 在不考虑空气阻力的情况下,抛射体的运动轨迹是抛物线:

matlab数学建模实例

第四周 3. function y=mj() for x0=0:0.01:8 x1=x0^3-11.1*x0^2+38.79*x0-41.769; if (abs(x1)<1.0e-8) x0 end end 4.分别用简单迭代法、埃特金法、牛顿法求解方程,并比较收敛性与收敛速度( 分别取10-3、10-5、10-8)。 简单迭代法: function y=jddd(x0) x1=(20+10*x0-2*x0^2-x0^3)/20; k=1; while (abs(x1-x0)>=1.0e-3) x0=x1; x1=(20+10*x0-2*x0^2-x0^3)/20;k=k+1; end x1 k 埃特金法: function y=etj(x0) x1=(20-2*x0^2-x0^3)/10; x2=(20-2*x1^2-x1^3)/10; x3=x2-(x2-x1)^2/(x2-2*x1+x0); k=1; while (abs(x3-x0)>=1.0e-3) x0=x3; x1=(20-2*x0^2-x0^3)/10; x2=(20-2*x1^2-x1^3)/10; x3=x2-(x2-x1)^2/(x2-2*x1+x0);k=k+1; end x3 k 牛顿法: function y=newton(x0)

x1=x0-fc(x0)/df(x0); k=1; while (abs(x1-x0)>=1.0e-3) x0=x1; x1=x0-fc(x0)/df(x0);k=k+1; end x1 k function y=fc(x) y=x^3+2*x^2+10*x-20; function y=df(x) y=3*x^2+4*x+10; 第六周 1.解例6-4(p77)的方程组,分别采用消去法(矩阵分解)、Jacobi迭代法、Seidel迭代法、松弛法求解,并比较收敛速度。 消去法: x=a\d 或 [L,U]=lu(a); x=inv(U)inv(L)d Jacobi迭代法: function s=jacobi(a,d,x0) D=diag(diag(a)); U=-triu(a,1); L=-tril(a,-1); C=inv(D); B=C*(L+U); G=C*d; s=B*x0+G; n=1; while norm(s-x0)>=1.0e-8 x0=s; s=B*x0+G; n=n+1; end n Seidel迭代法: function s=seidel(a,d,x0) D=diag(diag(a)); U=-triu(a,1); L=-tril(a,-1);

matlab数学建模实例

m a t l a b数学建模实例集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

第四周3. function y=mj() for x0=0::8 x1=x0^*x0^2+*; if (abs(x1)< x0 end end 4.分别用简单迭代法、埃特金法、牛顿法求解方程,并比较收敛性与收敛速度(分别取10-3、10-5、10-8)。 简单迭代法: function y=jddd(x0) x1=(20+10*x0-2*x0^2-x0^3)/20; k=1; while (abs(x1-x0)>= x0=x1; x1=(20+10*x0-2*x0^2-x0^3)/20;k=k+1; end x1 k 埃特金法: function y=etj(x0) x1=(20-2*x0^2-x0^3)/10; x2=(20-2*x1^2-x1^3)/10; x3=x2-(x2-x1)^2/(x2-2*x1+x0); k=1; while (abs(x3-x0)>= x0=x3; x1=(20-2*x0^2-x0^3)/10; x2=(20-2*x1^2-x1^3)/10; x3=x2-(x2-x1)^2/(x2-2*x1+x0);k=k+1; end x3 k 牛顿法: function y=newton(x0) x1=x0-fc(x0)/df(x0);

k=1; while (abs(x1-x0)>= x0=x1; x1=x0-fc(x0)/df(x0);k=k+1; end x1 k function y=fc(x) y=x^3+2*x^2+10*x-20; function y=df(x) y=3*x^2+4*x+10; 第六周 1.解例6-4(p77)的方程组,分别采用消去法(矩阵分解)、Jacobi迭代法、Seidel迭代法、松弛法求解,并比较收敛速度。 消去法: x=a\d 或 [L,U]=lu(a); x=inv(U)inv(L)d Jacobi迭代法: function s=jacobi(a,d,x0) D=diag(diag(a)); U=-triu(a,1); L=-tril(a,-1); C=inv(D); B=C*(L+U); G=C*d; s=B*x0+G; n=1; while norm(s-x0)>= x0=s; s=B*x0+G; n=n+1; end n Seidel迭代法: function s=seidel(a,d,x0) D=diag(diag(a));

基于matlab的数学建模

MATLAB在数学建模中的应用 (张威10322010910级专升本电气一班) 摘要 随着社会和计算机技术的发展,数学科学与计算机技术相结合,在社会各领域发挥着越来越重要的作用,能够方便、高效的解决各种实际问题。在目前用于数学建模的软件中,Matlab强大的数值计算、绘图以及多样化的工具箱功能,能够快捷、高效地解决数学建模所涉及的众多领域的问题,倍受数学建模者的青睐。Matlab是一款非常好的软件,功能强大,应用面广。从实例出发,论述Matlab在数学建模中的应用,以提高对Matlab软件的认识,提高解决实际问题的能力。本文结合数学建模的几个环节,用一些实例阐述了Matlab在数学建模中的应用。将Matlab用于数学建模可以提高数学建模的效率和质量。丰富数学建模的方法和手段,具有重要的意义。 关键词:Matlab软件,数学建模,最优化 Abstract With the development of society and computer technology,mathematics,science and computer technology in all areas of society is playing an increasingly important role,It can easily and efficiently to solve practical problems.In the currently used mathematical modeling software,Matlab powerful numerical calculations,drawings,and a variety of toolbox functions,can quickly and efficiently solve the mathematical modeling involved in many areas of concern,much of those mathematical modeling all ages.Matlab is a very good software,powerful,wide range of applications.Starting from the example,discussed in Matlab in the application of mathematical modeling to improve understanding of the Matlab software,to improve the ability to solve practical problems.In this paper,several aspects of mathematical modeling with Matlab examples described in the application of mathematical modeling.Mathematical modeling of Matlab for mathematical modeling can improve the efficiency and quality.Extensive mathematical modeling methods and means of great significance. Key Words:MATLAB software,Mathematical modeling,Optimization

相关文档
相关文档 最新文档