matlab第四章作业
matlab实验报告第四章
第四章N=21时:M4-3程序如下:N=input('N=');W=blackman(N);wc=0.4*pi;alpha=(N-1)/2;k=0:N-1;hd=(wc/pi)*sinc((wc/pi)*(k-alpha));h=hd.*W';omega=linspace(0,pi,512);mag=freqz(h,[1],omega);magdb=20*log10(abs(mag));plot(omega/pi,magdb);grid; N=51时:axis([0 1 -100 5]);set(gca,'ytick',[-80 -75 -60 -40 -20 0]);结论:滤波器的长度增加,即N增加时,通阻带的震荡波纹数量随之增加,波纹宽度变窄,过渡带变窄。
但最小阻带衰减不变,即最小阻带衰减与N无关。
m4-6(b)程序如下:wp=input('wp=');ws=input('ws=');N=61;alpha=(N-1)/2;dw=ws-wp;wc=(ws+wp)/2;h1=sinc((dw/pi).*((0:29)-alpha)/2)*(wc/pi).*sinc((wc/pi).*((0:29)-alpha));h2=wc/pi;h3=sinc((dw/pi).*((31:60)-alpha)/2)*(wc/pi).*sinc((wc/pi).*((31:60)-alpha));h=[h1 h2 h3];omega=linspace(0,pi,512); (1)ΔΩ=0.1*pi时,As= -36db: mag=freqz(h,[1],omega);magdb=20*log10(abs(mag));plot(omega/pi,magdb);grid;axis([0 1 -100 5]);(2)ΔΩ=0.3*pi时,As= -48db: (3)ΔΩ=0.5*pi时,As= -52db:可见:随着过渡带的增宽,阻带衰减值增加。
matlab第四章课后作业解答
matlab第四章课后作业解答第四章习题解答1、求下列多项式的所有根,并进行验算。
(3)267235865x x x x-+-(4)4)32(3-+x 解:>> p=zeros(1,24); >> p(1)=5;p(17)=-6;p(18)=8;p(22)=-5; >> root=roots(p)root =0.97680.9388 + 0.2682i0.9388 - 0.2682i0.8554 + 0.5363i0.8554 - 0.5363i0.6615 + 0.8064i0.6615 - 0.8064i0.3516 + 0.9878i0.3516 - 0.9878i-0.0345 + 1.0150i-0.0345 - 1.0150i-0.4609 + 0.9458i-0.4609 - 0.9458i-0.1150 + 0.8340i-0.1150 - 0.8340i-0.7821 + 0.7376i-0.7821 - 0.7376i-0.9859 + 0.4106i-0.9859 - 0.4106i-1.0416-0.7927>> polyval(p,root)ans =1.0e-012 *-0.07120.0459 - 0.0081i0.0459 + 0.0081i-0.0419 + 0.0444i-0.0419 - 0.0444i0.0509 + 0.0929i0.0509 - 0.0929i-0.2059 + 0.0009i-0.2059 - 0.0009i-0.0340 + 0.0145i-0.0340 - 0.0145i0.1342 + 0.0910i0.1342 - 0.0910i0.0025 + 0.0027i0.0025 - 0.0027i-0.0077 + 0.4643i-0.0077 - 0.4643i-0.3548 - 0.1466i-0.3548 + 0.1466i-0.0251-0.0073(4) >> p1=[2 3];>> p=conv(conv(p1,p1),p1)-[0 0 0 4]; >> root=roots(p)root =-1.8969 + 0.6874i-1.8969 - 0.6874i-0.7063>> polyval(p,root)ans =1.0e-014 *-0.7105 - 0.6217i-0.7105 + 0.6217i6、求解下列方程组在区域1,0<<βα内的解-=+=.sin 2.0cos 7.0,cos 2.0sin 7.0βαββαα 解:以初值)5.0,5.0(),(00=βα进行求解>> fun=inline('[0.7*sin(x(1))+0.2*cos(x(2))-x(1),0.7*cos(x(1))-0.2*sin(x(2))-x(2)]');>> [x,f,h]=fsolve(fun,[0.5 0.5])Optimization terminated: first-order optimality is less than options.TolFun.x =0.5265 0.5079f =1.0e-007 *-0.1680 -0.2712h =1因而,该方程组的近似根为5079.0,5265.0==βα。
MATLAB练习第四章 (5)14
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根保通据护过生高管产中线工资敷艺料设高试技中卷术资配0料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高高与中中带资资负料料荷试试下卷卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并中3试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
Matlab北航教程第四章
4.6_3
CH4.7 系统分析 S_ss=ss(A,B,C,D):利用状态方程创建LTI S_zpk=zpk(Z,P,K) :利用零极点增益创建LTI S_tf=tf(num,den) :利用传递函数创建LTI [A,B,C,D]=ssdata(S_lti) [Z,P,K]=zpkdata(S_lti) [num,den]=tfdata(S_lti)
[x,resnorm,residual,exitflag]= lsqnonlin(fun,x0): 基于Gauss-Newton方法求解
min ( f (x) f1(x)2 f2 (x)2 fm (x)2 ) x
[x,resnorm,residual,exitflag] = lsqcurvefit(fun,x0,xdata,ydata) 非线性最小二乘曲线拟合
伪逆:B=pinv(A)
满秩分解 可利用rref指令完成
司楚尔(Schur)分解: [U R] = schur(A)
乔列斯基(Cholesky)分解:R = chol(X) R’*R=X
[R,p] = chol(X) 利用p来判断R是否为正定,p=0则X正定
线性方程组的解 一、行列式、逆、恰定方程 det(A) inv(A) x=inv(A)*b x=A\b 求解Ax=b,例4.1-1 二、最小二乘问题 对超定问题Ax=b有三种方法,4.1-2 x=inv(trans(A)A) trans(A)b x=pinv(A)*b x=A\b
CH4.2 矩阵的一些运算 加、减、乘
trace(A) rank(A)
kron(A,B) norm(A,flag) cond(A)
MATLAB第四章作业
【题4.1】 已知连续系统的传递函数为2724364523)(2345234+++++++++=s s s s s s s s s s G要求:(1) 求出该系统的零点、 极点及增益。
(2) 绘制出其零极点图, 判断系统的稳定性。
程序:>> num=[3, 2, 5, 4, 6]; >> den=[1, 3, 4, 2, 7, 2]; >> sys=tf(num, den); >> pzmap(sys) 结果:程序:>> grid 结果:程序:>> p=pole(sys) 结果:p =-1.7680 + 1.2673i -1.7680 - 1.2673i 0.4176 + 1.1130i 0.4176 - 1.1130i -0.2991 + 0.0000i程序:>> p=roots([1, 3, 4, 2, 7, 2]) 结果:p =-1.7680 + 1.2673i -1.7680 - 1.2673i 0.4176 + 1.1130i 0.4176 - 1.1130i -0.2991 + 0.0000i【题4.2】 已知离散控制系统的脉冲传递函数为024.0268.004.17.109.039.03)(2342+++---=z z z z z z z G判断系统的稳定性。
程序:>> num=[3 -0.39 -0.09]; >> den=[1 -1.7 1.04 0.268 0.024]; >> h=tf(num, den, -1) 结果:h =3 z^2 - 0.39 z - 0.09------------------------------------------ z^4 - 1.7 z^3 + 1.04 z^2 + 0.268 z + 0.024Sample time: unspecifiedDiscrete-time transfer function. 程序:>> roots(den) 结果:ans =0.9553 + 0.7162i 0.9553 - 0.7162i -0.1053 + 0.0758i -0.1053 - 0.0758i程序:>> abs(roots(den)) 结果:ans =1.1939 1.1939 0.1298 0.1298程序:>> pzmap(h)结果:【题4.3】 已知典型二阶系统的传递函数为2222)(nn ns s s Φωξωω++=其中,自然频率ωn=6, 绘制当阻尼比ζ=0.1,0.2, 0.707,1.0,2.0时系统的单位阶跃响应曲线。
第4章 MATLAB程序流程控制_习题答案
第4章 MATLAB程序流程控制习题4一、选择题1.下列关于脚本文件和函数文件的描述中不正确的是()。
AA.函数文件可以在命令行窗口直接运行B.去掉函数文件第一行的定义行可转变成脚本文件C.脚本文件可以调用函数文件D.函数文件中的第一行必须以function开始2.下列程序的输出结果是()。
Dy=10;if y==10y=20;elseif y>0y=30enddisp(y)A.1 B.30 C.10 D.203.有以下语句:a=eye(5);for n=a(2:end,:)for循环的循环次数是()。
CA.3 B.4 C.5 D.104.设有程序段k=10;while kk=k-1end则下面描述中正确的是()。
AA.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次5.有以下程序段:x=reshape(1:12,3,4);m=0;n=0;for k=1:4if x(:,k)<=6m=m+1;elsen=n+1;endend则m和n的值分别是()。
CA.6 6 B.2 1 C.2 2 D.1 26.调用函数时,如果函数文件名与函数名不一致,则使用()。
A A.函数文件名B.函数名C.函数文件名或函数名均可D.@函数名7.如果有函数声明行为“function [x,y,z]=f1(a,b,c)”,则下述函数调用格式中错误的是()。
BA.x=f1(a,b,c) B.[x,y,z,w]=f1(a,b,c)C.[x,b,z]=f1(a,y,c) D.[a,b]=f1(x,y,z)8.执行语句“fn=@(x) 10*x;”,则fn是()。
AA.匿名函数B.函数句柄C.字符串D.普通函数9.执行下列语句后,变量A的值是()。
D>> f=@(x,y) log(exp(x+y));>> A=f(22,3);A.22,3B.22 C.3 D.2510.程序调试时用于设置断点的函数是()。
matlab第四章课后答案
%Exerc ise 1(1)r oots([1 11])%Exer cise1(2)roots([3 0 -4 0 2 -1])%Exerc ise 1(3)p=zero s(1,24);p([1 17 1822])=[5 -6 8 -5];ro ots(p)%E xerci se 1(4)p1=[2 3];p2=conv(p1,p1);p3=co nv(p1, p2);p3(end)=p3(en d)-4; %原p3最后一个分量-4r oots(p3)%Exer cise2fun=inli ne('x*log(sqrt(x^2-1)+x)-sqrt(x^2-1)-0.5*x');fzer o(fun,2)%Exer cise3fun=inli ne('x^4-2^x');fplot(fun,[-2 2]);gr id on;fze ro(fu n,-1),fzer o(fun,1),f minbn d(fun,0.5,1.5)%Exe rcise 4fu n=inl ine('x*sin(1/x)','x');fp lot(f un, [-0.10.1]);x=z eros(1,10);fori=1:10, x(i)=fz ero(f un,(i-0.5)*0.01);end;x=[x,-x]%Ex ercis e 5f un=in line('[9*x(1)^2+36*x(2)^2+4*x(3)^2-36;x(1)^2-2*x(2)^2-20*x(3);16*x(1)-x(1)^3-2*x(2)^2-16*x(3)^2]','x');[a,b,c]=fso lve(f un,[0 0 0])%E xerci se 6fun=@(x)[x(1)-0.7*si n(x(1))-0.2*cos(x(2)),x(2)-0.7*cos(x(1))+0.2*sin(x(2))]; [a,b,c]=fsolv e(fun,[0.5 0.5])%E xerci se 7clear; clo se; t=0:p i/100:2*pi;x1=2+sqr t(5)*cos(t); y1=3-2*x1+sq rt(5)*sin(t);x2=3+s qrt(2)*cos(t);y2=6*sin(t);pl ot(x1,y1,x2,y2); gri d on; %作图发现4个解的大致位置,然后分别求解y1=fsolv e('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[1.5,2])y2=fsolv e('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[1.8,-2])y3=fsol ve('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[3.5,-5])y4=fso lve('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[4,-4])%Exerc ise 8(1)c lear;fun=inlin e('x.^2.*(x.^2-x-2)');fp lot(f un,[-2 2]);grid on;%作图观察x(1)=-2;x(2)=fminb nd(fu n,-1,-0.5);x(4)=fmi nbnd(fun,1,2);fun2=inlin e('-x.^2.*(x.^2-x-2)');x(3)=f minbn d(fun2,-0.5,0.5);x(5)=2feval(fun,x)%答案: 以上x(2)(4)是局部极小,x(1)(3)(5)是局部极大,从最后一句知道x(1)全局最大, x(4)最小。
MATLAB原理及应用实验报告第四章答案
《MATLAB 原理及应用》实验报告三.课后练习题答案1.为 ⎪⎩⎪⎨⎧<-=>+=01001x x x xx x y 编写赋值程序。
程序如下:①建立如下的M 文件:x=input('x=');%让用户通过键盘输入数值、字符串或表达式if x>0y=x+1;elseif x==0y=x;else x<0y=x-1;e nd程序执行结果如下>> kh1 %在当前工作目录下,文件名为“kh.1.m ” x=1>> yy =22.使用for ... end循环的array向量编程求出1+3+5...+100 的值程序如下:sum=0;>> for k=1:2:100sum=sum+k;end>> sumsum =25003.计算1+3+5...+100 的值,当和大于1000时终止计算。
程序如下:sum=0;for m=1:2:100; %建立1 3 5….100的向量if sum<=1000 %如果sum小于1000则可以继续加sum=sum+m; %累加elsebreak; %若sum的结果不符合条件就跳出整个循环endend结果为:sum =1024k =653.1计算从1开始多少个自然数之和超过100。
程序如下:>> sum=0;n=0;>> while sum<=100n=n+1;sum=sum+n;end结果为:n =14sum =1054.求1!+2!+3!+……+8!的值程序如下:n=1;sum=1;for m=2:8; %循环7次使得得到各次阶乘n=n*m;sum=sum+n; %累加end结果为:sum =462335.写程序,判断一年是否为闰年,符合下面两条件之一:(1990~2014)A、能被4整除,不能被100整除B、能被400整除程序如下count=0;for y=1990:2014;if((rem(y,4)==0&rem(y,100)~=0)|(rem(y,4)==0&rem(y,400)~=0));count=count+1;endend结果为:count =5。
MATLAB(第四章和第八章)
第四章 线性代数问题的计算机求解一、实验内容:题目1.Jordan 矩阵是矩阵分析中一类很实用的矩阵,其一般形式为J= ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡--ααα 000010001-,例如J1= ⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡-----5000015000015000015000015 试利用diag()函数给出构造J1的语句。
【分析】该题为对角矩阵的问题。
对J 要利用diag()能够构造对角矩阵和次对角矩阵的性质。
J1只需对角矩阵和次对角矩阵相加即可。
这里需要对diag()函数的调用。
如A=diag(V)---已知向量生成对角矩阵,A=diag(V,k)—生成主对角线上第k 条对角线为V 的矩阵(其中k 可为正负)【解答】:输入如下语句:>>J1=diag([-5 -5 -5 -5 -5])+diag([1 1 1 1],1) 按ENTER 键,显示如下: J1=-5 1 0 0 0 0 -5 1 0 0 0 0 -5 1 0 0 0 0 -5 1 0 0 0 0 -5题目5.试求出Vandermonde 矩阵A=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡11111234234234234234ee e e d d d d c c c c b b b ba a a a ,的行列式,并以最简的形式显示结果。
【求解】该问题有两个知识点。
一个构造是Vandermonde 矩阵,另一个是求矩阵的行列式。
前者可以利用书中编写的面向符号矩阵的vander()函数构造出Vandermonde 矩阵。
需要用到V=vander(C)来调用。
后者可以用MATLAB 的det()函数来求解,他会自动采用解析解法求出其行列式的值。
需要注意运用det()的前提是符号矩阵,本题中A 已是符号矩阵,所以不用转换。
最后,用simple()函数简化一下即可。
【解答】:(1)构造矩阵:输入如下语句:>>syms a b c d e; A=vander([a b c d e])按ENTER 键,显示如下: A=[ a^4, a^3, a^2, a, 1] [ b^4, b^3, b^2, b, 1] [ c^4, c^3, c^2, c, 1] [ d^4, d^3, d^2, d, 1] [ e^4, e^3, e^2, e, 1](2)以最简单的形式输出行列式: 输入如下语句:>>det(A),simple(ans) 按ENTER 键,显示如下: ans=(c-d)*(b-d)*(b-c)*(a-d)*(a-c)*(a-b)*(-d+e)*(e-c)*(e-b)*(e-a)15. 试求出线性代数方程组X ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡6246551223177967=⎥⎦⎤⎢⎣⎡21301012,并验证解的正确性 【分析】:该题为线性方程的计算机求解问题。
matlab1-4章作业及复习思考(1)
matlab1-4章作业及复习思考(1)第⼀章1.Matlab的⽂件有那些类型,各类型⽂件的作⽤是什么?答:M⽂件——在MATLAB命令窗⼝中键⼊⽂件名,可以执⾏M⽂件中的规定的计算任务或某种功能;MAT⽂件——是MATLAB的⼆进制数据⽂件,⽤于保存所使⽤的数据,是MATLAB 特有的数据存储格式;MEX⽂件——是经过MATLAB编译系统编译的⼆进制⽂件,可以被直接调⼊MATLAB系统中运⾏;图形⽂件——⽤来存储由MATLAB得到的图形⽂件。
2.说明两种M⽂件的异同答:共同点:在MATLAB命令窗⼝中键⼊⽂件名,可以执⾏M⽂件中的规定的计算任务或某种功能。
区别⼀:程序M⽂件中创建的变量都是MATLAB⼯作空间中的变量,⼯作空间的其他程序或函数可以共享;⽽函数M⽂件中创建的所有变量除了全程变量外,均为局限于函数运⾏空间内的局部变量;——类似于主程序区别⼆:函数M⽂件可以使⽤传递参数,所以函数M⽂件的调⽤式中可以有输⼊参数和输出参数,⽽程序M⽂件则没有这种功能。
——类似于函数3.如何查看Matlab的帮助答:(1) 单击MATLAB主窗⼝⼯具栏中的Help按钮。
(2) 在命令窗⼝中输⼊helpwin、helpdesk或doc。
(3) 选择Help菜单中的“MATLABHelp”选项。
MATLAB帮助命令包括help、lookfor以及模糊查询获得帮助:1、help 显⽰所有的帮助⽬录2、help ⽬录名(3) help命令名或函数名或符号第⼆章1矩阵元素的输⼊有那些⽅法?在MATLAB语⾔中,矩阵可以⽤⼏种不同的⽅式输⼊:(1) 以直接列出元素的形式输⼊;(2) 通过语句和函数产⽣;(3) 建⽴在M⽂件中;(4) 从外部的数据⽂件中装⼊;2掌握格式化输⼊数据的⽅法3总结MATLAB中⽤到的各种符号的含义及其⽤法。
矩阵转置: ⽤符号' 来表⽰,对复数矩阵,符号' 完成共扼转置。
要完成⾮共扼转置,则应使⽤“.'”或conj(z')矩阵加减:符号+和-是加减运算符。
(完整版)第4章MATLAB程序流程控制_习题答案
第4章 MATLAB程序流程控制习题4一、选择题1.下列关于脚本文件和函数文件的描述中不正确的是()。
AA.函数文件可以在命令行窗口直接运行B.去掉函数文件第一行的定义行可转变成脚本文件C.脚本文件可以调用函数文件D.函数文件中的第一行必须以function开始2.下列程序的输出结果是()。
Dy=10;if y==10y=20;elseif y>0y=30enddisp(y)A.1 B.30 C.10 D.203.有以下语句:a=eye(5);for n=a(2:end,:)for循环的循环次数是()。
CA.3 B.4 C.5 D.104.设有程序段k=10;while kk=k-1end则下面描述中正确的是()。
AA.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次5.有以下程序段:x=reshape(1:12,3,4);m=0;n=0;for k=1:4if x(:,k)<=6m=m+1;elsen=n+1;endend则m和n的值分别是()。
CA.6 6 B.2 1 C.2 2 D.1 26.调用函数时,如果函数文件名与函数名不一致,则使用()。
A A.函数文件名B.函数名C.函数文件名或函数名均可D.@函数名7.如果有函数声明行为“function [x,y,z]=f1(a,b,c)”,则下述函数调用格式中错误的是()。
BA.x=f1(a,b,c) B.[x,y,z,w]=f1(a,b,c)C.[x,b,z]=f1(a,y,c) D.[a,b]=f1(x,y,z)8.执行语句“fn=@(x) 10*x;”,则fn是()。
AA.匿名函数B.函数句柄C.字符串D.普通函数9.执行下列语句后,变量A的值是()。
D>> f=@(x,y) log(exp(x+y));>> A=f(22,3);A.22,3B.22 C.3 D.2510.程序调试时用于设置断点的函数是()。
(完整版)第4章MATLAB程序流程控制_习题答案
第4章 MATLAB程序流程控制习题4一、选择题1.下列关于脚本文件和函数文件的描述中不正确的是()。
AA.函数文件可以在命令行窗口直接运行B.去掉函数文件第一行的定义行可转变成脚本文件C.脚本文件可以调用函数文件D.函数文件中的第一行必须以function开始2.下列程序的输出结果是()。
Dy=10;if y==10y=20;elseif y>0y=30enddisp(y)A.1 B.30 C.10 D.203.有以下语句:a=eye(5);for n=a(2:end,:)for循环的循环次数是()。
CA.3 B.4 C.5 D.104.设有程序段k=10;while kk=k-1end则下面描述中正确的是()。
AA.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次5.有以下程序段:x=reshape(1:12,3,4);m=0;n=0;for k=1:4if x(:,k)<=6m=m+1;elsen=n+1;endend则m和n的值分别是()。
CA.6 6 B.2 1 C.2 2 D.1 26.调用函数时,如果函数文件名与函数名不一致,则使用()。
A A.函数文件名B.函数名C.函数文件名或函数名均可D.@函数名7.如果有函数声明行为“function [x,y,z]=f1(a,b,c)”,则下述函数调用格式中错误的是()。
BA.x=f1(a,b,c) B.[x,y,z,w]=f1(a,b,c)C.[x,b,z]=f1(a,y,c) D.[a,b]=f1(x,y,z)8.执行语句“fn=@(x) 10*x;”,则fn是()。
AA.匿名函数B.函数句柄C.字符串D.普通函数9.执行下列语句后,变量A的值是()。
D>> f=@(x,y) log(exp(x+y));>> A=f(22,3);A.22,3B.22 C.3 D.2510.程序调试时用于设置断点的函数是()。
MATLAB第三章和第四章作业
习题三1.选择题(1)已知a=4,b='4',下面说法错误的为C 。
A. 变量a比b占用的存储空间大B. 变量a和b可以进行加、减、乘、除运算C. 变量a和b的数据类型相同D. 变量b可以用eval命令执行(2)已知s='显示"hello"',则s的元素个数是B 。
A. 12B. 9C. 7D. 18(3)运行命令>>a=sym('pi','d')则对于变量a的描述D是正确的。
A. a是符号变量B. a显示为10位的数值C. a显示为32位的数值D. a不存在(4)对于符号表达式g=sym('sin(a*z)+cos(w*v)'),如果运行命令diff(g),则求导自变量是D。
A. aB. zC. wD. v(5)运行命令>>a=double(sym('sin(pi/2)')),则变量a是 C。
A. 符号变量B. 字符串'1'C. double型的数值1D. 出错(6)运行命令>>y=dsolve('x*D2y-3*Dy=x^2','t')求解微分方程,则D。
A. Dy是指dy/dxB. 得出的y是通解有一个常数符C1C. D2y是指d2y/dxD. 得出的y是通解有两个常数符C1和C2(7)有一个2行2列的元胞数组c,则c(2)是指C 。
A. 第1行第2列的元素内容B. 第2行第1列的元素内容C. 第1行第2列的元素D. 第2行第1列的元素(8)对于一个2行2列的元胞数组c,如果要删除第二列的元素,应该使用的命令是B 。
A.c{:,2}=[]B.c(:,2)=[]C.A、B两种方式均可D.A、B两种方式均不可(9)有一个3行10列的构架数组student,每个构架有name(姓名)、scores两个字段,其中scores是以1×5数组表示的五门课的成绩,那么要查看第4个学生的第2门课成绩,采用的命令中达不到要求的是。
传热学MATLAB温度分布大作业完整版
传热学大作业(第四章)姓名:张宝琪学号:03110608一、题目及要求1.各节点的离散化的代数方程2.源程序3.不同初值时的收敛快慢4.上下边界的热流量(λ=1W/(m℃))5.计算结果的等温线图6.计算小结题目:已知条件如下图所示:二、方程及程序(1)各温度节点的代数方程ta=(300+b+e)/4 ; tb=(200+a+c+f)/4; tc=(200+b+d+g)/4; td=(2*c+200+h)/4 te=(100+a+f+i)/4; tf=(b+e+g+j)/4; tg=(c+f+h+k)/4 ; th=(2*g+d+l)/4ti=(100+e+m+j)/4; tj=(f+i+k+n)/4; tk=(g+j+l+o)/4; tl=(2*k+h+q)/4tm=(2*i+300+n)/24; tn=(2*j+m+p+200)/24; to=(2*k+p+n+200)/24; tp=(l+o+100)/12 (2)源程序【G-S迭代程序】【方法一】函数文件为:function [y,n]=gauseidel(A,b,x0,eps)D=diag(diag(A));L=-tril(A,-1);U=-triu(A,1);G=(D-L)\U;f=(D-L)\b;y=G*x0+f;n=1;while norm(y-x0)>=epsx0=y;y=G*x0+f;n=n+1;end命令文件为:A=[4,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0;-1,4,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0;0,-1,4,-1,0,0,-1,0,0,0,0,0,0,0,0,0;0,0,-2,4,0,0,0,-1,0,0,0,0,0,0,0,0;-1,0,0,0,4,-1,0,0,-1,0,0,0,0,0,0,0;0,-1,0,0,-1,4,-1,0,0,-1,0,0,0,0,0,0;0,0,-1,0,0,-1,4,-1,0,0,-1,0,0,0,0,0;0,0,0,-1,0,0,-2,4,0,0,0,-1,0,0,0,0;0,0,0,0,-1,0,-1,0,4,0,0,0,-1,0,0,0;0,0,0,0,0,-1,0,0,-1,4,-1,0,0,-1,0,0;0,0,0,0,0,0,-1,0,0,-1,4,-1,0,0,-1,0;0,0,0,0,0,0,0,-1,0,0,-2,4,0,0,0,-1;0,0,0,0,0,0,0,0,-2,0,0,0,24,-1,0,0;0,0,0,0,0,0,0,0,0,-2,0,0,-1,24,-1,0;0,0,0,0,0,0,0,0,0,0,-2,0,0,-1,24,-1;0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,12];b=[300,200,200,200,100,0,0,0,100,0,0,0,300,200,200,100]';[x,n]=gauseidel(A,b,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]',1.0e-6) xx=1:1:4;yy=xx;[X,Y]=meshgrid(xx,yy);Z=reshape(x,4,4);Z=Z'contour(X,Y,Z,30)Z =139.6088 150.3312 153.0517 153.5639108.1040 108.6641 108.3119 108.1523 84.1429 67.9096 63.3793 62.4214 20.1557 15.4521 14.8744 14.7746 【方法2】>> t=zeros(5,5);t(1,1)=100;t(1,2)=100;t(1,3)=100;t(1,4)=100;t(1,5)=100;t(2,1)=200;t(3,1)=200;t(4,1)=200;t(5,1)=200;for i=1:10t(2,2)=(300+t(3,2)+t(2,3))/4 ;t(3,2)=(200+t(2,2)+t(4,2)+t(3,3))/4;t(4,2)=(200+t(3,2)+t(5,2)+t(4,3))/4;t(5,2)=(2*t(4,2)+200+t(5,3))/4;t(2,3)=(100+t(2,2)+t(3,3)+t(2,4))/4;t(3,3)=(t(3,2)+t(2,3)+t(4,3)+t(3,4))/4; t(4,3)=(t(4,2)+t(3,3)+t(5,3)+t(4,4))/4; t(5,3)=(2*t(4,3)+t(5,2)+t(5,4))/4;t(2,4)=(100+t(2,3)+t(2,5)+t(3,4))/4;t(3,4)=(t(3,3)+t(2,4)+t(4,4)+t(3,5))/4;t(4,4)=(t(4,3)+t(4,5)+t(3,4)+t(5,4))/4;t(5,4)=(2*t(4,4)+t(5,3)+t(5,5))/4;t(2,5)=(2*t(2,4)+300+t(3,5))/24;t(3,5)=(2*t(3,4)+t(2,5)+t(4,5)+200)/24;t(4,5)=(2*t(4,4)+t(3,5)+t(5,5)+200)/24;t(5,5)=(t(5,4)+t(4,5)+100)/12;t'endcontour(t',50);ans =100.0000 200.0000 200.0000 200.0000 200.0000 100.0000 136.8905 146.9674 149.8587 150.7444 100.0000 102.3012 103.2880 103.8632 104.3496 100.0000 70.6264 61.9465 59.8018 59.6008 100.0000 19.0033 14.8903 14.5393 14.5117【Jacobi迭代程序】函数文件为:function [y,n]=jacobi(A,b,x0,eps)D=diag(diag(A));L=-tril(A,-1);U=-triu(A,1);B=D\(L+U);f=D\b;y=B*x0+f;n=1;while norm(y-x0)>=epsx0=y;y=B*x0+f;n=n+1;end命令文件为:A=[4,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0;-1,4,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0; 0,-1,4,-1,0,0,-1,0,0,0,0,0,0,0,0,0; 0,0,-2,4,0,0,0,-1,0,0,0,0,0,0,0,0;-1,0,0,0,4,-1,0,0,-1,0,0,0,0,0,0,0; 0,-1,0,0,-1,4,-1,0,0,-1,0,0,0,0,0,0; 0,0,-1,0,0,-1,4,-1,0,0,-1,0,0,0,0,0;0,0,0,-1,0,0,-2,4,0,0,0,-1,0,0,0,0;0,0,0,0,-1,0,-1,0,4,0,0,0,-1,0,0,0;0,0,0,0,0,-1,0,0,-1,4,-1,0,0,-1,0,0;0,0,0,0,0,0,-1,0,0,-1,4,-1,0,0,-1,0;0,0,0,0,0,0,0,-1,0,0,-2,4,0,0,0,-1;0,0,0,0,0,0,0,0,-2,0,0,0,24,-1,0,0;0,0,0,0,0,0,0,0,0,-2,0,0,-1,24,-1,0;0,0,0,0,0,0,0,0,0,0,-2,0,0,-1,24,-1;0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,12];b=[300,200,200,200,100,0,0,0,100,0,0,0,300,200,200,100]'; [x,n]=jacobi(A,b,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]',1.0e-6); xx=1:1:4;yy=xx;[X,Y]=meshgrid(xx,yy);Z=reshape(x,4,4);Z=Z'contour(X,Y,Z,30)n =97Z =139.6088 150.3312 153.0517 153.5639108.1040 108.6641 108.3119 108.152384.1429 67.9096 63.3793 62.421420.1557 15.4521 14.8744 14.7746三、不同初值时的收敛快慢1、[方法1]在Gauss 迭代和Jacobi 迭代中,本程序应用的收敛条件均为norm(y-x0)>=eps ,即使前后所求误差达到e 的-6次方时,跳出循环得出结果。
matlab课后习题答案第四章
第4章数值运算习题 4 及解答1 根据题给的模拟实际测量数据的一组t和)(t y试用数值差分diff或数值梯度gradient指令计算)(t y',然后把)(t y和)(t y'曲线绘制在同一张图上,观察数值求导的后果。
(模拟数据从prob_data401.mat 获得)〖目的〗●强调:要非常慎用数值导数计算。
●练习mat数据文件中数据的获取。
●实验数据求导的后果●把两条曲线绘制在同一图上的一种方法。
〖解答〗(1)从数据文件获得数据的指令假如prob_data401.mat文件在当前目录或搜索路径上clearload prob_data401.mat(2)用diff求导的指令dt=t(2)-t(1);yc=diff(y)/dt; %注意yc的长度将比y短1plot(t,y,'b',t(2:end),yc,'r')grid on(3)用gradent 求导的指令(图形与上相似)dt=t(2)-t(1);yc=gradient(y)/dt;plot(t,y,'b',t,yc,'r')grid on〖说明〗● 不到万不得已,不要进行数值求导。
● 假若一定要计算数值导数,自变量增量dt 要取得比原有数据相对误差高1、2个量级以上。
● 求导会使数据中原有的噪声放大。
2 采用数值计算方法,画出dt tt x y x ⎰=0sin )(在]10 ,0[区间曲线,并计算)5.4(y 。
〖提示〗● 指定区间内的积分函数可用cumtrapz 指令给出。
● )5.4(y 在计算要求不太高的地方可用find 指令算得。
〖目的〗● 指定区间内的积分函数的数值计算法和cumtrapz 指令。
● find 指令的应用。
〖解答〗dt=1e-4;t=0:dt:10;t=t+(t==0)*eps;f=sin(t)./t;s=cumtrapz(f)*dt;plot(t,s,'LineWidth',3)ii=find(t==4.5);s45=s(ii)s45 =1.65413 求函数x ex f 3sin )(=的数值积分⎰=π0 )(dx x f s ,并请采用符号计算尝试复算。
精讲多练matlab上机练习题-第四章
精讲多练matlab上机练习题——第四章1.已知向量[1,2,4,0,5,10,11,21,3,1]请绘图表示解:>> t=1:10;>> f=[1,2,4,0,5,10,11,21,3,1];>> plot(t,f,'r*:')2.绘制单位圆。
提示:使用axis('square')命令保证圆形的纵横坐标刻度比例相同。
解:>> fplot('[-sqrt(1-x^2),sqrt(1-x^2)]',[-1,1],'r-'),axis('square')3.绘制伏安特性曲线:U=RI,假设R分别为1,5,10和20解:>> U1=I;U2=5*I;U3=10*I;U4=20*I;>> subplot(2,2,1),plot(I,U1)>> subplot(2,2,2),plot(I,U2)>> subplot(2,2,3),plot(I,U3)>> subplot(2,2,4),plot(I,U4)>> figure>> plot(I,U1,'r',I,U2,'y',I,U3,'k:',I,U4,'b:')4.某一地区一年中的每月的平均气温和平均降雨量如下表所示,请画出其图形,要求标注出坐标轴、数据点位置、数据点大小。
解:>> t=1:12t =1 2 3 4 5 6 7 8 9 10 11 12>> T=[0.2,0.3,8.7,18.5,24.6,32.1,36.8,37.1,28.3,17.8,6.4,-3.2]>> R=[4.6,3.6,2.1,2.9,3.0,2.7,2.2,2.5,4.3,3.4,2.1,3.7]>> plot(t,T,'r*-',t,R,'o:')>> title('time-Temperature-Rainfall')>> xlabel('time')>> ylabel('Temperature&&Rainfall')>> text(4,5,'降雨量')>> text(6,23,'温度')5.已知矩阵1,1,1,1,1,1,11,2,2,2,2,2,11,2,2,2,2,2,11,2,2,2,2,2,11,1,1,1,1,1,1⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦,请绘图表示解:>> A=[1,1,1,1,1,1,1;1,2,2,2,2,2,1;1,2,2,2,2,2,1;1,2,2,2,2,2,1;1,1,1,1,1,1,1]A =1 1 1 1 1 1 11 2 2 2 2 2 11 2 2 2 2 2 11 2 2 2 2 2 11 1 1 1 1 1 1 >> plot(A,'r')6.请绘制22z x y=+的三维立体图形解:>> x=-2*pi:0.5:2*pi; y=x;[X,Y]=meshgrid(x,y);Z=X^2+Y^2;surf(X,Y,Z)7.绘制由函数2221 4916x yz++=形成的立体图,并通过改变观察点来获得该图形在各个坐标平面上的平面投影。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
matlab 第四章作业
4.2编写函数文件求半径为r 的圆的面积和周长
步骤:1.首先建立函数文件,命名为Abb.m 程序如下:
function [s,c]=Abb(r)
s=pi*r*r;%求圆的面积
c=2*pi*r;%求圆的周长
end
在工作空间中调用Abb 求圆的面积和周长(将半径设为3)
程序结果如下
[s c]=Abb(3)
s =
28.2743
c =
18.8496
4.3已知y=2
2221312111n ++++ 。
当n=100时,求y 的值 步骤:建立函数,命名为Cbb.m 求平方倒数的和。
其程序如下
function F=Cbb(n)
F=0;k=1;
while k<=n
F=F+(1/k)/k;
k=k+1;
end
end
在工作空间中求y 值
y= Cbb(100)
y=
1.6350
4.5编制程序,计算1+2+ +n<2000时的最大n 值
步骤:建立函数文件Dbb.m,求累加和小于n 的最大数,使n=2000程序如下 function k=Dbb(n)
k=1;
f=0;
while f<n
f=f+k;
k=k+1;
end
k=k-2;
end
将2000作为输入值,求n.在工作空间中输入如下:
Dbb(2000)
ans =
62
4.6分别用for 和while 循环结构编写程序,求出K=∑=6302
i i
分别用for 和while 循环结构编写命令文件Ebb,Fbb.并在工作空间中求K Ebb 程序如下
f=1;
J(1)=1;
for i=1:63
J(i+1)=J(i)*2;
f=f+J(i+1);
End
求K 程序:
Ebb.m
f
f =
1.8447e+019
Fbb 程序如下
I=1;
H=1;
i=1;
while i<=63
H=H*2;
I=I+H;
i=i+1;
end
在工作空间中求K
Fbb.m
I
I =
1.8447e+019。