ch6例题Word下载.docx
- 文档编号:19422365
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:13
- 大小:68.67KB
ch6例题Word下载.docx
《ch6例题Word下载.docx》由会员分享,可在线阅读,更多相关《ch6例题Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
c=[d,c];
%
A=cell(3,5);
A(1,:
)={'
Jack'
'
Marry'
Peter'
Rose'
Tom'
};
A(2,:
)={72,83,56,94,100};
5
switchA{2,k}
case100
r='
满分'
;
casea
优秀'
caseb
良好'
casec
及格'
otherwise
不及格'
A(3,k)={r};
A
A=
'
[72][83][56][94][100]
【例6.1-3】创建Hilbert矩阵。
(1)Hilbert矩阵
。
K=5;
A=zeros(K,K);
form=1:
K
forn=1:
K
A(m,n)=1/(m+n-1);
formatrat
formatshortg
A=
11/21/31/41/5
1/21/31/41/51/6
1/31/41/51/61/7
1/41/51/61/71/8
1/51/61/71/81/9
clear
tic
K=1000;
K
A1(m,n)=1/(m+n-1);
t1=toc
t1=
17.434
tic
A2=zeros(K,K);
A2(m,n)=1/(m+n-1);
t2=toc
t2=
2.1895
(4)
N=1000;
n=repmat(1:
N,N,1);
m=n'
A3=1./(n+m-1);
t3=toc
t3=
0.13909
【例6.1-4】编写计算
,其中
,
是预先给定的控制精度。
function[S,N]=exm060104(epsilon)
%[S,N]=exm060104(epsilon)
%CalculatethesumofaspecialseriesS=1+1/(1+2)+…+1/(1+2+…+N)
%SSumofaspecialseries
%NTheminimumamongallnumberstohave1/sum(1:
N)<
epsilon
%epsilonGivenaccuracy
k=0;
s=0;
d=inf;
S=0;
whiled>
k=k+1;
s=s+k;
d=1/s;
S=S+d;
N=k;
[S,N]=exm060104(0.0001)
S=
1.9859
N=
141
symsknN
SINF=limit(symsum(1/symsum(k,1,n),n,1,N),N,inf)
SINF=
2
N=141;
SN=vpa(symsum(1/symsum(k,1,n),n,1,N))
SN=
1.9859154929577464788732394366197
【例6.1-5】创建n阶魔方矩阵,限定条件是n为能被4整除的偶数。
(1)所谓魔方矩阵(Magicmatrix),是指那矩阵由1到
的正整数按照一定规则排列而成,并且每列、每行、每条对角线元素的和都等于
就生成规则而言,魔方矩阵可分成三类:
一,n为奇数;
二,n为不能被4整除的偶数;
三,n为能被4整除的偶数。
%exm060105.m生成一类魔方矩阵,该魔方矩阵的阶n为能被4整除的偶数。
%A为魔方矩阵
%n魔方矩阵的阶数
clc
while1%<
6>
n=input('
请输入一个能被4整除的正整数!
n='
);
ifmod(n,4)==0%<
8>
break%<
9>
end%<
10>
end%<
11>
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
(5)
s0=round(n*(n*n+1)/2);
disp([int2str(n),'
阶魔方矩阵的标称和是'
int2str(s0)])
Ns0=round(2*(n+1));
B=A'
SC=sum(A);
SR=sum(B);
Sd=sum(diag(A));
Sdi=sum(diag(B));
LS=[SC,SR,Sd,Sdi]==s0;
NS=round(sum(LS));
ifNS==Ns0
disp('
经验证,A是魔方矩阵。
'
)
else
经验证,A不是魔方矩阵。
end
12阶魔方矩阵的标称和是870
【例6.2-1】编写一个M函数文件。
它具有以下功能:
(A)根据指定的半径,画出蓝色圆周线;
(B)可以通过输入字符串,改变圆周线的颜色、线型;
(C)假若需要输出圆面积,则绘出圆。
function[S,L]=exm060201(N,R,str)
%exm060201.mTheareaandperimeterofaregularpolygon(正多边形的面积和周长)
%NThenumberofsides
%RThecircumradius
%strAlinespecificationtodeterminelinetype/color
%STheareaoftheregularpolygon
%LTheperimeteroftheregularpolygon
%exm060201用蓝实线画半径为1的圆
%exm060201(N)用蓝实线画外接半径为1的正N边形
%exm060201(N,R)用蓝实线画外接半径为R的正N边形
%exm060201(N,R,str)用str指定的线画外接半径为R的正N边形
%S=exm060201(...)给出多边形面积S,并画相应正多边形填色图
%[S,L]=exm060201(...)给出多边形面积S和周长L,并画相应正多边形填色图
%ZhangZhiyong编写于2006-1-31
switchnargin
case0
N=100;
R=1;
str='
-b'
case1
R=1;
case2
str='
case3
;
otherwise
error('
输入量太多。
t=0:
2*pi/N:
2*pi;
x=R*sin(t);
y=R*cos(t);
ifnargout==0
plot(x,y,str);
elseifnargout>
2
输出量太多。
S=N*R*R*sin(2*pi/N)/2;
%多边形面积
L=2*N*R*sin(pi/N);
%多边形周长
fill(x,y,str)
axisequalsquare
boxon
shg
(2)在指令窗中运行指令
[S,L]=exm060201(6,2,'
-g'
)%计算外接半径为2的正六边%形面积和周长,并绘图
10.3923
L=
12.0000
图6.2-1绿色正六边形
【例6.3-1】编写一个内含子函数的M函数绘图文件。
(1)编写函数文件exm060301.m
functionHr=exm060301(flag)
%exm060301.mDemoforhandlesofprimaryfunctionsandsubfunctions
%flag可以取字符串'
line'
或'
circle'
。
%Hr子函数cirline的句柄
t=(0:
50)/50*2*pi;
x=sin(t);
y=cos(t);
Hr=@cirline;
%创建子函数的句柄
feval(Hr,flag,x,y,t)%evaluatesthefunctionspecifiedbyafunctionhandleorfunctionname,F,atthegivenarguments
%-------------subfunction---------------------------
functioncirline(wd,x,y,t)
%cirline(wd,x,y,t)是位于exm060301.m函数体内的子函数
%wd接受字符串'
%t画线用的独立参变量
%x由t产生的横坐标变量
%y由t产生的纵坐标变量
switchwd
case'
plot(t,x,'
b'
t,y,'
r'
'
LineWidth'
2)
plot(x,y,'
8),
axissquareoff
otherwise
输入宗量只能取'
!
shg%bringsthecurrentfigurewindowforward
(2)把exm060301.m文件保存在MATLAB的搜索路径上,然后运行以下指令
HH=exm060301('
)
HH=
@cirline
图6.3-1绿色圆周线
t=0:
2*pi/5:
x=cos(t);
y=sin(t);
%为绘制正五边形准备数据
HH('
x,y,t)%利用句柄绘图
图6.3-2由子函数绘制的绿色正五边形
【例6.4-1】为MATLAB的“内建”函数magic创建函数句柄,并观察其内涵。
(1)创建
hm=@magic
hm=
@magic
(2)类型判别
class(hm)
isa(hm,'
function_handle'
ans=
function_handle
1
(3)借助指令functions观察内涵
CC=functions(hm)
CC=
function:
magic'
type:
simple'
file:
C:
\ProgramFiles\MATLAB\R2008a\toolbox\matlab\elmat\magic.m'
(4)句柄的调用方法之一
M1=hm(4)
(5)句柄的调用方法之二
M2=feval(hm,4)
〖说明〗
●指令hm=@magic的功能,可以用hm=str2func('
)替代。
●在创建一个函数句柄时,只有那函数正处在“视野Scope”内,此创建的函数句柄才是有效的。
所谓视野:
在当前目录下,指令help,lookfor,which等指令能正常发挥作用的范围。
●定义函数句柄时,所指定的函数名不应包括“路径信息”,也不应包括扩展名。
函数名最多只能包括63个字符。
●正确的函数句柄一旦建立,即使以后那个函数不再在“视野”之内也一样可以调用。
说明函数句柄创建有效性问题
可用zzy_alpha.m作试验
surf(peaks)
(1)正确设置情况
●把y7_ch06文件夹设置为当前文件夹
●运行Hzzy=@zzy_alpha;
●运行Hzzy(0.5)
可见其所起作用,此时作用于直接运行zzy_alpha相同
●把当前文件夹改变为y7_ch05
●再运行zzy_alpha将出错
●但此时,采用函数句柄仍然有效Hzzy(0.1)
(2)错误设置情况
●清除原先生成的句柄
●在y7_ch05文件夹为当前文件夹的情况下生成所谓句柄
HHzzy=@zzy_apha;
●再运行HHzzy(0.9)将出错而无效,不管当前文件夹在何处。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ch6 例题