MATLAB程序设计与应用Word格式.docx

上传人:b****5 文档编号:18120930 上传时间:2022-12-13 格式:DOCX 页数:24 大小:1.31MB
下载 相关 举报
MATLAB程序设计与应用Word格式.docx_第1页
第1页 / 共24页
MATLAB程序设计与应用Word格式.docx_第2页
第2页 / 共24页
MATLAB程序设计与应用Word格式.docx_第3页
第3页 / 共24页
MATLAB程序设计与应用Word格式.docx_第4页
第4页 / 共24页
MATLAB程序设计与应用Word格式.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

MATLAB程序设计与应用Word格式.docx

《MATLAB程序设计与应用Word格式.docx》由会员分享,可在线阅读,更多相关《MATLAB程序设计与应用Word格式.docx(24页珍藏版)》请在冰豆网上搜索。

MATLAB程序设计与应用Word格式.docx

高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。

可用于科学计算和工程绘图。

新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。

同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。

另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。

丰富的工具箱

MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。

一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。

领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。

程序接口

新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。

允许用户编写可以和MATLAB进行交互的C或C++语言程序。

另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。

MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。

工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,例如,信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。

MATLAB实验程序及其结果

1、题目要求:

用MATLAB画一个图形,调整视点,着色方式,调色板,灯光和表面材质。

尽量与图形接近。

(提示:

view,shading,colormap,light,material)

题目分析:

本题目通过列出想,x,y,z的函数表达式,使用ezsurf画出图形并通过view调整视角,以便得到与题目所示图形相同视角,通过shading设置图像颜色,通过colormap设置调色板颜色种类,通过light设置光照,通过改变material数值来得到题目要求的材料。

程序设计:

x='

cos(s)*cos(t)'

;

y='

cos(s)*sin(t)'

z='

sin(s)'

ezsurf(x,y,z,[0,pi/2,0,3*pi/2]);

view(19,40);

shadinginterp;

colormap(spring);

light('

position'

[0,0,-10],'

style'

'

local'

);

[-1,-0.5,2],'

infinite'

material([1,1,1,9,0.3]);

结果显示

2、题目要求计算

的全部方根,并用图形表示,要求得到以下图形。

roots,axis)

题目分析

由x^3+8=0得到向量[1,0,0,8],通过roots求解方程式的根,用abs求根的绝对值,必须定义t的区间及间距,通过plot画图,其中axis将坐标轴区域调整为方格形

程序设计

p=[1,0,0,8];

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:

'

),gridon

holdon

plot(R

(2),'

.'

MarkerSize'

30,'

Color'

r'

axis([-3,3,-3,3]),axissquare

plot(R([1,3]),'

o'

15,'

b'

 

3、题目要求编写MATLAB程序,画出函数

的图形

(1)请问函数值z中有多少个“非数”数据?

(2)观察所绘的图形中的裂缝,分析产生裂缝的原因。

(3)请写出绘制相应的“无裂缝”图形的全部指令。

isnan,sum,eps)

题目分析

首先通过meshgrid创建一个间距为

/15的网格区域,在网格中显示Z函数的图形,利用isnan判断得到函数值Z中是否有“非数”矩阵,“非数”返回1,否则返回0,并用sum计算“非数”个数。

程序设计

[X,Y]=meshgrid(-3*pi:

pi/15:

3*pi);

Z=sin(X).*sin(Y)./X./Y;

mesh(X,Y,Z);

M=isnan(Z);

N=sum(sum(M,2));

程序

(2)

X=-3*pi:

3*pi;

Y=-3*pi:

Xa=X+(X==0)*eps;

Ya=Y+(Y==0)*eps;

[X,Y]=meshgrid(Xa,Ya);

Z=sin(X).*sin(Y)./(X)./(Y);

4、题目要求写一段程序计算

(1)使用一个for/end循环,但不能使用数组运算符和sum。

(2)使用数组运算符和sum,但不能使用任何for/end循环,S的值是多少?

(1)

s=0;

forn=1:

1:

10

s=s+n/(n+1);

end

s

(2)

s=1/2+2/3+3/4+4/5+5/6+6/7+7/8+8/9+9/10+10/11

sum=s

5、题目要求运用数组算术运算符去掉下面程序里的for/end循环:

x=11:

15

fork=1:

length(x)

z(k)=x(k)^2+2.3*x(k)^0.5;

End

x=11:

15;

z=x.^2+2.3*x.^0.5

6、不使用数组算术运算符,重写下面的程序代码:

x=[214]

z=1./(1+x.^2)

使用switch、case语句,以得到x=1,2,4时z的值

x=1;

whilex<

=4

switchx

case1

z

(2)=1/(1+x^2);

case2

z

(1)=1/(1+x^2);

case4

z(3)=1/(1+x^2);

end

x=x+1;

z

7、题目要求编写一个函数M文件fun_es(x),计算函数

的值,其中参数可以为标量,也可以为向量。

在MATLAB的命令窗口中检验分别取x=3和x=[345]调用此函数,得到什么结果。

题目要求使用函数文件,利用function定义函数

functiony=es(x)

y=0.5*exp(x/3)-x.^2.*sin(x)

8、题目要求将两个设计参数x和y定为0<

x<

5和0<

y<

5。

产品的成本为:

用mesh命令绘图,近似地找出使成本最低的最优参数,并写出最低成本值。

题目应用meshgrid创建网格,并确定其间隔,通过mesh命令绘制图形,并min得到最小值。

[x,y]=meshgrid(0:

0.01:

5,0:

5);

f=x.^2-8*x+y.^2-6*y-0.1*x.*y+50;

[m,n]=find(f==min(min(f)));

x(m,n),y(m,n)

9、题目要求求函数的极值问题,设一个函数

,求这个函数在区间[-1010]内所有极小值点和对应的函数值。

思考:

极大值如何求?

f=@(x)sin(x)*sin(x)*exp(-0.1*x)-0.5*sin(x)*(x+0.1);

z=fminbnd(f,-10,10)

结果显示

10、题目要求多项式拟合,设测量数据点为

x0=0:

0.1:

1;

y0=[-.447,1.978,3.11,5.25,5.02,4.66,4.01,4.58,3.45,5.35,9.22];

分别取3,4,7次多项式对得到的测量数据进行拟合,并画出数据点和拟合多项式的图形。

创建数组x0、y0,并用polyfit将(x0,y0)拟合成n次多项式,定义拟合曲线、原始数据,并通过plot做出其图形,通过改变n的值,得到不同的拟合曲线与原始数据的图形。

y0=[-0.447,1.978,3.11,5.25,5.02,4.66,4.01,4.58,3.45,5.35,9.22];

n=3;

p=polyfit(x0,y0,n)

xx=0:

yy=polyval(p,xx);

plot(xx,yy,'

-b'

x0,y0,'

.r'

20),gridon

legend('

拟合曲线'

原始数据'

Location'

NorthEast'

xlabel('

x'

n=4;

原始数据’,'

n=7;

11、题目要求最小二乘法,设测量数据点为

x0=(0:

1)'

y0=[-.447,1.978,3.11,5.25,5.02,4.66,4.01,4.58,3.45,5.35,9.22]'

用最小二乘法,分别取3,4,7次多项式对得到的测量数据进行拟合,并画出数据点和拟合多项式的图形。

将得到的结果与11、比较。

题目与上题类似,通过不同方法得到不同的拟合曲线与原始据点,得到一系列点集,将其连接,可得到上题曲线。

n=1;

0.001:

20);

12题目要求双偶阶幻方阵双偶数是能被4整除的整数互补:

如果两个数字的和,等于幻方最大数和最小数的和,即n*n+1,称为互补。

4阶幻方的填法:

a.将数字从左到右、从上到下按顺序填写;

b.将对角线上的数字,换成与它互补的数字。

即得到双偶阶幻方阵。

n=4k阶幻方的填法:

a.先把数字按顺序填写。

b.按4*4把它划分成k*k个方阵。

因为n是4的倍数,一定能用4*4的小方阵分割。

c.与制作4阶幻方的方法一样,对角线上的数字换成互补的数字,就构成4k幻方阵。

根据以上给出的原理,编写一个程序实现下面功能。

输入一个整数n,如果n能被4整除,则得到一个n阶幻方阵,否则,提示重新输入。

对得到的n阶幻方阵进行验证,并给出验证的结果。

尽量使用MATLAB中的函数,不要使用循环语句)

function[A,n]=magicmatrix(n)

while1

ifmod(n,4)==0

break

else

n=input('

请输入一个能被4整除的正整数!

n='

G=logical(eye(4,4)+rot90(eye(4,4)));

m=n/4;

K=repmat(G,m,m);

N=n^2;

A=reshape(1:

N,n,n);

A(K)=N-A(K)+1;

magicmatrix(3)

13、题目要求属性控制下所绘曲线,画出如下图形,其中各条曲线的表达式分别

t=(0:

pi/100:

pi)'

y1=sin(t)*[1,-1];

y2=sin(t).*sin(9*t);

t3=pi*(0:

9)/9;

y3=sin(t3).*sin(9*t3);

程序设计

plot(t,y1,'

r:

t,y2,'

-bo'

holdon

plot(t3,y3,'

s'

10,'

MarkerEdgeColor'

[0,1,0],'

MarkerFaceColor'

[1,0.8,0])

axis([0,pi,-1,1])

holdoff

t3,y3,'

[1,0.8,0])

14、题目要求方程组

有多少个实数解,求出距离原点最近的那个解的近似值。

(提示ezplot;

ginput)

首先做出两个方程的图像,并通过两图像交点得出方程组的解。

ezplot('

y/(1+x^2+y^2)-0.1'

[-2*pi,2*pi,-pi/2,7/2*pi]);

sin(x+cos(y))'

[-2*pi,2*pi,-pi/2,7/2*pi])

title('

CRROS-POINTSOF'

y/(1+x^2+y^2)-0.1'

AND'

sin(x+cos(y))'

'

holdoff

gridon

[x0,y0]=ginput(4);

x00=mean(x0);

y00=mean(y0);

y00/(1+x00^2+y00^2)

15、题目要求编写使红色小球沿三叶线

运动的程序。

提示:

用polar绘制三叶线;

用plot创建红点的图柄,擦除模式用xor;

用set操作红点坐标,使用drawnow构成动画。

clear,clf

theta=0:

pi/500:

rho=sin(3*theta);

x=rho.*cos(theta);

y=rho.*sin(theta);

shg,axisoffequal

line('

xdata'

x,'

ydata'

y,'

[0.7,0.7,0.7],'

LineWidth'

2.5);

h=line('

x

(1),'

y

(1),'

[1,0,0],'

Marker'

40,'

EraseMode'

xor'

N=length(x);

k=2;

while1

set(h,'

x(k),'

y(k))

pause(0.01)

k=k+1;

ifk>

N

break

end

16、题目要求做一个花瓶,如图示。

做一个旋转体表面,调入一幅图像对该表面进行彩绘,即用图像的色图索引作为表面体的色图索引,读取名为flowers.tif的图象文件作为花瓶的表面图案,cylinder,imread,rgb2ind,surface,colormap)

题目要求设计一个花瓶,通过t,r的数据要求,得出花瓶的曲线方程,通过cylinder得出柱形图像,通过imread设计表面图像的文件,通过texture设计花瓶纹理,利用EdgeColor定义边缘颜色

clear;

clf,t=(0:

20)/20;

r=2.5-cos(2*pi*t);

[x,y,z]=cylinder(2+sin(t),30);

[C,CMAP]=imread('

flowers.tif'

CC=double(C)+1;

surface(x,y,z,'

Cdata'

flipud(CC),'

FaceColor'

texturemap'

EdgeColor'

none'

CDataMapping'

direct'

Ambient'

0.6,'

diffuse'

0.8,'

speculars'

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1