北航 MATLAB教程答案(张志涌)

合集下载

北航Matlab教程(R2011a)习题2解答 2

北航Matlab教程(R2011a)习题2解答 2

习题21. 说出以下四条指令产生的结果各属于哪种数据类型,是“双精度”对象,还是“符号”对象?3/7+0.1, sym(3/7+0.1), vpa(sym(3/7+0.1)) a=class(3/7+0.1)%双精度 b=class(sym(3/7+0.1))%符号c=class(vpa(sym(3/7+0.1),4))%符号 d=class(vpa(sym(3/7+0.1)))%符号2. 在不加专门指定的情况下,以下符号表达式中的哪一个变量被认为是独立自由变量。

sym('sin(w*t)') , sym('a*exp(-X)' ) , sym('z*exp(j*th)') a=sym('sin(w*t)'); symvar(a)b=sym('a*exp(-X)'); symvar(b)c=sym('z*exp(j*th)'); symvar(c)3. 求以下两个方程的解: (提示:关于符号变量的假设要注意)(1)试写出求三阶方程05.443=-x 正实根的程序。

注意:只要正实根,不要出现其他根。

x=sym('x','positive'); f=x^3-44.5; x=solve(f,x)(2)试求二阶方程022=+-a ax x 在0>a 时的根。

a=sym('a','positive'); syms x;f=x^2-a*x+a^a; x=solve(f,x)4. 观察一个数(在此用@记述)在以下四条不同指令作用下的异同:a = @ ,b = sym( @ ),c = sym( @ ,'d ' ), d = sym( '@ ' )在此,@ 分别代表具体数值 7/3 , pi/3 , pi*3^(1/3) ;而异同通过vpa(abs(a-d)) , vpa(abs(b-d)) , vpa(abs(c-d))等来观察。

北航Matlab教程(R2011a)习题6解答

北航Matlab教程(R2011a)习题6解答

习题61. 请分别写出用for 和while 循环语句计算10000002100000002.02.02.012.0+++==∑=Λi i K 的程序。

此外,还请写出避免循环的数值、符号计算程序。

(提示:sum 和“指数采用数组”配合; tic, toc 可用以记录计算所花的时间。

)%for 语句计算tica=0;for j=0:1000000;a=a+0.2^j;endat1=toc%while 语句计算ticb=0;j=0;while j<=1000000b=b+0.2^j;j=j+1;endbt2=toc%数值计算ticd=zeros(1,1000000);k=0:1000000;d=0.2.^k;sum(d)t3=toc%符号法ticsyms jd=vpa(symsum(0.2^j,j,0,1000000))%算1000000用的时间比较长,用inf 比较快 t4=toc2. 编写一个函数M 文件,它的功能:没有输入量时,画出单位圆(见图p6-1);输入量是大于2的自然数N 时,绘制正N 边形,图名应反映显示多边形的真实边数(见图p6-2);输入量是“非自然数”时,给出“出错提示”。

此外,函数M 文件应有H1行、帮助说明和程序编写人姓名。

(提示:nargin, error, int2str)p6-1图function [] = zuoye6_2(N)%画正N边形%zuoye6_2(),画出单位圆%zuoye6_2(N),N为大于2的正整数,画出正N边形,否则会出错%我编写于2012-04-03switch nargincase 0N=100;R=1;t=0:2*pi/N:2*pi;x=R*cos(t);y=R*sin(t);plot(x,y,'-b','linewidth',3);title('Circle')axis equalaxis offshgcase 1if N~=round(N)|N==2|N<=0error('请输入大于2的整数')elseif N==round(N)R=1;t=0:2*pi/N:2*pi;x=R*cos(t);y=R*sin(t);plot(x,y,'-b','linewidth',3);title(['Poly gon nit',int2str(N), ' edges'])axis equalaxis offshgendend3.在matlab的\toolbox\matlab\elmat\private文件夹上有一个“烟圈矩阵”发生函数smoke.m。

MATLAB教程2012a第3章习题解答张志涌(可编辑修改word版)

MATLAB教程2012a第3章习题解答张志涌(可编辑修改word版)
F2=b^A
F2a=b.^A F2 =
0.99095 -0.66337 F2a =
0.5 0.125
%标量底矩阵指数的求幂 %标量底数组指数的求幂
-0.44225 0.32759
0.25 0.0625
(3)
F3a=A.^C
F3a =
1
4
3
2
%数组底数组指数的求幂
F3=A^C
%矩阵底矩阵指数的求幂运算不存在
〖解答〗
A=magic(3), B=[1,2,1;3,4,3;5,6,7]%创建阵列
A=
8
1
6
3
5
7
4
9
2
B=
1
2
1
3
4
3
5
6
7
(1)
C1amb=A*B
C1bma=B*A C1amb =
41 56 53 53 68 67 41 56 45 C1bma = 18 20 22 48 50 52 86 98 86
后根据计算结果回答以下问题:
(提示:根据对计算结果的目测回答问题)
〖目的〗 数组运算和矩阵运算的不同。 如何判断两个双精度数组是否相等。 norm 指令的应用。
〖解答〗
A=[1, 2; 3, 4],b=0.5,C=[4, 2; 1, 0.5]
A=
1
2
3
4
b=
0.5
C=
4
2
1
0.5
%创建数据
(1)
第 3 章 数值阵列及其运算
习题 3 及解答
1 在 MATLAB 中,先运行指令 A=magic(3), B=[1,2,1;3,4,3;5,6,7]

北航Matlab教程(R2011a)习题7解答

北航Matlab教程(R2011a)习题7解答

习题7
1. 利用SIMULINK 求解dx e t I t
x ⎰-= 0 2)(在区间]1 ,0[∈t 积分,并求出积分值)1(I 。

(提
示:时间变量由Clock 产生;注意使用 Product, Math function, Integrator, Display, Scope 等库模块;计算结果可与例4.1-5对照。


2. 利用SIMULINK 求解微分方程
0)1(222=+--x dt dx x dt x d μ,方程的初始条件为0)0(,1)0(==dt
dx x 。

在增益模块“Gain ”取值分别为2和100的情况下(即数学表达式中100 ,2=μ)运行,给出运行结果。

(提示:注意使用Constant, Product, Add, Gain, Integrator, Scope 等库模块;注意初始状态设置;针对不同μ,采用不同解算器,并设置不同仿真终止时间;运算结果可与例4.1-9对照。


3.已知某系统的框图如图p7-1所示,求该系统的传递函数。

(提示:参照例7.1-2)
图p7-1
[A,B,C,D]=linmod2('zuoye0703'); %从Simulink模型得到系统的状态方程
STF=tf(minreal(ss(A,B,C,D))) %求状态方程最小实现的传递函数LTI对象。

张志涌matlab第一讲基础准备入门2015

张志涌matlab第一讲基础准备入门2015

主要参考书 《Matlab教程—R2011a》张志涌,杨祖樱等编著,北 航出版 2010

《精通MATLAB 6.5》张志涌 等编著,北航出版,2003 年
授课宗旨
• 讲授MATLAB的通用功能。
• 寓教于例,由浅入深。
MATLAB课程介绍
目标(in MATLAB):

掌握数学(矩阵)运算 掌握简单编程 掌握简单的数据处理及基本图形绘制

使用plot函数可随时将计算结果可视

1、基础准备及入门
本章有三个目的: 1、 讲述Matlab正常运行所必备的基础条件;
2、简明地介绍Matlab及其操作桌面Desktop 的基本使用方法。
3、介绍Matlab的帮助系统。
1.1 MATLAB的桌面环境及入门知识

Matlab的安装和工具包的选择

Cleve Moler


将MATLAB商品化的不是Cleve Moler,而是一个名叫Jack Little
的人。当免费的MATLAB软件到Stanford大学,Jack Little正在该 校主修控制,便接触到了当时MATLAB,直觉告诉他,这是一个 具有巨大发展潜力的软件。因此他在毕业沒多久,就开始用C语 言重新编写了MATLAB的核心。在Moler的协助下,于1984年成 立MathWorks公司,首次推出MATLAB商用版。在其商用版推出 的初期,MATLAB就以其优秀的品质(高效的数据计算能力和开 放的体系结构)占据了大部分数学计算软件的市场,原来应用于 控制领域里的一些封闭式数学计算软件包(如英国的UMIST、瑞 Jack Little
本课程的目的( Objectives of This Course )

北航Matlab教程(R2011a)习题4解答

北航Matlab教程(R2011a)习题4解答

习题41. 根据题给的模拟实际测量数据的一组t 和 )(t y 试用数值差分diff 或数值梯度gradient 指令计算)(t y ',然后把)(t y 和)(t y '曲线绘制在同一张图上,观察数值求导的后果。

(模拟数据从prob_data401.mat 获得)(提示:自变量t 采样间距太小。

)load prob_401;N=20;diff_y1=(diff(y(1:N:end)))./diff(t(1:N:end));gradient_y1=(gradient(y(1:N:end)))./gradient(t(1:N:end));t1=t(1:N:end);length(t1)plot(t,y,t1(1:end-1),diff_y1)plot(t,y,t1,gradient_y1)2. 采用数值计算方法,画出dt tt x y x⎰=0sin )(在]10 ,0[区间曲线,并计算)5.4(y 。

(提示:cumtrapz 快捷,在精度要求不高处可用;quad 也可试。

巧用find 。

) d=0.5;tt=0:d:10;t=tt+(tt==0)*eps;y=sin(t)./t;s=d*trapz(y)ss=d*(cumtrapz(y))plot(t,y,t,ss,'r'),hold ony4_5=ss(find(t==4.5))yi=interp1(t,ss,4.5),plot(4.5,yi,'r+')3. 求函数x e x f 3sin )(=的数值积分⎰=π0 )(dx x f s ,并请采用符号计算尝试复算。

(提示:各种数值法均可试。

)d=pi/20;x=0:d:pi;fx=exp(sin(x).^3);s=d*trapz(fx)s1=quad('exp(sin(x).^3)',0,pi)s2=quadl('exp(sin(x).^3)',0,pi)s3=vpa(int('exp(sin(x)^3)',0,pi))s4=vpa(int(sym('exp(sin(x)^3)'),0,pi))4. 用quad 求取dx x e x sin 7.15⎰--ππ的数值积分,并保证积分的绝对精度为910-。

MATLAB教程_R2014a_答案_全_张志涌

MATLAB教程_R2014a_答案_全_张志涌

可以看到,除了 a4 为精确,其余均存在很小的误差。其中 a2 与 a3 的误差较小,小于 eps 精度,故可认为为精确的。
3 独立自由变量
a1=sym('sin(w*t)') ; a2=sym('a*exp(-X)' ); a3=sym('z*exp(j*th)'); symvar(a1,1) symvar(a2,1) symvar(a3,1) ans = w ans = a ans = z
13 序列卷积
syms a b n; syms k positive; xk=a.^k; hk=b.^k; kn=subs(xk,k,k-n)*subs(hk,k,n); yk=symsum(kn,n,0,k) yk = piecewise([a == b and b ~= 0, b^k*(k + 1)], [a ~= b or b == 0, (a*a^k - b*b^k)/(a - b)])
sinint(x) 2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -6 -4 -2 0 x 2 4 6
12 积分表达式
syms x; syms n positive; yn=int((sin(x)).^n,x,0,pi/2) yn3=subs(yn,n,1/3); vpa(yn3,32) yn = beta(1/2, n/2 + 1/2)/2 ans = 1.2935547796148952674767575125656
54072115771300376388410321549680270587533748496ans25916383035209734833563133680010964690086123554相同对于矩阵而言对位相乘无差异不相同点乘与矩阵乘法进行的不是同一种运算

MATLAB 课后部分答案

MATLAB 课后部分答案

P77 第2章1、>> x=2;>> y=power(x,3)+(x-0.98).^2./(x+1.35).^3-5*(x+1./x)>> x=4;>> y=power(x,3)+(x-0.98).^2./(x+1.35).^3-5*(x+1./x)7、>> mat=rand(4,5);>> m=1;>> for i=1:2for j=1:5if mat(i,j)>0.3b(m)=mat(i,j);m=m+1;endendend>> b8、>> V=inv(A)>> A=rand(5,5);10、>> A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 -8];B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7]; >> C=A*B??? Error using ==> mtimesInner matrix dimensions must agree.>> C=A.*BC =5 16 24 -26-18 -12 -15 72-2 -21 108 -5611、>> x=linspace(0,2*pi,125);>> y=cos((x).*(0.5+3*sin(x)./(1+x.^2)));>> plot(x,y)13、>> x=-2:0.1:2;y=-2:0.1:2;>> [X,Y]=meshgrid(x,y);>> Z=X.^2.*exp(-X.^2-Y.^2);>> mesh(Z)建立一个M函数文件mycos.m,程序如下:function y=mycos(x)clear allx=input('请输入x的值')y=1./((x-2).^2+0.1)+1./((x-3).^3+0.01)在命令窗口输入:mycosP123 第3章1、>> x=[446 714 950 1422 1634];y=[7.04 4.28 3.40 2.54 2.13];>> xi=500:500:1500;>> yi=interp1(x,y,xi,'linear')4、>> p=[3 4 7 2 9 12];>> roots(p)8、>> a=[2 4 9;4 2 4;9 4 18];>> [V,D]=eig(a) %V的列向量是相应的特征向量,对角阵D的对角元素为a的特征值10、>> p1=[-1 4 0];p2=[-1 -4 0];>> A=polyder(p1);B=polyder(p2);>> A1=roots(A);B1=roots(B);>> y=4*A1-4*B1-A1.^2-B1.^213、>> syms x y>> Ex=int(int(x.*12.*y.^2,y,0,x),x,0,1)>> Ey=int(int(y.*12.*y.^2,x,y,1),y,0,1)>> Exy=Ex.*Ey14、>> A=rand(4,4);>> [L,U]=lu(A)>> [Q,R]=qr(A)P183 第4章1、>> n=-2*pi:0.01:2*pi;>> N=12;x=cos(n*pi./6);>> X=fft(x,N)>> nx=((n>=0)&(n<=11)); hx=((n>=0)&(n<=5)); >> xn=0.8*nx;hn=hx;>> y=conv(xn,hn)4、>> n=0:11;h=0:5;>> nx=((n>=0)&(n<=11)); hx=((n>=0)&(n<=5)); >> xn=0.8*nx;hn=hx;>> M=length(xn);N=length(hn);>> L=pow2(nextpow2(M+N-1));>> Xk=fft(xn,L);Hk=fft(hn,L);>> Yk=Xk.*Hk;>> yn=ifft(Yk,L)5、>> num=[2 3 0];den=[1 0.4 1];>> [z,p,k]=tf2zp(num,den)6、>> num=[4 15.6 6 2.4 -6.4];den=[3 2.4 6.3 -11.4 6]; >> [z,p,k]=tf2zp(num,den)>> zplane(z,p)7、>> num=[18 0 0 0];den=[18 3 -4 -1];>> [r,p,k]=residuez(num,den)9、建立一个M函数文件,程序如下:clear allN=10;[z,p,k]=buttap(N);[A,B,C,D]=zp2ss(z,p,k);wc1=100;wc2=200;[At,Bt,Ct,Dt]=lp2bp(A,B,C,D,wc1,wc2);[num1,den1]=ss2tf(At,Bt,Ct,Dt);[num2,den2]=impinvar(num1,den1);dimpulse(num2,den2)10、建立一个M函数文件,程序如下:clear allwp=100*2*pi;ws=200*2*pi;Rp=2;Rs=15;Fs=500;[N,Wc]=buttord(wp,ws,Rp,Rs,'s'); %选择滤波器的最小阶数[z,p,k]=buttap(N);[B,A]=zp2tf(z,p,k);[num,den]=bilinear(B,A,Fs); %模拟滤波器的传递函数转换为数字滤波器的传递函数freqz(num,den)11、建立一个M函数文件,程序如下:clear allN=48;w=[0.35,0.65];B=fir1(N,w,'bandpass'); %返回一个N阶的带通滤波器freqz(B) %绘制滤波器的频率响应曲线12、建立一个M函数文件,程序如下:clear allN=37;wc=0.3*pi;B=fir1(N,wc);freqz(B) %绘制滤波器的频率响应曲线13、建立一个M函数文件,程序如下:clear allN=55;F=[0:1/55:1];A=[ones(1,28),zeros(1,N-27)];B=fir2(N,F,A);freqz(B) %绘制滤波器的频率响应曲线15、建立一个M函数文件,程序如下:clear allwc=0.4*pi/(2*pi);N=12;[B,A]=butter(N,wc);%设计N阶截止频率为wc的Butterworth低通数字滤波器的传递函数模型m=dimpulse(B,A,101);stem(m,'.')P277 第6章2、建立一个M函数文件,程序如下:function [h,l]=huffmancode(P)if length(find(P<0))~=0,error('Not a prod.vector')endif abs(sum(P)-1)>10e-10error('Not a prod.vector')endn=length(P);for i=1:n-1for j=i:nif P(i)<=P(j)p=P(i);P(i)=P(j);P(j)=p;endendenddisp('概率分布'),PQ=P;m=zeros(n-1,n);for i=1:n-1[Q,l]=sort(Q);m(i,:)=[l(1:n-i+1),zeros(1,i-1)];Q=[Q(1)+Q(2),Q(3:n),1];endfor i=1:nc(i,:)=blanks(n*n);endc(n-1,n)='0';c(n-1,2*n)='1';for i=2:n-1c(n-i,1:n-1)=c(n-i+1,n*(find(m(n-i+1,:)==1))-(n-2):n*(find(m(n-i+1,:)==1)));c(n-1,n)='0';c(n-i,n+1:2*n-1)=c(n-i,1:n-1);c(n-i,2*n)='1';for j=1:i-1c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,n*(find(m(n-i+1,:)==j+1)-1)+1:n*find(m(n-i+1,:)==j+1));endendfor i=1:nh(i,1:n)=c(1,n*(find(m(1,:)==i)-1)+1:find(m(1,:)==i)*n);ll(i)=length(find(abs(h(i,:))~=32));endl=sum(P.*ll); %计算平均码长在命令窗口中输入:>> P=[0.20 0.15 0.13 0.12 0.1 0.09 0.08 0.07 0.06];>> [h,l]=huffmancode(P)3、建立一个M函数文件,程序如下:function[sqnr,a_quan,code]=u_pcm(a,n)% U_PCM 一个序列均匀的PCM编码.% n=量化级数的数目(偶数).% sqnr=输入信号量化噪声比(偶数)。

北航Matlab教程(R2011a)习题3解答

北航Matlab教程(R2011a)习题3解答

习题31. 要求在闭区间]2,0[π上产生具有10个等距采样点的一维数组。

试用两种不同的指令实现。

(提示:冒号生成法,定点生成法)x=0:2*pi/9:2*piy=linspace(0,2*pi,10)2. 由指令rng('default'),A=rand(3,5)生成二维数组A ,试求该数组中所有大于0.5的元素的位置,分别求出它们的“全下标”和“单下标”。

(提示:find 和sub2ind ) rand('twister',0)A=rand(3,5)B=(A>0.5)si=find(B)[r,c]=find(B)3. 采用默认全局随机流,写出产生长度为1000的“等概率双位(即取-1,+1)取值的随机码”程序指令,并给出-1码的数目。

(提示:rand, randn, randsrc 等都可以用来产生所需码。

注意:“关系符==”、“求和指令sum ”的应用。

)rand('twister',123)M=randsrc(1,1000,[1,-1],1)N=sum(M==-1)4. 已知矩阵⎥⎦⎤⎢⎣⎡=4321A ,运行指令B1=A.^(0.5), B2=A^(0.5), 可以观察到不同运算方法所得结果不同。

(1)请分别写出根据B1, B2恢复原矩阵A 的程序。

(2)用指令检验所得的两个恢复矩阵是否相等。

(提示:数组乘、矩阵乘。

注意:范数指令norm 用途。

) A=[1,2;3,4]B1=A.^(0.5)B2=A^(0.5)A1=B1.^2A2=B2^25. 在时间区间 [0,10]中,绘制t e y t 2cos 15.0--=曲线。

要求分别采取“标量循环运算法”和“数组运算法”编写两段程序绘图。

(注意:体验数组运算的简捷。

)t=linspace(0,10,20);for k=1:20y(k)=1-exp(-0.5*t(k))*cos(2*t(k));endplot(t,y,':r'),axis([-1,11,-1,1.5])xlabel('t'),ylabel('y'),title('标量循环运算法')cleart=linspace(0,10,20);y=1-exp(-0.5*t).*cos(2*t);plot(t,y,':r'),axis([-1,11,-1,1.5])xlabel('t'),ylabel('y'),title('数组运算法')6.先运行clear, format long, rng('default'),A=rand(3,3),然后根据A写出两个矩阵:一个对角阵B,其相应元素由A的对角元素构成;另一个矩阵C,其对角元素全为0,而其余元素与对应的A阵元素相同。

MATLAB程序设计教程(第二版)课后答案3-8

MATLAB程序设计教程(第二版)课后答案3-8

MA TLAB 第二版课后答案unit2-8第二章1 求下列表达式的值。

(1)w=sqrt(2)*(1+0.34245*10^(-6)) (2) a=3.5; b=5; c=-9.8;x=(2*pi*a+(b+c)/(pi+a*b*c)-exp(2))/tan(b+c)+a (3)a=3.32; b=-7.9;y=2*pi*a^(2)*[(1-pi/4)*b-(0.8333-pi/4)*a](4)t=[2,1-3*i;5,-0.65];z=1/2*exp(2*t)*log(t+sqrt(1+t^(2)))2 求下列表达式A=[-1,5,-4;0,7,8;3,61,7]; B=[8,3,-1;2,5,3;-3,2,0]; (1)A+6*B A^2-B+eye (2)A*B A.*B B.*A (3)A/B B\A(4)[A,B] [A([1,3],:);B^2]3 根据已知,完成下列操作 (1)A=[23,10,-0.778,0;41,-45,65,5;32,5,0,32;6,-9.54,54,3.14]; K=find(A>10&A<25); A(K)(2)A=[23,10,-0.778,0;41,-45,65,5;32,5,0,32;6,-9.54,54,3.14]; B=A(1:3,:)C=A(:,1:2)D=A(2:4,3:4) E=B*C(3)E<D E&D E|D ~E|~Dunit3 实验指导1、 n=input('请输入一个三位数:'); a=fix(n/100);b=fix((n-a*100)/10); c=n-a*100-b*10; d=c*100+b*10+a 2(1)n=input('请输入成绩'); switch ncase num2cell(90:100) p='A';case num2cell(80:89) p='B';case num2cell(70:79) p='C';case num2cell(60:69) p='D'; otherwise p='E'; endprice=p(2)n=input('请输入成绩'); if n>=90&n<=100 p='A';elseif n>=80&n<=89 p='B';elseif n>=70&n<=79 p='C';elseif n>=60&n<=69 p='D'; elsep='E'; end price=p (3)try n; catchprice='erroe'end3n=[1,5,56,4,3,476,45,6,3,76,45,6,4,3,6,4,23,76 ,908,6];a=n(1);b=n(1);for m=2:20if n(m)>aa=n(m);elseif n(m)<bb=n(m);endendmax=amin=b法2n=[1,5,56,4,3,476,45,6,3,76,45,6,4,3,6,4,23,76 ,908,6];min=min(n)max=max(n)4b=[-3.0:0.1:3.0];for n=1:61a=b(n);y(n)=(exp(0.3*a)-exp(-0.3*a))/2*sin(a+0.3)+l og((0.3+a)/2);endy5y1=0;y2=1;n=input('请输入n的值:');for i=1:ny1=y1+1/i^2;y2=y2*((4*i*i)/((2*i-1)*(2*i+1)));endy1y27(1)f=[];for n=1:40f(n)=n+10*log(n^2+5);endy=f(40)/(f(30)+f(20))(2)f=[];a=0;for n=1:40f(n)=a+n*(n+1);a=f(n);endy=f(40)/(f(30)+f(20))8y=0;m=input('输入m的值:');n=input('输入n值:');for i=1:ny=y+i^m;endy********************************* ***************************function s=shi8_1(n,m)s=0;for i=1:ns=s+i^m;end********************************* ***************************shi8_1(100,1)+shi8_1(50,2)+shi8_1(10,1 /2)unit4实验指导1(1)x=-10:0.05:10;y=x-x.^3./6;plot(x,y)(2)x=-10:0.5:10;ezplot('x^2+2*y^2-64',[-8,8]);grid on;2t=-pi:pi/10:pi;y=1./(1+exp(-t));subplot(2,2,1);bar(t,y);title('条形图(t,y)');axis([-pi,pi,0,1]);subplot(2,2,2);stairs(t,y,'b');title('阶梯图(t,y)');axis([-pi,pi,0,1]);subplot(2,2,3);stem(t,y,'k');title('杆图(t,y)');axis([-pi,pi,0,1]);subplot(2,2,4);loglog(t,y,'y');title('对数坐标图(t,y)');3(1)t=0:pi/50:2*pi;r=5.*cos(t)+4;polar(t,r);title('\rho=5*cos\theta+4'); (2)t=-pi/3:pi/50:pi/3;r=5.*((sin(t)).^2)./cos(t);polar(t,r);unit5实验指导1A=randn(10,5)x=mean(A)y=std(A)Max=max(max(A))Min=min(min(A))Sumhang=sum(A,2)SumA=sum(Sumhang)B=sort(A);C=sort(B,2,'descend');C2(1)a=0:15:90;b=a./180.*pi;s=sin(b)c=0:15:75;d=c./180.*pi;t=tan(d)e=input('请输入想计算的值:'); S=sin(e/180*pi)T=tan(e/180*pi)S1=interp1(a,s,e,'spline')T1=interp1(c,t,e,'spline')P1=polyfit(a,s,5);P2=polyfit(c,t,5); S2=polyval(P1,e)T2=polyval(P2,e)(2)n=[1,9,16,25,36,49,64,81,100];N=sqrt(n);x=input('ji suan zhi : ');interp1(n,N,x,'cubic')3N=64;T=5;t=linspace(0,T,N);h=exp(-t);dt=t(2)-t(1);f=1/dt;X=fft(t);F=X(1:N/2+1);f=f*(0:N/2)/N;plot(f,abs(F),'-*')4P=[2,-3,0,5,13];Q=[1,5,8];p=polyder(P)q=polyder(P,Q)[a,b]=polyder(P,Q)5P1=[1,2,4,0,5];P2=[0,1,2];P3=[1,2,3];P=P1+conv(P2,P3)X=roots(P)A=[-1,1.2,-1.4;0.75,2,3.5;0,5,2.5];p=polyval(P,A)unit6实验指导1A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6]; p=[0.95,0.67,0.52]';x=A\pA=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6]; p=[0.95,0.67,0.53]';x=A\pcond(A)2(1)x1=fzero(@funx1,-1)function fx=funx1(x)fx=x^41+x^3+1;(2)x2=fzero(@funx2,0.5)function fx=funx2(x)fx=x-sin(x)/x;(3)options=optimset('Display','off'); x=fsolve(@fun3,[1,1,1]',options)q=fun3(x)function q=fun3(p)x=p(1);y=p(2);z=p(3);q(1)=sin(x)+y^2+log(z)-7;q(2)=3*x+2^y-z^3+1;q(3)=x+y+z-5;3(1)t0=0;tf=5;y0=1;[t,y]=ode23(@fun4,[t0,tf],y0); t'y'function yp=fun4(t,y)yp=-(1.2+sin(10*t))*y;(2)t0=0;tf=5;y0=1;[t,y]=ode23(@fun5,[t0,tf],y0); t'y'function yp=fun5(t,y)yp=cos(t)-y/(1+t^2);4x=fminbnd(@mymin,0,2);-mymin(x)function fx=mymin(x)fx=-(1+x.^2)/(1+x.^4);5options=optimset('Display','off');[x,fval]=fmincon(@fun6,[0,0,0],[],[],a,b,l b,ub)-fvalfunction f=fun6(x)f=-(sqrt(x(1))+(400-x(1))*1.1+(sqrt(x(2)) +(400-x(1))*1.1-x(2))*1.1+sqrt(3)+(((400-x(1 ))*1.1-x(2))*1.1-x(3))*1.1+sqrt(x(x4)));unit7实验指导1(1)format longfx=inline('sin(x)./x');[I,n]=quadl(fx,0,2,1e-10)(2)format longfx=inline('1./((x-0.3).^2+0.01)-1./((x-0.9) .^2+0.04)-6');[I,n]=quad(fx,0,1,1e-10)2(1)global ki;ki=0;I=dblquad(@fxy,0,1,0,1)ki(2)f=inline('abs(cos(x+y))','x','y');I=dblquad(f,0,pi,0,pi)3X=0.3:0.2:1.5;F=[0.3895,0.6598,0.9147,1.1611,1.3971, 1.6212,1.8325];trapz(X,F)4p=0:pi/5:2*pi;for n=1:3nDX=diff(sin(p),n)end5f=inline('sin(x)./(x+cos(2.*x))');g=inline('(cos(x).*(x+cos(2*x))-sin(x).*( 1-2.*sin(2*x)))/(x+cos(2.*x)).^2');x=-pi:0.01:pi;p=polyfit(x,f(x),5);dp=polyder(p);dpx=polyval(dp,x); %求dp在假设点的函数值dx=diff(f([x,3.01]))/0.01; %直接对f(x)求数值导数gx=g(x);%求函数f的导函数g在假设点的导数plot(x,dpx,x,dx,'.',x,gx,'-'); %作图unit8实验指导1syms x y;s=x^4-y^4;factor(s)factor(5135)2syms x;f=(x-2)/(x^2-4);limit(f,x,2)sym x;f=(sqrt(pi)-sqrt(acos(x)))/sqrt(x+1);limit(f,x,-1,'right')3sym x;f=sin(1/x);diff(f,'x')diff(f,'x',2sym x;f=(1-cos(2*x))/x;diff(f,'x')diff(f,'x',2)4sym x;f=sqrt(exp(x)+1);int(f,'x')syms x y;f=x/(x+y);int(f,'y')sym x;f=exp(x)*(1+exp(x))^2;int(f,'x',0,log(2))sym x;f=x*log(x);int(f,'x',1,exp(1))5sym x;s=symsum((-1)^(x+1)/x,1,Inf)sym y;z=symsum(y^(2*y-1)/(2*y-1),1,Inf)6sym x;f1=(exp(x)+exp(-x))/2;f2=sqrt(x^3-2*x+1);taylor(f1,x,5,0)taylor(f2,x,6,0)7syms x y a;x=solve('x^3+a*x+1=0','x')x=solve('sin(x)+2*cos(x)-sqrt(x)=0','x')[xy]=solve('log(x/y)=9','exp(x+y)=3','x','y') 8syms n;[x,y]=dsolve('x*(D2y)+(1-n)*(Dy)+y=0',' y(0)=0','Dy(0)=0','x')。

matlab课后习题答案

matlab课后习题答案

第2章 MATLAB 矩阵运算基础2.1 在MA TLAB 中如何建立矩阵⎥⎦⎤⎢⎣⎡194375,并将其赋予变量a ? >> a=[5 7 3;4 9 1]2.5 计算矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡897473535与⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡638976242之和。

>> a=[5 3 5;3 7 4;7 9 8];>> b=[2 4 2;6 7 9;8 3 6]; >> a+b ans =7 7 7 9 14 13 15 12 142.6 求⎥⎦⎤⎢⎣⎡+-+-+-+-++=i 44i 93i 49i 67i 23i 57i 41i 72i 53i 84x 的共轭转置。

>> x=[4+8i 3+5i 2-7i 1+4i 7-5i;3+2i 7-6i 9+4i 3-9i 4+4i];>> x’ ans =4.0000 - 8.0000i 3.0000 - 2.0000i 3.0000 -5.0000i 7.0000 +6.0000i 2.0000 +7.0000i 9.0000 - 4.0000i 1.0000 - 4.0000i 3.0000 + 9.0000i 7.0000 + 5.0000i 4.0000 - 4.0000i2.7 计算⎥⎦⎤⎢⎣⎡=572396a 与⎥⎦⎤⎢⎣⎡=864142b 的数组乘积。

>> a=[6 9 3;2 7 5];>> b=[2 4 1;4 6 8]; >> a.*b ans =12 36 3 8 42 402.9 对于B AX =,如果⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=753467294A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=282637B ,求解X 。

>> A=[4 9 2;7 6 4;3 5 7];>> B=[37 26 28]’;-0.5118 4.0427 1.33182.10 已知:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321a ,分别计算a 的数组平方和矩阵平方,并观察其结果。

matlab教程_R2010a张志勇-课后答案

matlab教程_R2010a张志勇-课后答案

第1章基础准备及入门习题 1 及解答1数字 1.5e2,1.5e3 中的哪个与 1500 相同吗?〖解答〗 1.5e32请指出如下 5 个变量名中,哪些是合法的? abcd-2 xyz_3 3chan a 变量ABCDefgh〖解答〗 2、5 是合法的。

3在 MATLAB 环境中,比 1 大的最小数是多少?〖解答〗 1+eps4设 a = -8 , 运行以下三条指令,问运行结果相同吗?为什么?w1=a^(2/3) w2=(a^2)^(1/3) w3=(a^(1/3))^2〖解答〗(1)不同。

具体如下w1=a^(2/3) w2=(a^2)^(1/3) w3=(a^(1/3))^2 w1 = -2.0000 + 3.4641i w2 = 4.0000 w3 = -2.0000 + 3.4641i %仅求出主根 %求出(-8)^2 的主根 %求出(-8)主根后再平方(2)复数的多方根的,下面是求取全部方根的两种方法:(A)根据复数方根定义a=-8;n=2;m=3; ma=abs(a);aa=angle(a); for k=1:m %m 决定循环次数sa(k)=(aa+2*pi*(k-1))*n/m; %计算各根的相角 endresult=(ma^(2/3)).*exp(j*sa) %计算各根 result = -2.0000 + 3.4641i 4.0000 - 0.0000i -2.0000 - 3.4641i(B)利用多项式 r a 0 求根3 2p=[1,0,0,-a^2]; r=roots(p) r = -2.0000 + 3.4641i -2.0000 - 3.4641i 4.0000 5指令 clear, clf, clc 各有什么用处?清除工作空间中所有的变量。

清除当前图形。

清除命令窗口中所有显示。

〖解答〗 clear clfclc6以下两种说法对吗?(1)“MATLAB 进行数值的表达精度与其指令窗中的数据显示精度相同。

MATLAB)课后实验答案[1]

MATLAB)课后实验答案[1]

M A T L A B)课后实验答案[1](总20页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--实验一 MATLAB 运算基础1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。

(1) 0122sin851z e=+(2) 21ln(2z x =,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e az a a --+=++=--(4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:: 解:4. 完成下列操作:(1) 求[100,999]之间能被21整除的数的个数。

(2) 建立一个字符串向量,删除其中的大写字母。

解:(1) 结果:(2). 建立一个字符串向量 例如:ch='ABC123d4e56Fg9';则要求结果是:实验二 MATLAB 矩阵分析与处理1. 设有分块矩阵33322322ER A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22E R RS A O S +⎡⎤=⎢⎥⎣⎦。

解: M 文件如下;5. 下面是一个线性方程组:1231112340.951110.673450.52111456x x x ⎡⎤⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦(1) 求方程的解。

(2) 将方程右边向量元素b 3改为再求解,并比较b 3的变化和解的相对变化。

(3) 计算系数矩阵A 的条件数并分析结论。

解: M 文件如下:实验三 选择结构程序设计1. 求分段函数的值。

2226035605231x x x x y x x x x x x x ⎧+-<≠-⎪=-+≤<≠≠⎨⎪--⎩且且及其他 用if 语句实现,分别输出x=,,,,,,时的y 值。

北航 MATLAB教程答案(张志涌)

北航 MATLAB教程答案(张志涌)

1 数字1.5e2,1.5e3 中的哪个与1500相同吗?1.5e32 请指出如下5个变量名中,哪些是合法的? abcd-2 xyz_3 3chan a 变量 ABCDefgh2、5是合法的。

3 在MATLAB 环境中,比1大的最小数是多少?1+eps4 设 a = -8 , 运行以下三条指令,问运行结果相同吗?为什么?w1=a^(2/3) w2=(a^2)^(1/3) w3=(a^(1/3))^2w1 = -2.0000 + 3.4641i ;w2 = 4.0000 ;w3 =-2.0000 + 3.4641i 5 指令clear, clf, clc 各有什么用处?clear 清除工作空间中所有的变量。

clf 清除当前图形。

clc 清除命令窗口中所有显示。

第二章1 说出以下四条指令产生的结果各属于哪种数据类型,是“双精度”对象,还是“符号”符号对象?3/7+0.1双; sym(3/7+0.1)符; sym('3/7+0.1') 符;; vpa(sym(3/7+0.1)) 符;2 在不加专门指定的情况下,以下符号表达式中的哪一个变量被认为是自由符号变量. sym('sin(w*t)'),sym('a*exp(-X)'),sym('z*exp(j*th)') symvar(sym('sin(w*t)'),1) w a z3 (1)试写出求三阶方程05.443=-x 正实根的程序。

注意:只要正实根,不要出现其他根。

(2)试求二阶方程022=+-a ax x 在0>a 时的根。

(1)reset(symengine)syms x positive solve(x^3-44.5) ans =(2^(2/3)*89^(1/3))/2(2)求五阶方程022=+-a ax x 的实根 syms a positive %注意:关于x 的假设没有去除 solve(x^2-a*x+a^2)Warning: Explicit solution could not be found. > In solve at 83 ans =[ empty sym ]syms x clear syms a positivesolve(x^2-a*x+a^2) ans =a/2 + (3^(1/2)*a*i)/2 a/2 - (3^(1/2)*a*i)/24 观察一个数(在此用@记述)在以下四条不同指令作用下的异同。

MATLAB教程2012a第6章习题解答-张志涌

MATLAB教程2012a第6章习题解答-张志涌

MATLAB教程2012a第6章习题解答-张志涌第6章 M 文件和句柄函数习题6及解答1 请分别写出用for 和while 循环语句计算1000000210000002.02.02.012.0+++==∑= i i K 的程序。

此外,还请写出避免循环的数值、符号计算程序。

〖解答〗(1)for 环tics1=0;for k=0:1e6s1=s1+0.2^(k);end;s1tocs1 =1.2500Elapsed time is 1.453482 seconds.(2)while 环tics2=1;k=1;while k<1e6+1 %注意:上限与for 环不同s2=s2+0.2^k;k=k+1;ends2tocs2 =1.2500Elapsed time is 2.716870 seconds.(3)数值求和指令tics3=sum(0.2.^(0:1e6))tocs3 =1.2500Elapsed time is 0.626723 seconds.(4)符号求和指令ticsyms k;s4=vpa(symsum(0.2^k,0,1e6))tocs4 =1.2500000000000000000000000000000Elapsed time is 4.029501 seconds.〖说明〗●使用数值求和指令和“数组运算”的计算速度最快。

●符号计算的精度最高,但速度慢。

●以上程序运行时间仅供参考。

具体时间与所用机器、那程序是否初次运行、在MATLAB指令窗还是在M-book中运行等因素有关。

2 编写一个函数M文件,它的功能:没有输入量时,画出单位圆(见图p6.2-1);输入量是大于2的自然数N时,绘制正N边形,图名应反映显示多边形的真实边数(见图p6.2-2);输入量是“非自然数”时,给出“出错提示”。

此外,函数M文件应有H1行、帮助说明和程序编写人姓名。

〖解答〗(1)函数M文件function prob_solve602(n)% prob_solve602(n) plot a circle or a polygon with n edges % prob_solve602 plot a circle% n 应为大于2的自然数% By ZZY, 2006-2-15if nargin==0t=0:pi/100:2*pi;x=exp(i*t);str='Circle';elseif (nargin~=0)&(n<=2)error('输入量应是大于2的自然数')end;if n-round(n)~=0 %检查非自然数error('输入量应是大于2的自然数')end;t=(0:n)/n*2*pi;x=exp(i*t);str=['Polygon with ', int2str(n),' edges']; % 合成字符串endplot(real(x),imag(x),'r','LineWidth',4)title(str)axis square image offshg(2)各典型运行情况prob_solve602prob_solve602(2)Error using ==> prob_solve602输入量应是大于2的自然数prob_solve602(7.3)Error using ==> prob_solve602输入量应是大于2的自然数3 用泛函指令fminbnd求|]y x--=在x=0附近的极小x|e)sin[cos(x值。

Matlab程序设计教程(第二版)课后参考答案

Matlab程序设计教程(第二版)课后参考答案

Matlab程序设计教程(第二版)课后参考答案第一章实验1.实验一第1题2.自己验证总结Matlab的主要优点3.实验一第2题4.实验一第3题5.网站思考练习1.启动见书P5 退出见书P62.Matlab主要功能见书P2 4种功能3.分行输入行末尾加续行符,即三个点“…”4.见书P115.直接在命令窗口输入fac第二章实验1.(1) w=sqrt(2)*(1+0.34245*10^(-6))w = 1.4142(2) a=3.5;b=5;c=-9.8;x=(2*pi*a+(b+c)/(pi+a*b*c)-exp(2))/(tan(b+c)+a)x =0.9829(3) a=3.32;b=-7.9;y=2*pi*a^2*((1-pi/4)*b-(0.8333-pi/4)*a)y = -128.4271(4) t=[2,1-3i;5,-0.65];z=0.5*exp(2*t)*log(t+sqrt(1+t.*t))z =1.0e+004 *0.0048 + 0.0002i 0.0048 - 0.0034i1.58992.0090 - 1.3580i2.实验二第1题3.实验二第2题4. H=hilb(5);P=pascal(5);Hh=det(H)Hh = 3.7493e-012Hp=det(P)Hp = 1Th=cond(H)Th = 4.7661e+005Tp=cond(P)Tp = 8.5175e+003条件数越趋近于1,矩阵的性能越好,所以帕斯卡矩阵性能更好。

5. A=[-29,6,18;20,5,12;-8,8,5]A =-29 6 1820 5 12-8 8 5[V,D]=eig(A)V =0.7130 0.2803 0.2733-0.6084 -0.7867 0.87250.3487 0.5501 0.4050D =-25.3169 0 00 -10.5182 00 0 16.8351V为A的特征向量,D为A的特征值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 数字1.5e2,1.5e3 中的哪个与1500相同吗?1.5e32 请指出如下5个变量名中,哪些是合法的? abcd-2 xyz_3 3chan a 变量 ABCDefgh2、5是合法的。

3 在MATLAB 环境中,比1大的最小数是多少?1+eps4 设 a = -8 , 运行以下三条指令,问运行结果相同吗?为什么?w1=a^(2/3) w2=(a^2)^(1/3) w3=(a^(1/3))^2w1 = -2.0000 + 3.4641i ;w2 = 4.0000 ;w3 =-2.0000 + 3.4641i 5 指令clear, clf, clc 各有什么用处?clear 清除工作空间中所有的变量。

clf 清除当前图形。

clc 清除命令窗口中所有显示。

第二章1 说出以下四条指令产生的结果各属于哪种数据类型,是“双精度”对象,还是“符号”符号对象?3/7+0.1双; sym(3/7+0.1)符; sym('3/7+0.1') 符;; vpa(sym(3/7+0.1)) 符;2 在不加专门指定的情况下,以下符号表达式中的哪一个变量被认为是自由符号变量. sym('sin(w*t)'),sym('a*exp(-X)'),sym('z*exp(j*th)') symvar(sym('sin(w*t)'),1) w a z3 (1)试写出求三阶方程05.443=-x 正实根的程序。

注意:只要正实根,不要出现其他根。

(2)试求二阶方程022=+-a ax x 在0>a 时的根。

(1)reset(symengine)syms x positive solve(x^3-44.5) ans =(2^(2/3)*89^(1/3))/2(2)求五阶方程022=+-a ax x 的实根 syms a positive %注意:关于x 的假设没有去除 solve(x^2-a*x+a^2)Warning: Explicit solution could not be found. > In solve at 83 ans =[ empty sym ]syms x clear syms a positivesolve(x^2-a*x+a^2) ans =a/2 + (3^(1/2)*a*i)/2 a/2 - (3^(1/2)*a*i)/24 观察一个数(在此用@记述)在以下四条不同指令作用下的异同。

a =@,b = sym( @ ),c = sym( @ ,'d ' ), d = sym( '@ ' )在此,@ 分别代表具体数值 7/3 , pi/3 , pi*3^(1/3) ;而异同通过vpa(abs(a-d)) , vpa(abs(b-d)) , vpa(abs(c-d))等来观察。

● 理解准确符号数值的创建法。

● 高精度误差的观察。

(1)x=7/3x=7/3;a=x,b=sym(x),c=sym(x,'d'),d=sym('7/3'),2.3333 b = 7/3 c =2.3333333333333334813630699500209 d = 7/3v1=vpa(abs(a-d)),v2=vpa(abs(b-d)),v3=vpa(abs(c-d)) v1 = 0.0 v2 = 0.0 v3 =0.00000000000000014802973661668756666666667788716(2)x=pi/3x=pi/3;a=x,b=sym(x),c=sym(x,'d'),d=sym('pi/3'), a =1.0472 b = pi/3 c =1.047197551196597631317786181171 d = pi/3v1=vpa(abs(a-d)),v2=vpa(abs(b-d)),v3=vpa(abs(c-d)) v1 = 0.0 v2 = 0.0 v3 =0.00000000000000011483642827992216762806615818554(3)x=pi*3^(1/3)x=pi*3^(1/3);a=x,b=sym(x),c=sym(x,'d'),d=sym('pi*3^(1/3)') a =4.5310 b =1275352044764433/281474976710656 c =4.5309606547207899041040946030989 d =pi*3^(1/3)v1=vpa(abs(a-d)),v2=vpa(abs(b-d)),v3=vpa(abs(c-d)) v1 =0.00000000000000026601114166290944374842393221638 v2 =0.00000000000000026601114166290944374842393221638 v3 =0.00000000000000026601114166290947267679917855155 求符号矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=333231232221131211a a a a a a a a a A 的行列式值和逆,所得结果应采用“子表达式置换”简洁化。

理解subexpr 指令。

A=sym('[a11 a12 a13;a21 a22 a23;a31 a32 a33]') DA=det(A) IA=inv(A);[IAs,d]=subexpr(IA,d)[ a11, a12, a13] [ a21, a22, a23] [ a31, a32, a33] DA =a11*a22*a33 - a11*a23*a32 - a12*a21*a33 + a12*a23*a31 + a13*a21*a32 - a13*a22*a31 IAs =[ d*(a22*a33 - a23*a32), -d*(a12*a33 - a13*a32), d*(a12*a23 - a13*a22)] [ -d*(a21*a33 - a23*a31), d*(a11*a33 - a13*a31), -d*(a11*a23 - a13*a21)] [ d*(a21*a32 - a22*a31), -d*(a11*a32 - a12*a31), d*(a11*a22 - a12*a21)] d =1/(a11*a22*a33 - a11*a23*a32 - a12*a21*a33 + a12*a23*a31 + a13*a21*a32 - a13*a22*a31)6 求∑∞=0k kx 的符号解,并进而用该符号解求∑∞=-0)31(k k,∑∞=0)1(k kπ,∑∞=03k k的准确值。

● symsum, subs 的应用。

●从实例中,感受指令所给出的关于∑∞=0k k x 符号解的含义。

syms x k f=x^(k);Z1=symsum(f,k,0,inf) Z1 =piecewise([1 <= x, Inf], [abs(x) < 1, -1/(x - 1)])subs(Z1,x,{sym('-1/3'),sym('1/pi'),sym('3')}) ans =[ 3/4, -1/(1/pi - 1), Inf]7 对于0>x ,求12011122+∞=∑⎪⎭⎫⎝⎛+-+k k x x k 。

(提示:理论结果为x ln )● 符号变量的限定性定义的作用。

syms k;x=sym('x','positive');f_k=2/(2*k+1)*((x-1)/(x+1))^(2*k+1);s=simple(symsum(f_k,k,0,inf)) %结果与理论值lnx 相符! s =piecewise([abs(x - 1) < x + 1, log(x)])〖注意〗● 解答中,条件abs(x - 1) < x + 1意味着:⏹ 约束一:x-1<x+1 ⇒ 2>0 ⇒ 此式总成立,说明“无约束”。

⏹ 情况二:-(x-1)<x+1 ⇒ x>0 ⇒ 此为“约束”,满足题意。

8 (1)通过符号计算求t t y sin )(=的导数dtdy 。

(2)然后根据此结果,求-=0t dtdy和2π=t dtdy 。

● diff, limit 指令的应用。

● 如何理解运行结果。

syms ty=abs(sin(t))d=diff(y) %求dy/dtd0_=limit(d,t,0,'left') %求dy/dt|t=0- dpi_2=limit(d,t,pi/2) %求dy/dt|t=pi/2 y =abs(sin(t)) d =sign(sin(t))*cos(t) d0_ = -1dpi_2 = 0 9 求出dx x exsin 7.110⎰--ππ的具有64位有效数字的积分值。

● 符号积分的解析解和符号数值解。

● 符号计算和数值计算的相互校验。

(1)符号积分 syms x clear syms xy=exp(-abs(x))*abs(sin(x))si=vpa(int(y,-10*pi,1.7*pi),64) y =abs(sin(x))/exp(abs(x)) si =1.087849499412904913166671875948174520895458535212845987519414166 (2)数值计算复验xx=-10*pi:pi/100:1.7*pi;sn=trapz(exp(-abs(xx)).*abs(sin(xx)))*pi/100 sn =1.087710 计算二重积分⎰⎰+211222)(x dydx y x 。

● 变上限二重积分的符号计算法。

syms x y f=x^2+y^2;r=int(int(f,y,1,x^2),x,1,2) r =1006/10511 在]2,0[π区间,画出dt ttx y x⎰=sin )(曲线,并计算)5.4(y 。

● 在符号计算中,经常遇到计算结果是特殊经典函数的情况。

● 如何应用subs 获得超过16位有效数字的符号数值结果。

● 初步尝试ezplot 指令的简便。

(1)符号计算 syms t x; f=sin(t)/t;y=int(f,t,0,x) % 将得到一个特殊经典函数 y5=subs(y,x,sym('4.5')) ezplot(y,[0,2*pi]) y =sinint(x) y5 =1.6541404143792439835039224868515(2)数值计算复验 tt=0:0.001:4.5; tt(1)=eps;yn=trapz(sin(tt)./tt)*0.001 yn =1.654112 在0>n的限制下,求xdx n y n ⎰=20sin )(π的一般积分表达式,并计算)31(y 的32位有效数字表达。

相关文档
最新文档