搜档网
当前位置:搜档网 › 3140504022 MATLAB平时作业

3140504022 MATLAB平时作业

3140504022  MATLAB平时作业
3140504022  MATLAB平时作业

MATLAB程序设计基础

专业班级电科1401

学号3140504022

姓名谢言琴

《MATLAB程序设计基础》平时作业

说明:1-17题为必做题,须分别提交纸质文档及与纸质文档对应的电子文档.doc版。

1.对于每输入的一个百分制成绩,要求输出对应的成绩等级A、B、C、D、E。其中A的

分值在区间[90,100)内;B的分值在区间[80,90)内;C的分值在区间[70,80)内;D的分值在区间[60,70)内;E的分值在区间[0,60)内;要求:

1)要有对输入成绩是否合理的判断:

①输入成绩如果含有小数,只能是“x.5”的形式,其实x为合理的整数。

②成绩必须在百分制范围内。

③如果输入的成绩不合理,应向命令窗口输出报错信息“输入的成绩不合理”

2)用if语句实现题目要求

MATLAB程序代码如下:

x=input('please import results:');%输入分数

if x<0|x>100

disp('Error:wrong data')%显示数据错误

elseif x<=100&x>=90

bank='A' %输出等级为A

elseif x<=89&x>=80

bank='B' %输出等级为B

elseif x<=79&x>70

bank='C' %输出等级为C

elseif x<=69&x>60

bank='D' %输出等级为D

else bank='E' %输出等级为E

end

运行结果如下:

>> Untitled

please import results:123

Error:wrong data

>> Untitled

please import results:96

bank =

A

>> Untitled

please import results:85

bank =

B

>> Untitled

please import results:72

bank =

C

>> Untitled

please import results:63

C

>> Untitled

please import results:6

bank =

E

(3)用switch语句实现题目要求

MATLAB程序代码如下:

c=input('please import results:');%输入分数

switch floor(c/10) %用switch语句实现对分数的求商case{9}

bank='A';

case{8}

bank='B';

case {7}

bank='C';

case {6}

bank='D';

case num2cell(0:5)%表示取整后是0到5

bank='E';

otherwise

bank='输入出错';

end

disp(bank);

运行结果如下:

please import results:123

输入出错

>> Untitled

please import results:95

A

>> Untitled

please import results:86

B

>> Untitled

please import results:75

C

>> Untitled

please import results:65

D

>> Untitled

please import results:3

E

>> Untitled

please import results:-1

2. 设计程序,完成[10,99]之间两位整数的加、减、乘、除四则运算。要求:

1)随机产生区间[10,99]之内的两位随机整数

2)在产生符合要求的随机数后,输入一个运算符号,做相应的运算

3)运算结果显示在命令窗口,其显示类似于“a=x+y=68”的形式。

MATLAB程序代码如下:

y=10+(99-10)*rand %产生10到99之间的随机数

a=round(rand*90)+10;

disp(a)%产生10到99之间的随机数a

b=round(rand*90+10);

disp(b)%产生10到99之间的随机数b

c=input('请输入一个四则运算符号,用单引号括起来');

switch c

case '+'

d=a+b;%做加法运算

case '-'

d=a-b;%做减法运算

case '*'

d=a*b; %做乘法运算

case '/';

d=a/b; %做除法运算

end

d

运行结果如下:

>> Untitled

y =

91.2905

67

19

请输入一个四则运算符号,用单引号括起来'+'

d =

86

>> Untitled

y =

34.7863

59

96

请输入一个四则运算符号,用单引号括起来'-'

d =

-37

>> Untitled

y =

95.8751

24

97

请输入一个四则运算符号,用单引号括起来'*' d =

2328 >> Untitled y =

95.1879 54 82

请输入一个四则运算符号,用单引号括起来'/' d =

0.6585

3. 求下列分段函数的值并绘制函数曲线。

2226,056,1,?+-<≠?

=-+≤≠≠??--?

x x x x y x x x x x x x 且 -30<10,2且 3其他

要求:

1)x 的值以向量的形式从键盘输入。

2)用if 语句实现,分别输出x =﹣5.0,﹣3.0,1.0,2.0,2.5,3.0,5.0时的y 值。 3)自行拟定自变量的取值,绘制该分段函数的二维曲线。 MATLAB 程序代码如下:

function y=myfun(x)%间;建立功能函数myfun,,以便下面调用该函数 if x==2||abs(x)==3||x>=5 y=x.^2-x-1; elseif x<0 y=x.^2+x-6; else

y=x.^2-5*x+6; end

x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0]; l=length(x); y=zeros(1,1); for k=1:1

y(k)=myfun(x(k));调用功能函数myfun end [x;y] plot(x,y;

运行结果如下:

ans =

-0.5000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000 -6.2500 11.0000 2.0000 1.0000 -0.2500 5.0000 6.0000 结果截图如下:

图1

4. 分别使用for循环语句和while循环语句找出最小的n值,使得n!>10100,并求出n!。MATLAB程序代码如下:

s=1;

for n=1:100

if s>10100;

n=n-1;

break;

else s=s*n;

end

end

fprintf('n=%d\n' ,n,s)

运行结果如下:

>> Untitled

n=8

n=40320

MATLAB程序代码如下:

s=1;

n=1;

while s<=10100; n=n+1;

s=s*n;

end

fprintf('n=%d\n' ,n,s)

运行结果如下:

>> Untitled

n=8

n=40320

5. 已知

f1=1,n=1

f2=0,n=2

f3=1,n=3

f n=f n-1-2f n-2+f n-3,n>3

求f1 ~ f50中:

1)最大值和最小值及它们的位置、各数之和(最大值给变量MAX,其位置给变量x,

最小值给变量MIN,其位置给变量y,各数之和给变量SUM)。

2)正数、零、负数的个数(依次赋值给变量N_positive,N_zero,N_negative)。

MATLAB程序代码如下:

f(1)=1;

f(2)=0;

f(3)=1;

for n=4:50

f(n)=f(n-1)-2*f(n-2)+f(n-3)

end

[MAX,X]=max(f)%将最大值赋值给MAX,位置给x

[MIN,Y]=min(f)%将最大值赋值给MIN,位置给y

SUM=sum(f)%和赋值给SUM

N_positive=length(find(f>0))%找到正数的个数和位置,赋值给N_positive

N_zero=length(find(f==0))%找到零的个数和位置赋值给N_zero

N_negative=length(find(f<0))%找到负数的个数和位置赋值给N_negative

运行结果如下:

MAX =406631

X =49

MIN = -403795

Y =50

SUM =76861

N_positive =25

N_zero =2

N_negative =23

6. Fibonacci数组的元素满足Fibonacci规则:

a k+2=a k+a k+1,(k=1,2,3,…);且a1= a2=1。

请设计一段程序,求出该数组中第一个大于10000的元素对应的k值以及该元素值。

MATLAB程序代码如下:

a1=1;

a2=1;

i=3;

a3=a1+a2;

while a3<10000;%实现循环求出数组中大于10000的k值和对应的该值

a1=a2;

a2=a3;

a3=a1+a2;

i=i+1;

end

fprintf('i=%d \na(i)=%d \n',i,a3)

fprintf('a(%d)=%d \n',i,a3)%输出i和a3

运行结果如下:

>> Untitled

i=21

a(i)=10946

7. 定义自变量x的取值区间为[﹣5,5],编写一个函数文件,实现绘制函数y=ax3+bx2+cx+d

的曲线,其中给定各系数值分别为

①a=﹣1,b=2,c=﹣5,d=3;

②a=3,b=﹣7,c=1,d=4;

③a=0,b=4,c=0,d=﹣5

要另外编写调用该函数文件的m文件,实现调用。

MATLAB程序代码如下:

function mydraw(a,b,c,d) %建立函数mydraw

x=-5:0.1:5;

y=a*x.^3+b*x.^2+c*x+d;

plot(x,y);

mydraw(-1,2,-5,3)

mydraw(3,-7,1,4)

mydraw(0,4,0,-5)

结果截图如下:

图2系数取第①组的曲图3系数取第②组的曲线

图4系数取第③组的曲线

8. 设计程序,在一个图形窗体中画出函数y=e x和y=logx的特性曲线。其中y=e x中x取值

区间为(﹣2,2),y=logx中x取值区间为(0.1,5)。

要求:

1)要有图例、标题('二维图')、坐标轴标签('x轴数据'和'y轴数据');

2)每条曲线的属性自己设置,但不能全用默认值。

MATLAB程序代码如下:

x1=-2:0.1:2;

x2=0.1:0.1:5;

y2=log(x2);

plot(x1,y1,'r--',x2,y2,'k-d');

title('二维图');

xlabel('x轴数据');

ylabel('y轴数据');

legend('e^x曲线','log(x)曲线'); %设置图例

结果截图如下:

图5函数y=e x和y=logx的特性曲线

9. 采用2行2列子图的方式进行二维图形绘制,要求:

1)自变量x的取值区间为[0,2π]

2)三个函数分别为:y1=sin(x),y2=cos(x),y3=sin(x)+cos(x)

3)在第1幅子图绘制y1的曲线;在第2幅子图绘制y2的曲线;在第3幅子图绘制y3的曲线;在第4幅子图中绘制所有3条曲线

4)对每一幅子图,都要有图例、坐标轴标签;曲线的属性自己设置,不能全用默认值。MATLAB程序代码如下:

x=0:0.1:2.*pi;

y1=sin(x);

y2=cos(x);

y3=sin(x)+cos(x);

subplot(221);

plot(x,y1,'r-p');

legend('sin(x)');

xlabel('横坐标1');

ylabel('纵坐标1');

subplot(222);

plot(x,y2,'go--');

legend('cos(x)');

xlabel('横坐标2');

ylabel('纵坐标2');

subplot(223);

plot(x,y3,'k-d');

legend('sin+cos');

xlabel('横坐标3'); ylabel('纵坐标3'); subplot(224);

plot(x,y1,x,y2,x,y3,'ro-'); legend('所有'); xlabel('横坐标4'); ylabel('纵坐标4'); 结果截图如下:

图6四种二维图

10. 采用1行2列子图的方式进行二维图形绘制,要求:

1)在第1幅子图绘制三维曲线: x ∈[0,20] y=sin(x) z=cos(x)

2)在第2幅子图绘制三维曲面: x ∈[﹣20,20] y ∈[﹣10,10]

4

y 9x z 22-=

3)对每一幅子图,都要有标题、坐标轴标签;曲线的属性自己设置,不能全用默认值。

MATLAB 程序代码如下:

x1=0:0.1:20; y1=sin(x1); z1=cos(x1); x2=(-20:0.1:20); y2=(-10:0.1:10);

[X,Y]=meshgrid(x2,y2); %建立网格线 Z=(X.^2)/9-(Y .^2)/4; subplot(121); plot3(x1,y1,z1,'r'); title('三维曲线'); xlabel('横坐标'); ylabel('纵坐标');

subplot(122); surf(X,Y,Z);

shading interp; %不使用网格线 title('三维曲面'); xlabel('横坐标'); ylabel('纵坐标'); 结果截图如下:

图7二维图形和三维图

11. 已知函数0y x )1y (x 32322=--+,其中x 的取值区间为[﹣2,2],试编程绘制该二维曲线,

要求:要有标题、坐标轴标签,曲线颜色用红色。 MATLAB 程序代码如下:

eleven=ezplot('(x^2+y^2-1).^3-x^2.*y^3',[-2,2]); title('函数(x^2+y^2-1).^3-x^2.*y^3的图形'); set(eleven,'color','r'); %设置eleven 颜色 xlabel('x 轴'); ylabel('y 轴'); 结果截图如下:

图8心形图

12. 已知原始数据pi *4:1:0x =,)5/x exp(*).x sin(y -=,插值点为pi *4:3.0:0xi =,试用4种不同的插值方法进行插值,并在一幅图的4个子图中分别绘出4种插值曲线,并各自注明所使用的插值方法。 MATLAB 程序代码如下: x=0:1:4*pi;

y=sin(x).*exp(-x/5); plot(x,y,'o');

title('样本点所在位置'); 结果截图如下:

图9样本点所在的位置MATLAB程序代码如下:

xi=0:0.3:4*pi;

figure; %新开图形窗口

subplot(221)

y1=interp1(x,y,xi,'nearest');

plot(xi,y1);

title('最近点插值');

subplot(222)

y1=interp1(x,y,xi);

plot(xi,y1);

title('线性插值');

subplot(223)

y1=interp1(x,y,xi,'cubic');

plot(xi,y1);

title('三次立方插值');

subplot(224)

y1=interp1(x,y,xi,'spline');

plot(xi,y1);

title('三次样条插值');

axis tight %根据数据范围自动设置坐标轴取值范围

结果截图如下:

图10四种插值方式

13.考虑表1中的数据:

表1 一周气温温度数据

完成以下功能:

1)将一周的气温温度数据,使用一个矩阵A进行保存。

2)取出周二中午、周四上午、周日中午和夜晚的温度值,组成新的温度值向量。

3)取出矩阵A中的前六个数值,组成新的温度值向量。

4)取出周二、周三、周四及周六的数据,组成新的温度值矩阵。

5)求每天温度的平均值

6)求一周的早晨、中午和夜晚温度的平均值

7)求一周的温度平均值及最高温度及最低温度

MATLAB程序代码如下:

A=[15 15 18 13 13 15 16;20 21 25 19 20 22 25;16 17 12 14 16 18 19];

B1=[A(2,2) A(1,4) A(2,7) A(3,7)];

B2=[A(1:6)];

B3=[A(:,2) A(:,3) A(:,4) A(:,6)];

B4=mean(A); %对列求平均值

B5=mean(A,2); %对行求平均值

B6=mean(B4,2);

B7=max(A(:));

B8=min(A(:));

disp(' 周一周二周三周四周五周六周日');

disp(A)

disp('周二中午、周四上午、周日中午和夜晚的温度值');

disp(B1)

disp('A中的前六个数值');

disp(B2)

disp(' 周二周三周四周六');

disp(B3);

disp('每天温度的平均值');

disp(' 周一周二周三周四周五周六周日'); disp(B4)

disp('一周的早晨、中午和夜晚温度的平均值');

disp(B5)

disp('一周的温度平均值');

disp(B6)

disp('一周的温度最大值');

disp(B7)

disp('一周的温度最小值');

disp(B8)

运行结果如下:

周一周二周三周四周五周六周日

15 15 18 13 13 15 16

20 21 25 19 20 22 25

16 17 12 14 16 18 19

周二中午、周四上午、周日中午和夜晚的温度值

21 13 25 19

A中的前六个数值

15 20 16 15 21 17

周二周三周四周六

15 18 13 15

21 25 19 22

17 12 14 18

每天温度的平均值

周一周二周三周四周五周六周日

17.0000 17.6667 18.3333 15.3333 16.3333 18.3333 20.0000

一周的早晨、中午和夜晚温度的平均值

15.0000

21.7143

16.0000

一周的温度平均值

17.5714

一周的温度最大值

25

一周的温度最小值

12

14.考虑表2中的数据,这是一位举重教练收集的不同性别的举重动员每个年龄的最大举重磅数,据信这三者之间存在着某种函数关系,请估算当前队伍中队员(要求13~20岁每一岁都有)的最大举重磅数。

表2 不同性别的举重动员每个年龄的最大举重磅数

MATLAB程序代码如下:

A=[13 15 17 19 20];

B=[13 14 15 16 17 18 19 20];

M=[270 290 330 350 380];

W=[250 270 310 330 360];

p1=polyfit(A,M,6); %拟合曲线

p2=polyfit(A,W,6);

y1=polyval(p1,B); %计算B处p1的值

y2=polyval(p2,B);

disp('年龄13 14 15 16 17 18 19 20');

disp('男最大举重');

disp(y1)

disp('年龄13 14 15 16 17 18 19 20');

disp('女最大举重');

disp(y2)

运行结果如下:

年龄13 14 15 16 17 18 19 20 男最大举重

Columns 1 through 7

270.0000 272.8572 290.0000 311.9077 330.0000 340.6300 350.0000

Column 8

380.0000

年龄13 14 15 16 17 18 19 20 女最大举重

Columns 1 through 7

250.0000 252.8497 270.0000 291.9110 310.0000 320.6269 330.0000

Column 8

360.0000

15.某乡镇企业2009-2015年的生产利润如表3所示。

表3 过去7年生产利润

要求用多项式拟合法预测出该企业2016年和2017年的利润,并绘出拟合图。

MATLAB程序代码如下:

A=[2009 2010 2011 2012 2013 2014 2015];

B=[70 122 144 152 174 196 202];

C=[2009 2010 2011 2012 2013 2014 2015 2016 2017];

p=polyfit(A,B,10);

y=polyval(p,C);

m=y(8);

n=y(9);

disp('2016年利润(万元)');

disp(m)

disp('2017年利润(万元)');

disp(n)

plot(C,y,'r');

legend('拟合曲线');

运行结果如下:

2016年利润(万元)

204.3160

2017年利润(万元) 202.7162

结果截图如下:

图11拟合曲线

16. 求下列方程组的解。

1)???

?

?=+-=-=+-9

4653532321

31321x x x x x x x x A=[2 -1 3;3 0 -5;4 -1 1];

b=[5;6;9]; B=[A b]; ra=rank(A) rb=rank(B)

format rat %用有理数形式现实 R=rref(B)

运行结果如下: >> Untitled2 ra =3

rb=3%rank(A)=rank(B)=未知数个数=3,方程组有唯一解 R =

1 0 0

2 0 1 0 -1 0 0 1 0 >> x=inv(A)*b x =

2 -1 0

2)???

??=--+=+--=+-0

895443353644321

4321431x x x x x x x x x x x

A=[4 0 -6 3;3 -1 -3 4;1 5 -9 -8]; b=[5;4;0]; B=[A b]; ra=rank(A) rb=rank(B) format rat R=rref(B)

运行结果如下:

>> Untitled2 ra = 2

rb = 2 %r ank(A)=rank(B)=2<未知数个数=4,方程组有无数解

R =

1 0 -3/

2 3/4 5/4 0 1 -3/2 -7/4 -1/4 0 0 0 0 0 令x3=k1,x4=k 2,可得方程组的通解为:

17.已知用来描述系统的微分方程为

)()(5)(t u t x t x

+-= 其中,)(t u 是幅值为1、频率为1rad/s 的方波信号,试建立该系统的SIMULINK 模型(如图1所示,须理解为什么是这样的模型)并进行仿真,给出仿真结果。

图12

MATLAB中如何直接曲线拟合

MATLAB中如何直接曲线拟合,而不使用cftool的GUI 界面 我们知道在MATLAB中有个很方便的曲线拟合工具:cftool 最基本的使用方法如下,假设我们需要拟合的点集存放在两个向量X和Y中,分别储存着各离散点的横坐标和纵坐标,则在MATLAB中直接键入命令 cftool(X,Y) 就会弹出Curve Fitting Tool的GUI界面,点击界面上的fitting即可开始曲线拟合。 MATLAB提供了各种曲线拟合方法,例如:Exponential, Fourier, Gaussing, Interpolant, Polynomial, Power, Rational, Smoothing Spline, Sum of Functions, Weibull等,当然,也可以使用 Custom Equations. cftool不仅可以绘制拟合后的曲线、给出拟合参数,还能给出拟合好坏的评价 参数(Goodness of fit)如SSE, R-square, RMSE等数据,非常好用。但是如果我们已经确定了拟合的方法,只需要对数据进行计算,那么这种GUI的操作方式就不太适合了,比如在m文件中就不方便直接调用cftool。 MATLAB已经给出了解决办法,可以在cftool中根据情况生成特定的m文件,让我们直接进行特定的曲线拟合并给出参数。具体方法在帮助文件的如下文档中" \ Curve Fitting Toolbox \ Generating M-files From Curve Fitting Tool " ,以下简单举例说明: 以双色球从第125期到第145期蓝球为Y值: Y=[12 15 4 1 7 11 5 7 1 6 16 1 1 14 2 12 9 13 10 12 11]; X=1:1:21; cftool(X,Y); 点击Fitting选择最常用的多项式拟合(Polynomial),选择3次多项式拟合(cubic),然后就会出现如下拟合图形: 然后在Curve Fitting Tool窗口中点击 " \ File \ Generate M-file " 即可生成能直接曲线拟合的m函数文件,其中使用的拟合方法就是刚才使用的三次多项式拟合,文件中这条语句证明了这一点: ft_ = fittype('poly3'); 保存该m文件(默认叫做createFit.m),调用方法和通常的m文件一样,使用不同的X和Y值就能拟合出不同的曲线。但是,这种调用方法只能看到一个拟合出的图形窗口,拟合参数以及Goodness of fit参数都看不到了,因此需要在刚才的m文件中稍作修改。 找到这句话: cf_ = fit(X(ok_),Y(ok_),ft_); 修改为: [cf_,gof] = fit(X(ok_),Y(ok_),ft_); 然后将函数声明 function createFit(X,Y) 修改为 function [cf_,gof] = createFit(X,Y) ,这样我们再调用试试看: Y=[12 15 4 1 7 11 5 7 1 6 16 1 1 14 2 12 9 13 10 12 11]; X=1:1:21;

数学应用软件作业2Matlab作图

注意:上机作业文件夹以自己的姓名学号命名,文件夹中包括如下上机报告和Matlab程序。

5、用surf ,mesh 绘制曲面22 2z x y =+,]3,3[],3,3[-∈-∈y x 。 6、用polar 绘制阿基米德螺线r a θ=和三叶玫瑰线cos3r a θ=。(a=100) 7、在同一平面的两个窗口中分别画出心形线和马鞍面。 三. 上机方法与步骤 给出相应的问题分析及求解方法,并写出Matlab 程序。并有上机程序显示。 第1题:要在同一坐标系中分别画出四个函数的图形,可以利用plot 来将这四条曲线画在一起。 Matlab 程序: x=linspace(15,200,50); y1=(1+1./x).^x; y2=(1+1./x).^(x+1); y3=[1+1./(x+1)].^x; y4=2.7183; plot(x,y1,'r',x,y2,'g',x,y3,'b',x,y4,'co') 第2题:直接用ezplot 命令绘制函数的图形。 Matlab 程序: ezplot('(exp(x*y)-sin(x+y))',[-3,3])

第3题:取a=1,直接用ezplot命令绘出这两条曲线。 Matlab程序: ezplot('[t-sin(t)]','[1-cos(t)]',[0,2*pi]) 第4题:利用subplot命令将这四个函数的图像画在两行两列的同一个图形上。Matlab程序: x=[0:0.1:5]; subplot(2,2,1); plot(x,sin(5*x)); grid on; title('plot-y=sin(5*x)'); subplot(2,2,2); plot(x,cos(3*x));

MATLAB仿真教程

一、设计目的 通过运用MATLAB对函数进行Z域分析和单边带信号的调制与解调,使我们进一步加深对MATLAB的认识和运用,以实现以下目的: 1.本次试验进一步熟悉了MATLAB软件的使用方法及相关的操作。 2.对Z变换及其反变换函数在MATLAB中的调用有了掌握。 3.理论与实际的仿真相结合,更直观的看到结果。 4.观察了单边带信号调制与解调后的图像,加深认识。 二、设计原理 MATLAB是The MathWorks公司在1984年推出的一种商品化软件,它提供了大量丰富的应用函数,并且具有扩充的开放性结构。目前,该软件包涵盖了控制系统应用、数字信号处理、数字图像处理、通讯、神经网络、小波理论分析、优化与统计、偏微分方程、动态系统实时仿真等多学科专业领域。 其中单边带调制信号是将双边带信号中的一个边带滤掉而形成的。根据方法的不同,产生单边带调制信号的方法有:滤波和相移法。 由于滤波法在技术上比较难实现所以在此我们将用相移法对单边带调制与解调系统进行讨论与设计。 三、设计内容和MATLAB图像

1、数字系统的响应 源代码如下: b=[0 1 2 1 0]; a=[1 -0.5 0 0.3 -0.005]; subplot(421);zplane(b,a); title('系统的零极点图'); subplot(422);impz(b,a,21); title('单位脉冲响应'); subplot(423);stepz(b,a,21); title('单位阶跃响应');

N=21;n=0:N-1; x=exp(-n); x0=zeros(1,N); y0=[1,-1]; xi=filtic(b,a,y0); y1=filter(b,a,x0,xi); xi0=filtic(b,a,0); y2=filter(b,a,x,xi0); y3=filter(b,a,x,xi); [h w]=freqz(b,a,21); subplot(424);stem(n,y1); title('零输入响应');grid on; subplot(425);stem(n,y2); title('零状态响应');grid on; subplot(426);stem(n,y3); title('系统的全响应');grid on; subplot(427);plot(w,abs(h)); title('幅频特性曲线');grid on; subplot(428);plot(w,angle(h)); title('相频特性曲线');grid on;

matlab教程课后作业

【例1.3-5】图示复数i z i z 21,3421+=+=的和。 z1=4+3*i;z2=1+2i; z12=z1+z2 clf,hold on plot([0,z1,z12],'-b','LineWidth',3) plot([0,z12],'-r','LineWidth',3) plot([z1,z12],'ob','MarkerSize',8) hold off,grid on axis equal axis ([0,6,0,6]) text(3.5,2.3,'z1') text(5,4.5,'z2') text(2.5,3.5,'z12') xlabel('real') ylabel('image') shg z12 = a=-8; r_a=a^(1/3) p=[1,0,0,-a]; R=roots(p) MR=abs(R(1)); t=0:pi/20:2*pi; x=MR*sin(t); y=MR*cos(t); plot(x,y,'b:'),grid on hold on plot(R(2),'.','MarkerSize',30,'Color','r') plot(R([1,3]),'o','MarkerSize',15,'Color','b') axis([-3,3,-3,3]),axis square

hold off r_a = 1.0000 + 1.7321i R = -2.0000 1.0000 + 1.7321i 【例1.3-10】画出衰减振荡曲线t e y t 3sin 3-=,t 的取值范围是]4,0[π。 t=0:pi/50:4*pi; y=exp(-t/3).*sin(3*t); plot(t,y,'r','LineWidth',2) axis([0,4*pi,-1,1]) xlabel('t'),ylabel('y')

直流电动机的MATLAB仿真..

第一章课程设计内容及要求 1. 直流电动机的机械特性仿真; 2. 直流电动机的直接起动仿真; 3. 直流电动机电枢串联电阻启动仿真; 4. 直流电动机能耗制动仿真; 5.直流电动机反接制动仿真; 6. 直流电动机改变电枢电压调速仿真; 7. 直流电动机改变励磁电流调速仿真。 要求:编写M文件,在Simulink环境画仿真模型原理图,用二维画图命令画仿真结果图或用示波器观察仿真结果,并加以分析

第二章直流电动机的电力拖动仿真绘制 1)直流电动机的机械特性仿真 clear; U_N=220;P_N=22;I_N=115; n_N=1500;R_a=;R_f=628; Ia_N=I_N-U_N/R_f; C_EPhi_N=(U_N-R_a*Ia_N)/n_N; C_TPhi_N=*C_EPhi_N; Ia=0;Ia_N; n=U_N/C_EPhi_N-R_a/(C_EPhi_N)*Ia; Te=C_TPhi_N*Ia; P1=U_N*Ia+U_N*U_N/R_f; T2_N=9550*P_N/n_N; figure(1); plot(Te,n,'.-'); xlabel('电磁转矩Te/'); ylabel('转矩n/rpm'); ylim([0,1800]); figure(2); plot(Te,n,'rs'); xlabel('电磁转矩Te/'); ylabel('转矩n/rpm');

hold on; R_c=0; for coef=1:;; U=U_N*coef; n=U/C_EPhi_N-(R_a+R_c)/(C_EPhi_N*C_TPhi_N)*Te; plot(Te,n,'k-'); str=strcat('U=',num2str(U),'V'); s_y=1650*coef; text(50,s_y,str); end figure(3); n=U_N/C_EPhi_N-(R_a+R_c)/(C_EPhi_N*C_TPhi_N)*Te; plot(Te,n,'rs'); xlabel('电磁转矩Te/'); ylabel('转矩n/rpm'); hold on; U=U_N;R_c=; for R_c=0::; n=U/C_EPhi_N-(R_a+R_c)/(C_EPhi_N*C_TPhi_N)*Te; plot(Te,n,'k-'); str=strcat('R=',num2str(R_c+R_a),'\Omega'); s_y=400*(4-R_c*; text(120,s_y,str);

matlab曲线拟合实例

曲线拟合 求二次拟合多项式 解:(一)最小二乘法MA TLAB编程: function p=least_squar(x,y,n,w) if nargin<4 w=1 end if nargin<3 n=1 end m=length(y); X=ones(1,m) if m<=n error end for i=1:n X=[(x.^i);X] end A=X*diag(w)*X';b=X*(w.*y)';p=(A\b)' 输入: x=[1 3 5 6 7 8 9 10]; y=[10 5 2 1 1 2 3 4] p=least_squar(x,y,2) 运行得: p = 0.2763 -3.6800 13.4320 故所求多项式为:s(x)=13.432-3.68x+0.27632x (二)正交多项式拟合MATLAB编程: function p=least_squar2(x,y,n,w) if nargin<4 w=1; end if nargin<3 n=1; end m=length(x); X=ones(1,m); if m<=n error end for i=1:n X=[x.^i;X]; end A=zeros(1,n+1);

A(1,n+1)=1; a=zeros(1,n+1); z=zeros(1,n+1); for i=1:n phi=A(i,:)*X;t=sum(w.*phi.*phi); b=-sum(w.*phi.*x.*phi)/t a(i)=sum(w.*y.*phi)/t; if i==1 c=0;else c=-t/t1; end t1=t for j=1:n z(j)=A(i,j+1); end z(n+1)=0 if i==1 z=z+b*A(i,:); else z=z+b*A(i,:)+c*A(i-1,:); end A=[A;z]; end phi=A(n+1,:)*X;t=sum(w.*phi.*phi); a(n+1)=sum(w.*y.*phi)/t; p=a*A; 输入: x=[1 3 5 6 7 8 9 10]; y=[10 5 2 1 1 2 3 4]; p=least_squar2(x,y,2) 运行得: b = -6.1250 t1 = 8 z = 0 1 0 b = -4.9328 t1 = 64.8750 z = 1.0000 -6.1250 0 p = 0.2763 -3.6800 13.4320 故所求多项式为:s(x)=13.432-3.68x+0.27632x

实验6答案 Matlab数值计算

实验6 Matlab数值计算 实验目的: 1、掌握数据统计与分析的方法; 2、掌握数据插值和曲线拟合的方法及其应用; 3、掌握多项式的常用运算。 实验内容: 1.利用randn函数生成符合正态分布的10×5随机矩阵A,进行如下操作: (1)求A的最大元素和最小元素; (2)求A的每行元素的和以及全部元素的和; (3)分别对A的每列元素按升序、每行元素按降序排列。 a = randn(10,5)+10; ma = max(max(a)) mi = min(min(a)) s = sum(a,2) sa = sum(sum(a)) p = sort(a) p1 = -sort(-a,2) 2.用3次多项式方法插值计算1-100之间整数的平方根。 f = sqrt(n); interp1(n,f,(1:100),'cubic') 3.某气象观测站测得某日6:00-18:00之间每隔2h的室内外温度(°C)如下表所示。

使用三次样条插值分别求出该日室内外6:30-17:30之间每隔2h 各点的近似温度,并绘制插值后的温度曲线。 n= 6:2:18; f1 = [18 20 22 25 30 28 24]; f2 = [15 19 24 28 34 32 30]; r = 6.5:2:17.5; w = interp1(n,f1,r,'spline'); w1 = interp1(n,f2,r,'spline'); subplot(211),plot(r,w) subplot(212),plot(r,w1) 4. 已知lgx 在[1,101]区间10个整数采样点的函数值如下表所示, 试求lgx 的5次拟合多项式p(x),并绘制lgx 和p(x)在[1,101]区间的函数曲线。 x = linspace(1,101,10); y = log(x) /log(10); p = polyfit(x,y,5) y1 = polyval(p,x) plot(x,y,':o',x,y1,'-*') legend('sin(x)','fit') 5. 有3个多项式(),(),()P x x x x P x x P x x x =+++=+=++4 3 2 2 123245223,试进 行下列操作: (1) 求()()()()P x P x P x P x =+123。 (2) 求()P x 的根。 (3) 当x 取矩阵A 的每一元素时,求()P x 的值。其中: .....A --?? ? ?=?????? 11214075 2350 5 25 p1 = [1 2 4 0 5]; p2 = [0 0 0 1 2];

MATLAB中简单的数据拟合方法与应用实例①

MATLAB中简单的数据拟合方法与应用实例 仅供努力学习matlab的同学们参考参考,查阅了M多资料,总结了以下方法 按步骤做能够基本学会matlab曲线拟合的 1.1数据拟合方法 1.1.1多项式拟合 1.多项式拟合命令 polyfit(X,Y,N):多项式拟合,返回降幂排列的多项式系数。 Polyval(P,xi):计算多项式的值。 其中,X,Y是数据点的值;N是拟合的最高次幂;P是返回的多项式系数;xi是要求的横坐标 拟合命令如下: x=[1 2 3 4 5 6 7 8 9]; y=[9 7 6 3 -1 2 5 7 20]; P=polyfit(x,y,3); xi=0:.2:10; yi=polyval(P,xi); plot(xi,yi,x,y,'r*'); 拟合曲线与原始数据如图1-1 图1-1 2图形窗口的多项式拟合 1)先画出数据点如图1-2 x=[1 2 3 4 5 6 7 8 9]; y=[9 7 6 3 -1 2 5 7 20]; plot(x,y,'r*');

图1-2 2)在图形窗口单击Tools—Basic Fitting,如图1-3勾选. 图1-3 图1-3右方分别是线性、二阶、三阶对数据进行多项式拟合。下面的柱状图显示残差,可以看出,三阶多项式的拟合效果是最好的。 1.1.2指定函数拟合 已知M组数据点和对应的函数形式f t (t)=acos(kt)e X Y 编写M文件:

syms t x=[0;0.4;1.2;2;2.8;3.6;4.4;5.2;6;7.2;8;9.2;10.4;11.6;12.4;13.6;14.4;15]; y=[1;0.85;0.29;-0.27;-0.53;-0.4;-0.12;0.17;0.28;0.15;-0.03;-0.15;-0.071;0.059;0.08;0.032;-0.015;-0.02]; f=fittype('a*cos(k*t)*exp(w*t)','independent','t','coefficients',{'a','k','w'}); cfun=fit(x,y,f) xi=0:.1:20; yi=cfun(xi); plot(x,y,'r*',xi,yi,'b-'); 图1-4 运行程序,在命令窗口可达到以下运行结果,图像如图1-4 Warning: Start point not provided, choosing random start point. > In fit>handlewarn at 715 In fit at 315 In Untitled2 at 5 cfun = General model: cfun(t) = a*cos(k*t)*exp(w*t) Coefficients (with 95% confidence bounds): a = 0.9987 ( 0.9835, 1.014) k = 1.001 (0.9958, 1.006) w = -0.2066 (-0.2131, -0.2002) 从结果可以看出,拟合的曲线为: (0.2066) ()0.9987cos(1.001)*t f t t e- =。拟 合曲线给出了数据大致趋势,并给出了各参数的置信区间。

MATLAB结课作业

4.10 上机操作步骤 1在MatLab 的命令窗口输入如下命令序列: clf subplot(1,2,1) hold on grid on n=1:1000; m=1./n.*cos(n*pi/2); plot(n,m,'k.') 观察数列的散点图22,当n 趋于无穷大时,数列趋于 0 subplot(1,2,2) hold on grid on n=500:10000; m=1./n.*cos(n*pi/2); plot(n,m,'k.') fplot('0.001',[500,10000]) fplot('-0.001',[500,10000]) axis([500,10000,-0.005,0.005]) 观察图23,当001.0=ε时,可以取N= 1000 ,当n>N 时有επε<< -2 co s n 1n . 图22 图23 2 在MatLab 的命令窗口输入如下命令序列: clf subplot(1,2,1) hold on grid on fplot('x.*x',[1,3])

观察函数图24, 当2x →时,2x y =的极限是 4 subplot(1,2,2) hold on grid on fplot('x.*x',[1.9,2.1]) fplot('4.001',[ 1.9,2.1]) fplot('3.999',[ 1.9,2.1]) axis([1.9997,2.0005,3.9989,4.0011]) % 调整显示图形的范围是该实验的重点 观察图25,当001.0=ε时, δ取 0.003 δ<-<2 0x 时,001.04<-y ? 图24 图25 3 在MatLab 的命令窗口输入: syms x limit((2.^x-log(2.^x)-1)./(1-cos(x)),x,0) 运行结果为 ans = log(2)^2 理论上用洛必达法则计算该极限: x x x cos 112ln 2lim 0x ---→= 1 4 在MatLab 的命令窗口输入如下命令序列: (1)syms x y=sqrt(x+2)*(3-x)^4/(x+1)^5 diff(y,x) %求一阶导数 运行结果 =y'1/2/(x+2)^(1/2)*(3-x)^4/(x+1)^5-4*(x+2)^(1/2)*(3-x)^3/(x+1)^5-5*(x+2)^(1/2)*(3-x )^4/(x+1)^6 x=1; eval(y) %求导数在x =1处的值 运行结果 1'=x y = 0.8660

Matlab Simulink 仿真步骤

MATLAB基础与应用简明教程 张明等编著 北京航空航天大学出版社(2001.01) MATLAB软件环境是美国New Mexico大学的Cleve Moler博士首创的,全名为MATrix LABoratory(矩阵实验室)。它建立在20世纪七八十年代流行的LINPACK(线性代数计算)和ESPACK(特征值计算)软件包的基础上。LINPACK和ESPACK软件包是从Fortran语言开始编写的,后来改写为C语言,改造过程中较为复杂,使用不便。MA TLAB是随着Windows环境的发展而迅速发展起来的。它充分利用了Windows环境下的交互性、多任务功能语言,使得矩阵计算、数值运算变得极为简单。MA TLAB语言是一种更为抽象的高级计算机语言,既有与C语言等同的一面,又更为接近人的抽象思维,便于学习和编程。同时,它具有很好的开放性,用户可以根据自己的需求,利用MA TLAB提供的基本工具,灵活地编制和开发自己的程序,开创新的应用。 本书重点介绍了MA TLAB的矩阵运算、符号运算、图形功能、控制系统分析与设计、SimuLink仿真等方面的内容。 Chap1 MATLAB入门与基本运算 本章介绍MATLAB的基本概念,包括工作空间;目录、路径和文件的管理方式;帮助和例题演示功能等。重点介绍矩阵、数组和函数的运算规则、命令形式,并列举了可能得到的结果。由于MA TLAB的符号工具箱是一个重要分支,其强大的运算功能在科技领域有特殊的帮助作用。 1.1 MATLAB环境与文件管理 1.2 工作空间与变量管理 1.2.1 建立数据 x1=[0.2 1.11 3]; y1=[1 2 3;4 5 6]建立一维数组x1和二维矩阵y1。分号“;”表示不显示定义的数据。 MATLAB还提供了一些简洁方式,能有规律地产生数组: xx=1:10 %xx从1到10,间隔为1 xx=-2:0.5:1 %xx从-2到1,间隔为0.5 linespace命令等距离产生数组,logspace在对数空间中等距离产生数组。对于这一类命令,只要给出数组的两端数据和维数就可以了。 xx=linespace(d1,d2,n) %表示xx从d1到d2等距离取n个点 xx=logspace(d1,d2,n) %表明xx从10d1到10d2等距离取n个点 1.2.2 who和whos命令 who: 查看工作空间中有哪些变量名 whos: 了解这些变量的具体细节 1.2.3 exist命令 查询当前的工作空间内是否存在一个变量,可以调用exist()函数来完成。 调用格式:i=exist(…A?); 式中,A为要查询的变量名。返回的值i表示A存在的形式: i=1 表示当前工作空间内存在一个变量名为A的矩阵; i=2 表示存在一个名为A.m的文件; i=3 表示MATLAB的工作路径下存在一个名为A.mex的文件;

Matlab数据拟合程序

课程设计名称:设计二:数据拟合指导教师:张莉 课程设计时数: 6 课程设计设备:安装了Matlab、C++软件的计算机 课程设计日期:实验地点:第五教学楼北902 课程设计目的: 1. 了解最小二乘拟合的原理,掌握用MA TLAB作最小二乘拟合的方法; 2. 学会利用曲线拟合的方法建立数学模型。 课程设计准备: 1.在开始本实验之前,请回顾相关内容; 2.需要一台准备安装Windows XP Professional操作系统和装有数学软件的计算机。 课程设计内容及要求 要求:设计过程必须包括问题的简要叙述、问题分析、实验程序及注释、实验数据及结果分析和实验结论几个主要部分。 1. 用切削机床进行金属品加工时,为了适当地调整机床,需要测定刀具的磨损速度,在一定的时间测量刀具的厚度,得数据如表所示,请选用合适的函数来描述切削时间与刀具厚度的关系。 首先对数据进行分析,画出离散的点,观察点近似的曲线: t=0:1:15; y=[30.0 29.1 29.8 28.1 28.0 27.7 27.5 27.2 27.0 26.8 26.5 26.3 26.1 25.7 25.3 24.8]; plot(t,y,'r*')

判断出曲线是近似直线函数,所以对数据进行测试可以做三次函数拟合: t=0:1:15; y=[30.0 29.1 29.8 28.1 28.0 27.7 27.5 27.2 27.0 26.8 26.5 26.3 26.1 25.7 25.3 24.8]; %plot(t,y,'r*') A=polyfit(t,y,3) z=polyval(A,t); plot(t,y,'r*',t,z,'b') 051015 拟合结果: A = -0.3099 29.5676 拟合函数为:y=-0.3099t+29.5676

有限元大作业matlab课程设计例子

有 限 元 大 作 业 程 序 设 计 学校:天津大学 院系:建筑工程与力学学院 专业:01级工程力学 姓名:刘秀 学号:\\\\\\\\\\\ 指导老师: 连续体平面问题的有限元程序分析 [题目]: 如图所示的正方形薄板四周受均匀载荷的作用,该结构在边界 上受正向分布压力, m kN p 1=,同时在沿对角线y 轴上受一对集中压 力,载荷为2KN ,若取板厚1=t ,泊松比0=v 。 [分析过程]: 由于连续平板的对称性, 只需要取其在第一象限的四分之一部分

参加分析,然后人为作出一些辅助线将平板“分割”成若干部分,再为每个部分选择分析单元。采用将此模型化分为4个全等的直角三角型单元。利用其对称性,四分之一部分的边界约束,载荷可等效如图所示。 [ 用和单元信息文件DATA.OUT。 位移模式:用用线性位移模式 载荷类型:节点载荷,非节点载荷应先换算为等效节点载荷 材料性质:弹性体由单一的均匀材料组成 约束方式:为“0”位移固定约束,为保证无刚体位移,弹性体至少应有对三个自由度的独立约束 方程求解:针对半带宽刚度方程的Gauss消元法 输入文件:由手工生成节点信息文件NODE.IN,和单元信息文件ELEMENT.IN 结果文件:输出一般的结果文件DATA.OUT 程序的原理如框图:

(1) ID : ID=2时为平面应变问题 (平面问题) ,LJK_ELE(I,1),LJK_ELE(I,2), X(I),Y(I)分别存放节点I 的x ,y 表示第I 个作用有节点载荷的节点x,y 方向的节点载荷数值 存放节点载荷向量,解方程后该矩 (2 READ_IN : 读入数据 BAND_K : 形成半带宽的整体刚度矩阵 FORM_KE : 计算单元刚度矩阵 FORM_P : 计算节点载荷 CAL_AREA :计算单元面积 DO_BC : 处理边界条件 CLA_DD : 计算单元弹性矩阵 SOLVE : 计算节点位移 CLA_BB : 计算单元位移……应变关系矩阵 CAL_STS :计算单元和节点应力 (3)文件管理: 源程序文件: chengxu.for 程序需读入的数据文件:

matlabsimulink初级教程

S i m u l i n k仿真环境基础学习Simulink是面向框图的仿真软件。 7.1演示一个Simulink的简单程序 【例7.1】创建一个正弦信号的仿真模型。 步骤如下: (1)在MATLAB的命令窗口运行simulink命令,或单击工具栏中的图标,就可以打开Simulink模块库浏览器(SimulinkLibraryBrowser)窗口,如图7.1所示。

图7.1Simulink界面 (2)单击工具栏上的图标或选择菜单“File”——“New”——“Model”,新建一个名为“untitled”的空白模型窗口。 (3)在上图的右侧子模块窗口中,单击“Source”子模块库前的“+”(或双击Source),或者直接在左侧模块和工具箱栏单击Simulink下的Source子模块库,便可看到各种输入源模块。 (4)用鼠标单击所需要的输入信号源模块“SineWave”(正弦信号),将其拖放到的空白模型窗口“untitled”,则“SineWave”模块就被添加到untitled窗口;也可以用鼠标选中“SineWave”模块,单击鼠标右键,在快捷菜单中选择“addto'untitled'”命令,就可以将“SineWave”模块添加到untitled窗口,如图7.2所示。

(5) Scope ”模块(示波器)拖放到“untitled ”窗口中。 (6)在“untitled ”窗口中,用鼠标指向“SineWave ”右侧的输出端,当光标变为十字符时,按住鼠标拖向“Scope ”模块的输入端,松开鼠标按键,就完成了两个模块间的信号线连接,一个简单模型已经建成。如图7.3所示。 (7)开始仿真,单击“untitled ”模型窗口中“开始仿真”图标 ,或者选择菜单“Simulink ”——“Start ”,则仿真开始。双击“Scope ” 模块出现示波器显示屏,可以看到黄色的正弦波形。如图7.4所示。 图7.2Simulink 界面

matlab电力电子仿真教程

MATLAB在电力电子技术中的应用 目录 MATLAB在电力电子技术中的应用 (1) MATLAB in power electronics application (2) 目录 (4) 1绪论 (6) 1.1关于MATLAB软件 (6) 1.1.1MATLAB软件是什么 (6) 1.1.2MATLAB软件的特点和基本操作窗口 (7) 1.1.3MATLAB软件的基本操作方法 (10) 1.2电力电子技术 (12) 1.3MATLAB和电力电子技术 (13) 1.4本文完成的主要内容 (14) 2MATLAB软件在电路中的应用 (15) 2.1基本电气元件 (15) 2.1.1基本电气元件简介 (15) 2.1.2如何调用基本电器元件功能模块 (17) 2.2如何简化电路的仿真模型 (19) 2.3基本电路设计方法 (19) 2.3.1电源功能模块 (19) 2.3.2典型电路设计方法 (20) 2.4常用电路设计法 (21) 2.4.1ELEMENTS模块库 (21) 2.4.2POWER ELECTRONICS模块库 (22) 2.5MATLAB中电路的数学描述法 (22) 3电力电子变流的仿真 (25) 3.1实验的意义 (25) 3.2交流-直流变流器 (25)

3.2.1单相桥式全控整流电路仿真 (26) 3.2.2三相桥式全控整流电路仿真 (38) 3.3三相交流调压器 (53) 3.3.1无中线星形联结三相交流调压器 (53) 3.3.2支路控制三角形联结三相交流调压器 (59) 3.4交流-交流变频电路仿真 (64) 3.5矩阵式整流器的仿真 (67)

MATLAB拟合函数

在Matlab 6.5以上的环境下,在左下方有一个"Start"按钮,如同Windows的开始菜单,点开它,在目录"Toolboxes"下有一个"Curve Fitting",点开"Curve Fitting Tool",出现数据拟合工具界面,基本上所有的数据拟合和回归分析都可以在这里进行。 下面给你简单介绍一下它的使用方法。 首先在Matlab的命令行输入两个向量,一个向量是你要的x坐标的各个数据,另外一个是你要的y坐标的各个数据。输入以后假定叫x向量与y向量,可以在workspace里面看见这两个向量,要确保这两个向量的元素数一致,如果不一致的话是不能在工具箱里面进行拟合的。 例如在命令行里输入下列数据: x=(0:0.02:0.98)';二胡与施工的计划的风光好舒服很多国家法规和积分高科技 y=sin(4*pi*x+rand(size(x))); 此时x-y之间的函数近似的为正弦关系,频率为2,但是存在一个误差项。 可以通过作图看出它们的大体分布: plot(x,y,'*','markersize',2); 打开曲线拟合共工具界面,点击最左边的"Data..."按钮,出现一个Data对话框,在Data Sets 页面里,在X Data选项中选取x向量,Y Data选项中选取y向量,如果两个向量的元素数相同,那么Create data set按钮就激活了,此时点击它,生成一个数据组,显示在下方Data Sets列表框中。关闭Data对话框。此时Curve Fitting Tool窗口中显示出这一数据组的散点分布图。 点击Fitting...按钮,出现Fitting对话框,Fitting对话框分为两部分,上面为Fit Editor,下面为Table of Fits,有时候窗口界面比较小,Fit Editor部分会被收起来,只要把Table of Fits 上方的横条往下拉就可以看见Fit Editor。在Fit Editor里面点击New Fit按钮,此时其下方的各个选框被激活,在Data Set选框中选中刚才建立的x-y数据组,然后在Type of fit 选框中选取拟合或回归类型,各个类型的拟合或回归相应的分别是: Custom Equations 用户自定义函数 Expotential e指数函数 Fourier 傅立叶函数,含有三角函数 Gaussian 正态分布函数,高斯函数 Interpolant 插值函数,含有线性函数,移动平均等类型的拟合 Polynomial 多项式函数 Power 幂函数 Rational 有理函数(不太清楚,没有怎么用过) Smooth Spline ??(光滑插值或者光滑拟合,不太清楚) Sum of sin functions正弦函数类 Weibull 威布尔函数(没用过) 不好意思,没有学过数理统计,所以很多东西都是用了才知道,翻译也就不太准确。不过在Type of fit选框下方有一个列表框,基本上各个函数类里的函数都写成解析式列在下方以供选择,所以找合适的函数还是比较容易的。

matlab结课论文

精选文库 山西大同大学matlab课程结课作业MATLAB程序应用 姓名: 课程序号: 2 班级: 学号: 2013年12月

1.实验内容:已知!123n n =?????L ,编写一个程序求满足100!10n ≤的 最大的n 值以及此时!n 的值。 function n n=2;m=1; while m<=10^100 m=m.*n;n=n+1; end m=m/(n-1);n=n-2; m n m = 1.7112e+098 n =69 2.设)15113111191715131 1(22Λ+--++--+=π,试根据公式编出计算pi 的Mat lab 主程序文件,pi 的精度为0.00001。 程序: k=0;n=1;b=0;a=0; while abs((pi-a))>0.00001 a=2*sqrt(2)*k; k=( bcos( *pi/2)+sin(b*pi/2))/n+k; n=n+2; b=b+1; end a 输出a=3.141602572083633 ; a-pi= 9.918493839577991e-006 3.有两个矩阵A 和B 如下:????????????---=771175420132861-1A ,????????????------=0162310013125673B , 将A 中所有等于-1的元素改为-2,将B 中所有小于0的元素改为1,然后将B 中等于0的元素的值改为A 的相应位置元素的值。请用Matlab 函数文件实现上述运算。 clear;

clc; A=[1 -1 6 8;2 3 -1 0;-2 4 5 7;1 -1 7 7]; B=[-3 -7 6 -5;-2 1 3 -1;0 0 1 3;2 6 -1 0]; C=A;A(A==-1)=-2;U=A; D=B;B(B<0)=1;V=B; A=C;B=D;[i,j]=find(B==0);A(i,j)=0;W=A; A=C;B=D; A,B,W,U,V %用函数文件实现矩阵中元素的变换。 %A、B为输入变量。 %U、V、W分别存放A、B中间变换结果。 ; 4.用matlab主程序文件产生动画:呈现一小圆(半径为1)在一大圆(半径为3)的圆周外部滚动的动画,要求连续滚动20周。 clea close;clc;r; axis([-6 6 -6 6],'equal','manual');hold on; ezplot('x^2+y^2-9'); h=ezplot('x^2+y^2-1'); x=get(h,'xdata'); y=get(h,'ydata'); for t=1:7200 set(h,'xdata',x+4*cosd(t),'ydata',y+4*sind(t)); drawnow; end

MATLAB大作业

M A T L A B大作业作业要求: (1)编写程序并上机实现,提交作业文档,包括打印稿(不含源程序)和电 子稿(包含源程序),以班为单位交,作业提交截止时间6月24日。 (2)作业文档内容:问题描述、问题求解算法(方案)、MATLAB程序、结果 分析、本课程学习体会、列出主要的参考文献。打印稿不要求MATLAB程序,但电 子稿要包含MATLAB程序。 (3)作业文档字数不限,但要求写实,写出自己的理解、收获和体会,有话 则长,无话则短。不要抄袭复制,可以参考网上、文献资料的内容,但要理解,要变成自己的语言,按自己的思路组织内容。 (4)从给出的问题中至少选择一题(多做不限,但必须独立完成,严禁抄袭)。 (5)大作业占过程考核的20%,从完成情况、工作量、作业文档方面评分。 第一类:绘制图形。(B级) 问题一:斐波那契(Fibonacci)螺旋线,也称黄金螺旋线(Golden spiral),是根据斐波那契数列画出来的螺旋曲线,自然界中存在许多斐波那契螺旋线的图案,是自然界最完美的经典黄金比例。斐波那契螺旋线,以斐波那契数为边的正方形拼成的长方形,然后在正方形里面画一个90度的扇形,连起来的弧线就是斐波那契 螺旋线,如图所示。 问题二:绘制谢尔宾斯基三角形(Sierpinskitriangle)是一种分形,由波兰数学家谢尔宾斯基在1915年提出,它是一种典型的自相似集。其生成过程为:取一个实心的三角形(通常使用等边三角形),沿三边中点的连线,将它分成四个小三

角形,然后去掉中间的那一个小三角形。接下来对其余三个小三角形重复上述操作,如图所示。 问题三:其他分形曲线或图形。分形曲线还有很多,教材介绍了科赫曲线,其他还有皮亚诺曲线、分形树、康托(G. Cantor)三分集、Julia集、曼德布罗集合(Mandelbrot set),等等。这方面的资料很多(如),请分析构图原理并用MATLAB 实现。 问题四:模拟掷骰子游戏:掷1000次骰子,统计骰子各个点出现的次数,将结果以下表的形式显示,并绘制出直方图。 点数 1 2 3 4 5 6 出现次数166 150 164 162 184 174 问题五:利用MATLAB软件绘制一朵鲜花,实现一定的仿真效果。 提示:二维/三维绘图,对花瓣、花蕊、叶片、花杆等的形状和颜色进行详细设置。 第二类:插值与拟合。(B级) 问题一:有人对汽车进行了一次实验,具体过程是,在行驶过程中先加速,然后再保持匀速行驶一段时间,接着再加速,然后再保持匀速,如此交替。注意,整个实验过程中从未减速。在一组时间点上测得汽车的速度如表所示。 (1)分别使用最近点插值、线性插值、三次埃尔米特插值和三次样条插值进行计算[0,110]时间段50个时间点的速度。 (2)绘制插值图形并标注样本点。

Matlab仿真实验教程

MATLAB的实验仿真 目录 实验一MATLAB在控制系统模型建立与仿真中的应用 (1) 实验二典型系统的时域响应分析 (13) 实验三线性控制系统的根轨迹与频域分析 (17) 实验四线性系统的校正 (22) 附录一 MATLAB6.5 控制系统工具箱函数和结构化的控制语句 (30) 附录二 SIMULINK 基本模块介绍 (34)

实验一 MATLAB 在控制系统模型建立与仿真中的应用 一、 MATLAB 基本操作与使用 1. 实验目的 1) 掌握MATLAB 仿真软件的安装及启动,熟悉 MATLAB 工作环境平台。 2) MATLAB 命令窗口,包括工具条以及菜单选项的使用;MATLAB 语言的基本规定,包括数值的表示、变量命名规定、基本运算符、预定义变量以及表达式等。 3) MATLAB 图形绘制功能、M 文件程序设计和线性控制系统传递函数模型的建立等。 2. 实验仪器 PC 计算机一台,MATLAB 软件1套 3. 实验内容 1) MATLAB 的启动 这里介绍MATLAB 装入硬盘后,如何创建MATLAB 的工作环境。 方法一 MATLAB 的工作环境由matlab.exe 创建,该程序驻留在文件夹matlab\bin\ 中。它的图标是 matlab 。只要从<我的电脑>或<资源管理器>中去找这个程序,然后双击此图标,就会自动创建如图1所示的MATLAB6.5 版的工作平台 。 图1 在英文Windows 平台上的MATLAB6.5 MATLAB 工作平台 方法二 假如经常使用MATLAB ,则可以在Windows 桌面上创建一个MATLAB 快捷方式图标。具体办法为: 把<我的电脑>中的 matlab 图标用鼠标点亮,然后直接把此图标拖到Windows 桌面上即可。此后,直接双击Windows 桌面上的matlab 图标,就可建立图1所示的 MATLAB 工作平台。 2) MATLAB 工作环境平台 桌面平台是各桌面组件的展示平台,默认设置情况下的桌面平台包括 6 个窗口,具体如下: ① MATLAB 窗口 Command Window

相关主题