《MATLAB编程设计与应用》课程设计.docx

上传人:b****2 文档编号:1128897 上传时间:2023-04-30 格式:DOCX 页数:13 大小:256.35KB
下载 相关 举报
《MATLAB编程设计与应用》课程设计.docx_第1页
第1页 / 共13页
《MATLAB编程设计与应用》课程设计.docx_第2页
第2页 / 共13页
《MATLAB编程设计与应用》课程设计.docx_第3页
第3页 / 共13页
《MATLAB编程设计与应用》课程设计.docx_第4页
第4页 / 共13页
《MATLAB编程设计与应用》课程设计.docx_第5页
第5页 / 共13页
《MATLAB编程设计与应用》课程设计.docx_第6页
第6页 / 共13页
《MATLAB编程设计与应用》课程设计.docx_第7页
第7页 / 共13页
《MATLAB编程设计与应用》课程设计.docx_第8页
第8页 / 共13页
《MATLAB编程设计与应用》课程设计.docx_第9页
第9页 / 共13页
《MATLAB编程设计与应用》课程设计.docx_第10页
第10页 / 共13页
《MATLAB编程设计与应用》课程设计.docx_第11页
第11页 / 共13页
《MATLAB编程设计与应用》课程设计.docx_第12页
第12页 / 共13页
《MATLAB编程设计与应用》课程设计.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

《MATLAB编程设计与应用》课程设计.docx

《《MATLAB编程设计与应用》课程设计.docx》由会员分享,可在线阅读,更多相关《《MATLAB编程设计与应用》课程设计.docx(13页珍藏版)》请在冰点文库上搜索。

《MATLAB编程设计与应用》课程设计.docx

《MATLAB编程设计与应用》课程设计

 

《MATLAB编程设计与应用》课程设计

 

所在学院:

理学院

专业名称:

应用物理学

所在班级:

物理09-1

学生姓名:

学生学号:

0907120107

 

2011年6月

 

一,程序的结构和流程控制:

用Matlab程序的一般语句(循环语句for…end,条件循环语句while…end和条件转向语句if…else…end)分别求1~100的奇数和。

程序一

程序二:

程序三

sum=0;

forx=1:

1:

100;

ifmod(x,2)

sum=sum+x;

elsecontinue;

end

end

sum

clear

x=1;

sum=0;

whilex<101

sum=sum+x;

x=x+2;

end

sum

clear

sum=0;

forx=1:

2:

99;

sum=sum+x;

end

sum

二,2D绘制、函数图形的绘制:

1,用plot语句绘制函数图形,熟悉分区绘图命令(subplot),建立图形命令(figure),以及用title命令和一些指定的线性、颜色和标记对图形作注释的功能。

x=[-pi:

pi/20:

pi];

y1=sin(x);

y2=cos(x);

figure

(1)

subplot(2,2,1),plot(x,y1,'+')

gridon,title('sin(x)')

subplot(2,2,2),plot(x,y2,'k')

gridon,title('cos(x)')

subplot(2,2,3),plot(x,y1,'b*',x,y2,'g-.')

gridon,title('sin(x)andcos(x)')

subplot(2,2,4),plot(x,y1,'-',x,y1,'ro')

gridon,title('sin(x)')

2,用subplot命令将画图区域分为三份,分别用ploy,comet和fplot命令做y=sin(3x+2)的图像。

并用图形标题设置命令(title),X轴标签设置命令(xlabel),y轴标签设置命令(ylabel)对图形作注释。

程序:

x=-2*pi:

pi/20:

2*pi;

y=sin(3*x+2);

subplot(3,1,1)

plot(x,y)

title('y=sin(3x+2)')

xlabel('x[-2*pi,2*pi]')

ylabel('y=sin(3x+2)')

subplot(3,1,2)

comet(x,y,'g')

title('y=sin(3x+2)')

xlabel('x[-2*pi,2*pi]')

ylabel('y=sin(3x+2)')

subplot(3,1,3)

fplot('sin(3*x+2)',[-2*pi,2*pi])

title('y=sin(3x+2)')

xlabel('x[-2*pi,2*pi]')

ylabel('y=sin(3x+2)')

用行结果:

 

3,练习使用ezplot命令绘制参数曲线图形:

参数方程及程序

用行结果

参数方程:

程序:

subplot(2,1,1)

ezplot('(cos(x))^3','(sin(x)^3)',[-4*pi,4*pi])

subplot(2,1,2)

ezplot('(x-sin(x))','(1-cos(x))',[-4*pi,4*pi]

参数方程:

 

程序:

subplot(2,1,1)

ezplot('x*(cos(x))^3','x*(sin(x)^3)',[-pi,pi])

subplot(2,1,2)

ezplot('x*(x-sin(x))','x*(1-cos(x))',[-pi,pi])

4,用polar命令绘制极坐标图形,并熟悉gtext命令,用鼠标将文本点击到图形相应的位置上。

在同一坐标区域内绘制三叶玫瑰线和四叶玫瑰线。

程序:

subplot(2,2,1)

ezpolar('sin(2*x)',[0,2*pi])

gtext('ËÄҶõ¹åÏßr=sin(2x)')

subplot(2,2,2)

ezpolar('cos(2*x)',[0,2*pi])

gtext('ËÄҶõ¹åÏßr=cos(2x)')

subplot(2,2,3)

ezpolar('sin(3*x)',[0,2*pi])

gtext('ÈýҶõ¹åÏßr=sin(3x)')

subplot(2,2,4)

ezpolar('cos(3*x)',[0,2*pi])

gtext('ÈýҶõ¹åÏßr=cos(3x)')

用行结果:

5,在同一坐标系中绘制不同函数的图像。

函数表达式及程序

用行结果

程序:

x=[-2*pi:

pi/20:

2*pi];

y1=sin(x);

y2=x-x.^3/prod(1:

3);

y3=x-x.^3/prod(1:

3)+x.^5/prod(1:

5);

y4=y3-x.^7/(prod(1:

7);

plot(x,y1,'r',x,y2,'b',x,y3,'g',x,y4,'k')

函数表达式:

程序:

x=-1:

0.01:

1;

symst

y=(t^2-1)^3+1;

y1=diff(y,'t');

y2=diff(y1,'t');

y=subs(y,t,x);

y1=subs(y1,t,x);

y2=subs(y2,t,x);

plot(x,y,'r',x,y1,'g',x,y2,'b')

6,课外扩展:

分段函数的表达与绘图

编写程序计算

并画出在

上的曲线。

x=-3:

0.01:

3;

y1=zeros(size(x));

y2=zeros(size(x));

y3=zeros(size(x));

N=length(x);

fork=1:

N

ifx(k)<-1&x(k)>=-3;

y1(k)=(-x(k).^2-4*x(k)-3)/2;

elseifx(k)>=-1&x(k)<1;

y2(k)=-x(k).^2+1;

elsex(k)<=3&x(k)>=1;

y3(k)=(-x(k).^2+4*x(k)-3)/2;

end

end

y=y1+y2+y3;

plot(x,y)

三,符号运算与数值运算综合练习

1.已知函数

的表达式为

编写一个函数文件,定义函数

处的一阶泰勒多项式。

函数文件myfun.m

调用语句

用行结果

functiony=myfun(x)

symst1t2t3t4t5t6t7

x0=[0.10.30.10.11.5160.75];

u

(1)=174.42*(t1/t5)*(t3/(t2-t1))^0.85*

sqrt((1-2.62*(1-0.36*(t4/t2)^(-0.56))^1.5

*(t4/t2)^1.16)/(t6*t7))

u

(2)=diff(u

(1),'t1');

u(3)=diff(u

(1),'t2');

u(4)=diff(u

(1),'t3');

u(5)=diff(u

(1),'t4');

u(6)=diff(u

(1),'t5');

u(7)=diff(u

(1),'t6');

u(8)=diff(u

(1),'t7');

u=subs(u,{'t1','t2','t3','t4','t5','t6','t7'},x0)

y=u*[1,x-x0]'

>>x=[1:

7];

y=myfun(x)

u=

8721/50*t1/t5*(t3/(t2-t1))^(17/20)*((1-131/50*(1-9/25/(t4/t2)^

(14/25))^(3/2)*(t4/t2)^(29/25))/t6/t7)^(1/2)

u=

Columns1through6

1.725624.5896-5.991114.6675

-4.0281-1.1504

Columns7through8

-0.0539-1.1504

y=

29.820

y=

29.8206

注意事项:

保存时须要以函数名命名,负责不能调用函数。

说明:

用行结果没有完全按MATLAB给出的形式,其中空行被去掉了

2.编辑一个函数文件,实现如下功能:

对输入的矩阵a,若a是方阵,计算其特征值与特征向量,并求出最大特征值及其对应的特征向量。

若a不是方阵,计算a的转置与a的乘积的特征值与特征向量,并求出最大特征值及其对应的特征向量。

函数文件myfun.m

调用语句

用行结果

function[Emax,Dmax]=myfun(x)

n=size(x);

ifn

(1)==n

(2);

b=x;

elseb=x'*x;

end

[e,d]=eig(b)

dmax=d(1,1);

k=1;

fori=2:

n

(2)

if(dmax

dmax=d(i,i)

k=i;

end

end

Emax=e(:

k)

Dmax=dmax

>>a=[1,2,3,21;

1,4,4,12;

1,2,43,12;

4,2,3,5];

>>myfun(a)

e=

-0.1182-0.72640.87950.3798

-0.1272-0.51190.3012-0.9188

-0.98040.22020.05790.0040

-0.0928-0.4022-0.36380.1079

d=

44.5164000

013.127600

00-6.80390

0002.1599

Emax=

-0.1182

-0.1272

-0.9804

-0.0928

Dmax=

44.5164

四、优化工具箱试验

1,非线性不等式约束最优化问题

求解

约束条件:

实验步骤

用行结果

一,目标函数文件:

functionf=objfun(x)

f=exp(x

(1))*(4*x

(1)^2+2*x

(2)^2+4*x

(1)

*x

(2)+2*x

(2)+1);

Optimizationterminated:

first-orderoptimalitymeasureless

thanoptions.TolFunandmaximumconstraintviolationisless

thanoptions.TolCon.

Activeinequalities(towithinoptions.TolCon=1e-006):

lowerupperineqlinineqnonlin

1

2

x=

-9.54741.0474

fval=

0.0236

二,约束函数文件:

function

[c,ceq]=confun(x)

c=[1.5+x

(1)*x

(2)-x

(1)-x

(2);

-x

(1)*x

(2)-10];

ceq=[];

三,初始化调用函数:

>>x0=[-1,1];

>>options=optimset('LargeScale','off');

>>[x,fval]=fmincon(@objfun,x0,[],[],[],[],[],[],

@confun,options)

2,线性规划

求解下述问题:

根据函数linprog函数的功能,可知此问题可用linprog函数求解:

函数程序为:

f=[-3,-2,-1]';

a=[1,2,4;-2,1,-1;4,-1,-2;-4,1,2];

b=[5,-35,40,-30]';

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2