当前位置:文档之家› 数模中常用的matlab语言和方法

数模中常用的matlab语言和方法

数模中常用的matlab语言和方法
数模中常用的matlab语言和方法

数模培训

一、矩阵的输入

二、循环语句

三、M文件及M函数

四、优化问题

五、回归分析

一矩阵的输入

常用的矩阵输入方法有三种:

1.直接输入法 2 下载法 3. 编程输入法

下面以例解释下载法

例1.现要根据瑞士地图计算其国土面积。于是对地图作如下的测量:以西东方向为横轴,以南北方向为纵轴。(选适当的点为原点)将国土最西到最东边界在x轴上的区间划取足够多的分点x i,在每个分点处可测出南北边界点的对应坐标y1,y2。用这样的方法得到下表

41288km2)。

解题思路:数据实际上表示了两条曲线,实际上我们要求由两曲线所围成的图形的面积。解此问题的方法是数值积分的方法。具体解时我们遇到两个问题:1。数据如何输入;2。没有现成的命令可用。

解:对于第一个问题,我们可把数据考备成M文件(或纯文本文件)。

然后,利用数据绘制平面图形。键入

load mianji.txt

a=mianji;

A=[a(1:3,1:9),a(4:6,1:9),a(7:9,1:9)]';

plot(A(:,1),A(:,2),'r',A(:,1),A(:,3),'g')

接下来可以计算面积。键入:

a1=trapz(A(:,1)*40/18,A(:,2)*40/18); a2=trapz(A(:,1)*40/18,A(:,3)*40/18); d=a2-a1

d = 4.2414e+004

至此,问题可以说得到了解决。之所以说还有问题,是我们觉得误差较大。但计算方法的理论给了我们更精确计算方法。只是MA TLAB 没有相应的命令。想得到更理想的结果,我们可以自己设计解决问题的方法。(可以编写辛普森数值计算公式的程序,或用拟合的方法求出被积函数,再利用MA TLAB 的命令quad,quad8)

2. 下面以例解释编程输入法

若矩阵的各元素之间存有某种关系,那么可利用存有的关系,通过编写程序来建立矩阵;还可以利用MATLAB 的矩阵命令来建立矩阵。

例:输入矩阵)1

1(

5

5-+=?j i H

for i=1:5 % 变量i 的步长为1,从1变到5 for j=1:5 % 变量j 的步长为1,从1变到5

H(i,j)=1/(i+j-1); % 将值1/(i+j-1)赋予矩阵H 的第i 行第j 列的元

end

end

循环语句

MATLAB 也有控制流语句,用于控制程序的流程.主要有for 循环、while 循环、if 和break 三种控制语句.虽然语句很少,但功能很强.

ⅰ for循环语句

for循环语句的一般表达形式为:

for i=表达式

可执行语句1

……

可执行语句n

end

例:求S=1+2+3+…+50,可编程如下:

s=0;

for k=1:50

s=s+k;

end

ⅱ while循环

while循环语句用来控制一个或一组语句在某逻辑条件下重复预先确定或不确定的次数. while循环语句的一般表达形式为:

while 表达式

循环体语句

end

例:对于上面同样的问题,可编程如下:

S=0; k=0;

while k<51

S=S+k;k=k+1; % 当条件k〈51时,反复执行语句S=S+k,k=k+1

end

以上这个例子事先已知循环次数是51,下面再看一个预先不能确定循环次数的例子. 例:用迭代法

x k+1=e k x k=0,1,2,…

求解方程x-e-x=0的根.初始值x0=0.5,相对误差限ε=10-8 ,编程如下:

ep=10^(-8);dx=1;x0=0.5;k=0;

while dx>ep

k=k+1;

x=exp(-x0);

dx=abs(x-x0)/(1+abs(x));

x0=x;

end

ⅲ if和break语句

MATLAB中if和break语句的作用与使用方式同其它编程语言一样,用来将控制流程进行分流与中断退出.

例:可以把上面的解方程的例子中的循环语句改写成:

x0=0;

while(1)

k=k+1;

x=exp(-x0);

dx=abs(x-x0)/(1+abs(x));

if dx<=eps break;end

x0=x;

end

程序中 while(1)说明循环条件总是真,直到满足dx<=eps条件跳出循环体.

ⅳ if – else –end分支结构

分支结构有三种形式:

if 表达式

执行语句

end

如果表达式的值非0,则执行下面的语句.否则执行end后面的语句.

if 表达式

执行语句1

else

执行语句2

end

if 表达式1

执行语句1

elseif 表达式2

执行语句2

elseif 表达式3

执行语句3

……

else (此句可以省略)

执行语句n

end

例:对函数??

?

??≥<<-<=10, x 11-3x 10,x 1 121, x )(x x x f

可编如下的程序: if x<1 y=x;

elseif x>=1&x<10 y=2*x-1; else y=3*x-11; end

练习:求H 矩阵的每一行元素的和,最大值,最小值.

求H 矩阵的每一行元素的和,最大值,最小值. 求H 矩阵的主对角线元素的和,最大值,最小值.

创建M 文件

创建M 文件是MATLAB 中的非常重要的内容.事实上,正是由于在MATLAB 工具箱中存放着大量的M 文件,使得MATLAB 在应用起来显得简单、方便,且功能强大. M 文件有两种形式:命令文件和函数文件当用户要运行的命令较多时,如果直接在命令窗口中逐条输入和运行,有诸多不便.此时可通过编写命令文件来解决这个问题.另外,从前面的许多例子可以看到:MATLAB 的许多命令,需要用户通过编写函数文件来执行.

ⅰ 命令文件的创立

进入MATLAB 命令窗口后,选择“file ”下拉式菜单中的“new ”进入编辑/调试器(Editer/Debugger ),在编辑/调试器中,编写符合语法规则的命令.编写完命令文件后,选择“file ”下拉式菜单中的“save ”项,然后依提示输入一个文件名.至此,完成了命令文件的创建.

ⅱ 函数文件的创立

函数文件的创立方法与命令文件的创立方法完全一样,只是函数文件的第一句可执行语句是以function 引导的定义语句,并且输入文件名时要与定义语句中的函数名相同.

建立了函数文件或命令文件后,只要在命令窗口键入命令文件名或函数名,就可执行M 文件中所包含的所有命令.

下面分别创建并运行一个命令文件和一个函数文件,以了解M 文件的创建和运行的全过程.

计算所有小于1000的Fibonnaci 数. 命令文件的创建和运行:

⑴在MATLAB的命令窗口点击“新建”工具栏或在“file”下拉菜单中选“New”中的

“M-file”项,进入编辑/调试器.

⑵在编辑/调试器中,输入以下命令:

% 计算小于1000的Fibonnaci数

f=[1,1];

i=1;

while f(i)+f(i+1)<1000

f(i+2)=f(i)+f(i+1);

i=i+1;

end

f,i

⑶在“file”下拉菜单中选“Save”项,依提示输入文件名“fibno”至此,完成了命令文件fibno.m的创建.

⑷执行fibno.

在MATLAB窗口中输入fibno并敲回车键,计算机依次执行fibno中的各条命令后显示如下的结果:

ans =

Columns 1 through 12

1 1

2

3 5 8 13 21 3

4 5

5 89 144

Columns 13 through 16

233 377 610 987

函数文件的创建和运行:

⑴在MATLAB的命令窗口点击“新建”工具栏或在“file”下拉菜单中选“New”中的“M-file”项,进入编辑/调试器.

⑵在编辑/调试器中,输入以下命令:

function f=ffibno(n)

f=[1,1];

i=1;

while f(i)+f(i+1)

f(i+2)=f(i)+f(i+1);

i=i+1;

end

f

⑶在“ffile”下拉菜单中选“Save”项,依提示输入文件名“ffibno”至此,完成了函数文件ffibno.m的创建.

⑷执行ffibno.

在MA TLAB 窗口中输入ffibno(1000)并敲回车键即可.

将上面的关于H 矩阵的运算编成M 文件和M 函数.

6:微分方程数值解(单摆问题)

单摆问题的数学模型是

θθ

sin g l -= 在初始角度不大时,问题可以得到很好地解决,但如果初始角较大,此方程无法求出解析解.现问题是当初始角为100

和300

时,求出其解,画出解的图形进行比较。

解:若θ0较小,则原方程可用0=+θθ

g l 来近似.其解析解为θ(t)= θ0cos ωt,g

l =ω.

若不用线性方程来近似,那么有两个模型:

30)0(sin 10)0(sin 00??

???=-=????

?=-=θθ

θθθθl g l g

取g=9.8,l=25, 100=0.1745, 300

=0.5236.用MA TLAB 求这两个模型的数值解,先要作如下的

处理:令x1=θ,x2=θ’,则模型变为

)0(,5236.0)0(sin l g - x x x 0)0(,1745.0)0(sin l g - x

x x 211221211221??

???

??====???????====x x x x x x 再编函数文件

function xdot=danbai(t,x)

xdot=zeros(2,1);

xdot(1)=x(2);xdot(2)=-9.8/25*sin(x(1)); 在命令窗口键入

[t,x]=ode45(‘danbai’,[0:0.1:20],[0.1745,0]); [t,y]=ode45(‘danbai’,[0:0.1:20],[0.5236,0]); plot(t,x(:,1),’r’,t,y(:,1),’k’); 参考书:数学实验,高等教育出版社

7.解优化问题

线性规划有约束极小问题 模型

UB

x LB , , . .,min 11≤≤=≤=b x A b Ax t s cx z

用命令

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

例1:Find x that minimizes f(x )=-5x 1-4x 2-6x 3 subject to x 1-x 2+x 3≦20 3x 1+2x 2+4x 3≦42 3x 1+2x 2≦30 0≦x 1, 0≦x 2,0≦x 3 First, enter the coefficients:

f = [-5; -4; -6]

A = [1 -1 1 3 2 4 3 2 0]; b = [20; 42; 30]; lb = zeros(3,1);

Next, call a linear programming routine:

[x,fval,exitflag,output,lambda] = linprog(f,A,b,[],[],lb); Entering x, fval,lambda.ineqlin, and lambda.lower gets x = 0.0000 15.0000 3.0000 fval = -78.0000 和其它信息。 例2:解问题

,, x ,1052x ,7 x ..532x z max 321321321321≥≥+-=++-+=x x x x x x t s x x

把问题极小化并将约束标准化

3

21321321321,,x 0 ,7 x ,1052x - ..532x z min x x x x x x t s x x ≤=++-≤-++--=

键入c=[-2,-3,5];a=[-2,5,-1];b=-10;a1=[1,1,1];b1=7;LB=[0,0,0];

[x ,y]=linprog (c,a,b,a1,b1,LB )得当X=(6.4286,0.5714,0.0000)时,z=-14.5714最大. 例3: 解问题

.

5,0,0 x

,1222x ,44 x

,62 x ..2x z min 321

321321

321321≤≥≥≤+-≤-+=+++--=x x x x x x x x t s x x

解:键入

c=[-2,-1,1];a=[1,4,-1;2,-2,1];b=[4;12];a1=[1,1,2];b1=6;lb=[0;0;-inf];ub=[inf;inf;5]; [x,z]=linprog(c,a,b,a1,b1,lb,ub) 得当X=(4.6667,0.0000,0.6667)时,z=-8.6667最小.

非线性规划有约束极小问题 模型1

x g ≤∈)(..),(min t s R x x f n

模型2:

UB.

x LB ,0)(c 0,c(x) ,A b,Ax ..),(min 111≤≤=≤=≤x b x t s x f

MA TLAB 求解此问题的命令是:

[x,fval,exitflag,output,lambda,grad,hessian]=fmincon(‘fun’,x0,A,b,A1,b1,LB,UB,’nonlcon’, options,p1,p2,…)

fun 是目标函数的m_文件名.nonlcon 是约束函数C(x)和C1(x)的m_文件名.文件输出为[C,C1].

例:求解最优化问题

.

010x - ,0x 1.5 ,

0 x ..),12424()(min 212121212212

22

11≤-≤--+=+++++=x x x x x t s x x x x x e x f x

第1步: 建立目标函数和非线性约束的m_文件. function y=e1511(x)% 目标函数的m_文件

y=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);

function [c1,c2]=e1511b(x)% 非线性约束的m_文件 c1=[1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10];

c2=[];

第2步: 运行程序.键入

x0=[-1,1];a1=[1,1];b1=0;

[x,f,exitflab,output]=fmincon(‘e1511’,x0,[],[],a1,b1,[],[],’e1511b’)

得结果.

输出结果的意义:经过4次迭代(iterations:4)收敛到了(exitfag=1)最优解x(1)=-1.2247,x(2)=1.2247,目标函数最优值为1.8951.

8.回归分析

前面我们曾学过拟合。但从统计的观点看,对拟合问题还需作回归分析。例如:有描述问题甲和问题乙的两组数据(x,y)和(x,z)。设

x=[0 1 2 3 4 ];y=[1.0 1.3 1.5,2.0 2.3];z=[0.6,1.95,0.9,2.85,1.8];

如果在平面上画出散点图,

plot(x,y,'r.',x,z,'b*')

那么问题甲的5个点基本在一条直线上而问题乙的5个点却很散乱。如果都用命令c1=polyfit(x,y,1),

c2=polyfit(x,z,1)

来拟合,将得到同一条直线。

1,2()0.330.96

c x x

=+

自然对问题甲的信任程度会高于对问题乙的信任程度。所以有必要对所得结果作科学的评价分析。回归分析就是解决这种问题的科学方法。

x=[0 1 2 3 4 ]';y=[1.0 1.3 1.5,2.0 2.3]';z=[0.6,1.95,0.9,2.85,1.8]';

x=[ones(5,1),x];

[b,bint,r,rint,stats]=regress(y,x,0.05);

b =

0.9600

0.3300

bint =

0.7638 1.1562

0.2499 0.4101

输出参数的意义:

0.96000.3300

y x

=+

第一个参数的置信区间:[0.7638 1.1562]

第二个参数的置信区间:[0.2499 0.4101]

stats =

0.9829 171.9474 0.0010 0.0063

R2=0.9829 F=171.9474, p=0.0010.

R是衡量y与x的相关程度的指标,称为相关系数。R越大,x与y关系越密切。通常R大于0.9才认为相关关系成立。

F是一统计指标

p是与F对应的概率,当 p<0.05时,回归模型成立。

此例中 p=0 <0.0010<0.05,所以,所得回归模型成立。

再输入

rcoplot(r,rint)

得图形,说明第3个数据应剔除,将会得到更准确的模型.

对于第2条曲线做同样的工作.

[b,bint,r,rint,stats]=regress(z,x,0.05);

b

b =

0.9600

0.3300

bint =

-1.1142 3.0342

-0.5168 1.1768

置信区间大很多.

stats =

0.3389 1.5381 0.3031 0.7080

说明模型不可靠.

下面结合三个具体的例子介绍MA TLAB实现回归分析的命令。

根据此表建立y(x)。并对结果作可信度进行检验、判断x对y影响是否显著、检查数据中有无异常点、由x的取值对y作出预测。

解1:

在x-y平面上画散点图,直观地知道y与x大致为线性关系。

用命令polyfit(x,y,1)可得y=140.6194x+27.0269。

作回归分析用命令

[b,bint,r,rint,ststs]=regress(y,x,alpha) 可用help查阅此命令的具体用法

残差及置信区间可以用rcoplot(r,rint)画图

设回归模型为

y=β0+β1x,

在MATLAB命令窗口中键入下列命令进行回归分析

x=0.1:0.01:0.18;x=[x,0.2,0.21,0.23]';

y=[42,41.5,45,45.5,45,47.5,49,55,50,55,55.5,60.5]';

X=[ones(12,1),x];

[b,bint,r,rint,stats]=regress(y,X,0.05);

b,bint,stats,rcoplot(r,rint)

得结果和图

b =

27.0269

140.6194

bint =

22.3226 31.7313

111.7842169.4546

stats =

0.9219 118.0670 0.0000

结果含义为

β0=27.0269 β1=140.6194

β0的置信区间是 [22.3226,31.7313]

β1的置信区间是 [111.7842,169.4546]

R2=0.9219 F=118.0670, p<10-4.

R是衡量y与x的相关程度的指标,称为相关系数。R越大,x与y关系越密切。通常R大于0.9才认为相关关系成立。

F是一统计指标

p是与F对应的概率,当 p<0.05时,回归模型成立。

此例中 p=0 <10-4<0.05,所以,所得回归模型成立。

观察所得残差分布图,看到第8个数据的残差置信区间不含零点,此点视为异常点,剔除后重新计算。

此时键入:

X(8,:)=[];

y(8)=[];

[b,bint,r,rint,stats]=regress(y,X);

b,bint,stats,rcoplot(r,rint)

得:

b =

27.0992

137.8085

bint =

23.8563 30.3421

117.8534 157.7636

stats =

0.9644 244.0571 0.0000

可以看到:置信区间缩小;R2、F变大,所以应采用修改后的结果。

2.将17至29岁的运动员每两岁一组分为7组,每组两人测量其旋转定向能力,以考察年龄(x)对这种运动能力(y)的影响。现得到一组数据如下表

解2:

在x-y 平面上画散点图,直观地知道y 与x 大致为二次函数关系。 x=17:2:29;x=[x,x];

y=[20.48,25.13,26.15 30,26.1,20.3,19.35,24.35,28.11,26.3,31.4,26.92,25.7,21.3]; plot(x,y,'*')

设模型为y=a 1x 2+a 2x+a 3

此问题可以利用命令polyfit(x,y,2)来解,也可以像上题一样求解。 polyfit(x,y,2) ans =

-0.2003 8.9782 -72.2150 即

2

0.20038.978272.2150y x x =-+-

t=17:0.2:29;

d=-0.2003*t.^2+8.9782*t-72.215; plot(t,d)

下面介绍用命令polytool 来解。 首先在命令窗口键入 polytool(x,y,2)

得到一个交互式窗口

182022242628

10

15

20

25

30

35

窗口中绿线为拟合曲线、红线为y 的置信区间、可通过移动鼠标的十字线或通过在窗口下方输入来设定x 值,窗口左边则输出与x 对应的y 值及y 的置信区间。通过左下方的Export 下拉菜单可输出回归系数等。更详细的解释可通过help 查阅。

3.某厂生产的某产品的销售量与竞争对手的价格x1和本厂的价格x2有关。下表是该

170(元),预测此产品在该城市的销售量。

解3.这是一个多元回归问题。若设回归模型是线性的,即设y=β

0+β

1

x

1

2

x

2

那么依然用regress(y,x,alpha)求回归系数。键入

x1=[120,140,190,130,155,175,125,145,180,150];

x2=[100,110,90,150,210,150,250,270,300,250];

y=[102,100,120,77,46,93,26,69,65,85]';

x=[ones(10,1),x1',x2'];

[b,bint,r,rint,stats]=regress(y,x);b,bint,stats,

b =

66.5176

0.4139

-0.2698

bint =

-32.5060 165.5411

-0.2018 1.0296

-0.4611 -0.0785

stats =

0.6527 6.5786 0.0247 351.0445

b =

66.5176

0.4139

-0.2698

bint =

-32.5060 165.5411

-0.2018 1.0296

-0.4611 -0.0785

stats =

0.6527 6.5786 0.0247

p=0.0247,若显著水平取0,01,则模型不能用;R2=0.6527较小;β0,β1的置信区间包含零点。因此结果不理想。于是设模型为二次函数。此题设模型为纯二次函数:

y=β

0+β

1

x

1

2

x

2

11

x

1

2+β

22

x

2

2

MATLAB 提供的多元二项式回归命令为rstool(x,y,model,alpha).其中alpha 为显著水平、model 在下列模型中选一个:

linear (线性)

purequadratic (纯二次)

interaction (交叉)

quadratic (完全二次)

对此例,在命令窗中键入 x(:,1)=[];

rstool(x,y,'purequadratic') 得到一个对话窗:

140160-100

150200

其意义与前面的对话窗意义类似。若要回答“本厂售价160,对手售价170,预测该市销售量”的问题,只需在下方窗口中分别肩入160和170,就可在左方窗口中读到答案及其置信区间。下拉菜单Export 向工作窗输出数据具体操作为:

弹出菜单,选all ,点击确定。此时可到工作窗中读取数据。可读数据包括:beta (回归系数) rmse (剩余标准差) residuals (残差)本题只要键入 beta,rmse,residuals 得 beta = -312.5871 7.2701 -1.7337 -0.0228

∑=+

++=m

j j

ij

m m x x x y 1

2

110β

βββ m

m x x y βββ ++=110k

m

k j j jk

m m x x x x y ∑≤≠≤+

++=1110β

βββ ∑≤≤+

++=m

k j k

j jk

m m x x x x y ,1110β

βββ

0.0037

rmse =

16.6436

residuals =

6.6846

-12.6703

-0.2013

6.4855

-19.6533

7.9989

-11.4737

5.4303

-4.9932

22.3926

大家不妨用此命令选其它模型作一个比较。

注:关于各种模型,可查阅有关理论

参考书:数学实验,高等教育出版社

参考书:科学计算技术与MATLAB,科学出版社

MA TLAB中还包括神经网络工具箱,小波分析工具箱,在网上还可以下载遗传算法工具箱,有兴趣的同学可以借这次机会,结合学习MA TLAB,好好学习一下相关理论知识。

最后,祝大家学习,竞赛都取得成功。谢谢大家。

数学建模常用软件

数学建模常用软件有哪些哈 MatlabMathematicalingoSAS详细介绍:数学建模软件介绍一般来说学习数学建模,常用的软件有四种,分别是:matlab、lingo、Mathematica和SAS下面简单介绍一下这四种。 1.MA TLAB的概况MA TLAB是矩阵实验室(Matrix Laboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多. 当前流行的MA TLAB 5.3/Simulink 3.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类. 开放性使MATLAB广受用户欢迎.除内部函数外,所有MA TLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包. 2.Mathematica的概况Wolfram Research 是高科技计算机运算( Technical computing )的先趋,由复杂理论的发明者Stephen Wolfram 成立于1987年,在1988年推出高科技计算机运算软件Mathematica,是一个足以媲美诺贝尔奖的天才产品。Mathematica 是一套整合数字以及符号运算的数学工具软件,提供了全球超过百万的研究人员,工程师,物理学家,分析师以及其它技术专业人员容易使用的顶级科学运算环境。目前已在学术界、电机、机械、化学、土木、信息工程、财务金融、医学、物理、统计、教育出版、OEM 等领域广泛使用。Mathematica 的特色·具有高阶的演算方法和丰富的数学函数库和庞大的数学知识库,让Mathematica 5 在线性代数方面的数值运算,例如特征向量、反矩阵等,皆比Matlab R13做得更快更好,提供业界最精确的数值运算结果。·Mathematica不但可以做数值计算,还提供最优秀的可设计的符号运算。·丰富的数学函数库,可以快速的解答微积分、线性代数、微分方程、复变函数、数值分析、机率统计等等问题。·Mathematica可以绘制各专业领域专业函数图形,提供丰富的图形表示方法,结果呈现可视化。·Mathematica可编排专业的科学论文期刊,让运算与排版在同一环境下完成,提供高品质可编辑的排版公式与表格,屏幕与打印的自动最佳化排版,组织由初始概念到最后报告的计划,并且对txt、html、pdf 等格式的输出提供了最好的兼容性。·可与C、C++ 、Fortran、Perl、Visual Basic、以及Java 结合,提供强大高级语言接口功能,使得程序开发更方便。·Mathematica本身就是一个方便学习的程序语言。Mathematica提供互动且丰富的帮助功能,让使用者现学现卖。强大的功能,简单的操作,非常容易学习特点,可以最有效的缩短研发时间。 3.lingo的概况LINGO则用于求解非线性规划(NLP—NON—LINEAR PROGRAMMING)和二次规则(QP—QUARATIC PROGRAMING)其中LINGO 6.0学生版最多可版最多达300个变量和150个约束的规则问题,其标准版的求解能力亦再10^4量级以上。虽然LINDO和LINGO不能直接求解目标规划问题,但用序贯式算法可分解成一个个LINDO和LINGO能解决的规划问题。模型建立语言和求解引擎的整合LINGO是使建立和求解线性、非线性和整数最佳化模型更快更简单更有效率的综合工具。LINGO提供强大的语言和快速的求解引擎来阐述和求解最佳化模型。■简单的模型表示LINGO可以将线性、非线性和整数问题迅速得予以公式表示,并且容易阅读、了解和修改。■方便的数据输入和输出选择LINGO建立的模型可以直接从数据库或工作表获取资料。同样地,LINGO可以将求解结果直接输出到数据库或工作表。■强大的求解引擎LINGO内建的求解引擎有线性、非线性(convex and nonconvex)、二次、二次

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可以绘制各种图形,包括二维和三维图形。 ③简单易学的语言体系。 ④为数众多的应用工具箱。

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__2013年春季学期《MATLAB语言及应用》试题答案

2013年春季学期 《MATLAB语言及应用》课程试卷 姓名: 学号: 学院: 专业: 必答题 1.常用的matlab界面由哪些窗口组成,各有什么主要作用?(4分) (1)菜单和工具栏功能:【File】菜单主要用于对文件的处理。【Edit】菜单主 要用于复制、粘贴等操作,与一般Windows程序的类似,在此不作详细介绍。【Debug】菜单用于调试程序。【Desktop】菜单用于设置主窗口中需要打开的窗口。【Window】菜单列出当前所有打开的窗口。【Help】菜单用于选择打开不同的帮助系统。 (2)命令窗口功能:用于输入命令并显示除图形以外的所有执行结果 (3)历史命令窗口功能:主要用于记录所有执行过的命令 (4)当前工作目录窗口功能:对文件和目录进行操作 (5)工作空间窗口功能:查看、载入和保存变量 2.如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么 区别?(2分) 方法一:在MATLAB命令窗口中输入editpath或pathtool命令或通过【File】/|【SetPath】菜单,进入“设置搜索路径”对话框,通过该对话框编辑搜索路径。 方法二:在命令窗口执行“path(path,…D:\Study ?)”,然后通过“设置搜索路径”对话查看“D:\Study”是否在搜索路径中。 方法三:在命令窗口执行“addpath D:\Study- end”,将新的目录加到整个搜索路径的末尾。如果将end改为begin,可以将新的目录加到整个搜索路径的开始。 区别:当前文件目录是正在运行的文件的目录,显示文件及文件夹的详细信息,且只有将文件设置为当前目录才能直接调用。搜索路径中的文件可以来自多个 不同目录,在调用时不用将其都设置为当前目录,为同时调用多个文件提供 方便。 3.有几种建立矩阵的方法?各有什么优点?(4分) 1.在命令窗口中直接输入优点:适合输入不规则和较小的矩阵 2.通过语句和函数生成矩阵优点:适合输入规则且较大的矩阵 3.通过M文件来建立矩阵,从外部数据文件中导入矩阵 优点:方便创建和导入大型矩阵 4.说明break语句、continue语句和return语句的用法。(3分)

数学建模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程序汇总 求特征值、特征向量、权向量 A=input('A='); E=eig(A) [V,D]=eig(A) t=max(E); disp(t); for i=1:1:3 if E(i)==t; m=i; end end X=V(:,m); mt=X./sum(X); disp(mt) 求π n=1;s=0; while 1/(2*n-1)>10^(-6) s=s+(-1)^(n+1)/(2*n-1); n=n+1; end pai=4*s 求e n=1;s=1; while 1/prod(1:n)>10^(-6) s=s+1/prod(1:n); n=n+1; end e=s 回归分析、 x=[143 145 146 147 149 150 153 154 155 156 157 158 159 160 162 164]'; Y=[88 85 88 91 92 93 93 95 96 98 97 96 98 99 100 102]'; X=[ones(16,1) x]; [b,bint,r,rint,stats]=regress(Y,X,0.025); b,bint,stats rcoplot(r,rint) z=b(1)+b(2)*x plot(x,Y,'k+',x,z,'r') 回归曲线 x=[2:16]; y=[6.42 8.20 9.58 9.50 9.70 10 9.93 09.99 10.49 10.59 10.60 10.80 10.60 10.90 10.76]; x1=1./x;

y1=log(y); p=polyfit(x1,y1,1) a=exp(p(2)) b=p(1) z=a.*exp(b./x) plot(x,y,'k+',x,z,'r') 回归预测 x=[20 25 30 35 40 45 50 55 60 65]'; Y=[13.2 15.1 16.4 17.1 17.9 18.7 19.6 21.2 22.5 24.3]'; X=[ones(10,1) x]; [b,bint,r,rint,stats]=regress(Y,X,0.05); b,bint,stats rcoplot(r,rint) z=b(1)+b(2)*x rstool(x,Y,'purequadratic') 灰色GM(1,1) clc,clear x0=[8438.73 9398.53 9959.17 10949.99 11145.92 11800 12700]; n=length(x0); lamda=x0(1:n-1)./x0(2:n) range=minmax(lamda) x1=cumsum(x0) for i=2:n z(i)=0.5*(x1(i)+x1(i-1)); end B=[-z(2:n)',ones(n-1,1)]; Y=x0(2:n)'; u=B\Y x=dsolve('Dx+a*x=b','x(0)=x0'); x=subs(x,{'a','b','x0'},{u(1),u(2),x1(1)}); yuce1=subs(x,'t',[0:n-1]); digits(6),y=vpa(x) %为提高预测精度,先计算预测值,再显示微分方程的解yuce=[x0(1),diff(yuce1)] epsilon=x0-yuce %计算残差 delta=abs(epsilon./x0) %计算相对误差 rho=1-(1-0.5*u(1))/(1+0.5*u(1))*lamda %计算级比偏差值 求余 for n=1:5000 k=n^3; if rem(k,10000)==8888 n end end 人口预测模型

MATLAB语言及应用课程教学大纲

《MATLAB语言及应用》课程教学大纲 课程编号:21311105 总学时数:32 总学分数:2 课程性质:专业必修课 适用专业:电气工程及其自动化 一、课程的任务和基本要求: 控制算法是集中现代控制系统CAD 技术的本质反映,对于控制算法系统深入地学习,在扩展计算机技术在控制理论中的应用和发展,同时培养学生运用计算机技术进行思维和开发的能力。控制系统理论、计算方法与计算机技术的结合是当代控制理论发展的标志,因此在以MATLAB 为代表的软件平台上,对控制系统进行分析、设计与仿真将成为控制工程领域工程师必须熟练掌握的重要知识和技能。因此,深入透彻地分析和理解控制算法的思想和构造就必须系统学习典型控制系统应用软件的基本原理和控制算法,将成为本课程的目的和任务。 通过本课程的学习,要求学生掌握对于控制系统的分析和综合设计的方法和基本技巧,而控制算法在控制系统CAD 技术中占有相当大的比重,本课程要求较熟练掌握控制算法的基本思想;MATLAB 是一种解释性编程语言,因此,要求熟练掌握MATLAB 的基本编程手段和模块化编程方法,消化和理解控制语言描述的图形界面的设计过程。 二、基本内容和要求: 1.自动控制系统与仿真基础知识 (1)自动控制系统基本概念 (2)自动控制系统分类 (3)控制系统仿真基本概念 (4)MA TLAB与控制系统仿真 (5)MA TLAB 7中控制相关的工具箱 要求:了解自动控制系统与仿真的基础知识,包括自动控制系统的基本概念、分类,以及控制系统仿真的基本概念和Matlab工具。 2.MA TLAB计算及仿真基础 (1)MA TLAB概述 (2)MA TLAB桌面操作环境 (3)MA TLAB数值计算 (4)关系运算和逻辑运算 (5)符号运算 (6)复数和复变函数运算 (7)MA TLAB常用绘图命令 (8)MA TLAB程序设计 要求:了解MA TLAB计算及仿真基础,包括MATLAB的安装、界面及其数值计算、函数运算、程序设计及其绘图命令。 3. Simulink仿真基础 (1)Simulink仿真概述

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语言及应用论文

一、MATLAB简介 MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。 MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple 并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。 二、应用 MATLAB 产品族可以用来进行以下各种工作: (1)数值分析; (2)数值和符号计算; (3)工程与科学绘图; (4)控制系统的设计与仿真; (5)数字图像处理技术; (6)数字信号处理技术; (7)通讯系统设计与仿真; (8)财务与金融工程。 MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特

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在建模中的应用)

数学实验与数学建模 学习目标 1.掌握利用Matlab软件进行了相关的数学运算的方法. 2.以软件辅助来完成数学实验. 3.了解数学建模思想方法,能够对一些简单问题建立数学模型求解分析. 教学要求 Matlab是Mathworks公司推出的用于数值计算的交互式软件系统,具有强大的数值分析、矩阵运算、信号处理、图形显示和建模仿真功能. Matlab是“Matrix Laboratory”的缩写,意思是“矩阵实验室”,其强大的数据处理能力和丰富的工具箱使它的编程极为简单,因此,它成为科学家和工程技术人员解决实际问题的首选计算工具软件。 本章的第一节主要介绍Matlab软件的简单使用方法,从第二节到第六节在讲解Matlab 用于解决高等数学和线性代数中的相关计算的函数基础上, 通过一些简单的数学实验例题,让学生体会如何用Matlab辅助解决数学问题. 最后,通过一些与线性代数相关的数学建模实例,让学生掌握数学建模的简单方法,学会利用Matlab软件辅助解决实际问题,以培养学生良好的数学意识和数学素质. 6.1 Matlab环境及使用方法 6.1.1 Matlab窗口管理 Matlab启动后显示三个窗口,如图6.1所示。左上窗口为工作区间窗口,显示用户定义的变量及其属性类型及变量长度。工作区间窗口也可显示为当前目录窗口,显示Matlab 所使用的当前目录及该目录下的全部文件名。左下窗口为历史窗口,显示每个工作周期(指Matlab启动至退出的工作时间间隔)在命令窗口输入的全部命令,这些命令还可重新获取应用。右侧窗口为Matlab命令窗口,可在里面输入相关运算命令,完成相应计算。三个窗口中的记录除非通过Edit菜单下的清除操作,否则将一直保存。

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

Modeling and Simulation 建模与仿真, 2015, 4(3), 61-71 Published Online August 2015 in Hans. https://www.doczj.com/doc/c711717123.html,/journal/mos https://www.doczj.com/doc/c711717123.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.doczj.com/doc/c711717123.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.doczj.com/doc/c711717123.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.doczj.com/doc/c711717123.html, 收稿日期:2015年7月22日;录用日期:2015年8月11日;发布日期:2015年8月18日

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语言及其应用》教案

MATLAB语言及其应用 教 案 任课教师:罗靖宇 任课班级:09通信(1)(2) 教材:MATLAB程序设计与应用(第二版) 作者:刘卫国主编出版社:高等教育出版社

内容: 书籍简介:本书以MATLAB 7.0版为蓝本介绍MATLAB功能与应用强调理论和实践相结合贴近读者需要注重讲清有关数学方法和算法原理前提下介绍MATLAB功能;注重和有关学科领域结合,突出应用书中有许多应用实例些实例既是对MATLAB重点和难点诠释又可以更好地帮助读者应用MATLAB来解决实际问题具有很强代表性。 全书分为基础篇应用篇和实验篇基础篇包括MATLAB系统环境MATLAB数据及其运算MATLAB矩阵分析与处理 MATLAB程序设计MATLAB图MATLAB数值计算MATLAB符号计算应用篇包括MATLAB图形用户界面设计MATLAB Notebook使用MATLAB Simulink 仿真软件MATLAB外部程序接口技术MATLAB应用实验篇和教学内容相配合包括15实验以帮助读者更好地上机操作。本书可作为高等学校理工科各专业大学生或研究生学习教材也可供广大科技工作者参考。 第1章MATLAB系统环境 1.1 MA TLAB概貌 1.1.1 MA TLAB 发展 1.1.2 MA TLAB 主要功能 1.1.3 MA TLAB功能演示 1.2 MA TLAB环境准备 1.2.1 MA TLAB 安装 1.2.2 MA TLAB 启动与退出 1.3 MA TLAB操作界面 1.3.1 主窗口 1.3.2 命令窗口 1.3.3 工作空间窗口 1.3.4 当前目录窗口和搜索路径 1.3.5 命令历史记录窗口 1.3.6 Stalt菜单 1.4 MA TLAB帮助系统 1.4.1 帮助命令 1.4.2 帮助窗口 1.4.3 演示系统 第2章MATLAB数据及其运算 2.1 MA TLAB数据特点 2.2 变量及其操作 2.2.1 变量与赋值 2.2.2 变量管理 2.2.3 数据输出格式 2.3 MA TLAB矩阵表示 2.3.1 矩阵建立 2.3.2 冒号表达式 2.3.3 矩阵拆分 2.4 MA TLAB数据运算 2.4.1 算术运算 2.4.2 关系运算 2.4.3 逻辑运算 2.5 字符串 2.6 结构数据和单元数据 2.6.1 结构数据 2.6.2 单元数据 第3章MATLAB矩阵分析与处理 3.1 特殊矩阵 3.1.1 通用特殊矩阵 3.1.2 用专门学科特殊矩阵 3.2 矩阵结构变换 3.2.1 对角阵与三角阵 3.2.2 矩阵转置与旋转 3.3 矩阵求逆与线性方程组求解 3.3.1 矩阵逆与伪逆 3.3.2 用矩阵求逆方法求解线性方程组 3.4 矩阵求值 3.4.1 方阵行列式值 3.4.2 矩阵秩与迹 3.4.3 向量和矩阵范数 3.4.4 矩阵条件数 3.5 矩阵特征值与特征向量 3.6 矩阵超越函数 第4章MATLAB程序设计 4.1 M文件 4.1.1 M文件分类 4.1.2 M文件建立与打开 4.2 程序控制结构 顺序结构、选择结构、循环结构 4.3 函数文件 4.4 程序调试 第5章MATLAB绘图 5.1 二维图形

MATLAB-语言及其用-实验(答案)

M A T L A B-语言及其用- 实验(答案) -CAL-FENGHAI.-(YICAI)-Company One1

《MATLAB 语言及其用》 实验指导书 目录

实验一 Matlab 使用方法和程序设计........................ 实验二控制系统的模型及其转换............................. 实验三控制系统的时域、频域和根轨迹分析...........实验四动态仿真集成环境-Simulink......................... 实验一Matlab使用方法和程序设计一、实验目的 1、掌握Matlab软件使用的基本方法; 2、熟悉Matlab的数据表示、基本运算和程序控制语句 3、熟悉Matlab绘图命令及基本绘图控制 4、熟悉Matlab程序设计的基本方法 二、实验内容: 1、帮助命令 使用help命令,查找 sqrt(开方)函数的使用方法; 在 CommandWindowL里输入help,接在在search里输入sqr即可。sqrt Square root Syntax B = sqrt(X) Description

B = sqrt(X) returns the square root of each element of the array X. For the elements of X that are negative or complex, sqrt(X) produces complex results. Tips See sqrtm for the matrix square root. Examples sqrt((-2:2)') ans = 0 + 1.4142i 0 + 1.0000i 1.0000 1.4142 See Also nthroot | realsqrt | sqrtm 2、矩阵运算 (1)矩阵的乘法 已知A=[1 2;3 4]; B=[5 5;7 8]; 求A^2*B A=[1 2;3 4];B=[5 5;7 8]; C=A^2*B >> format compact C = 105 115 229 251 (2)矩阵除法 已知 A=[1 2 3;4 5 6;7 8 9]; B=[1 0 0;0 2 0;0 0 3]; A\B,A/B A=[1 2 3;4 5 6;7 8 9];

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) 在不考虑空气阻力的情况下,抛射体的运动轨迹是抛物线:

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