计算方法及其MATLAB实现第二章作业
- 格式:docx
- 大小:43.07 KB
- 文档页数:3
第二章非线性方程求根习题2-11. 试寻找f(x)= x 3+6.6 x2-29.05 x +22.64=0的实根上下界,及正根所在的区间,区间长度取1。
解:由笛卡儿符号规则知,f(x)=0可能有二个正根或无正根f(-x)= -x 3+6.6 x2+29.05 x +22.64=0即x 3 -6.6 x2-29.05 x -22.64=0f(-x)=0有一个正根,因此,f(x)=0有一个负根。
由定理2-3,f(x)=0的正根上界f(x)=0的负根下界x0123456 6.39f(x)++-+++++正根所在区间为(1, 2),(2, 3)。
2.你能不利用多项式的求导公式,而借鉴于余数定理的思想,构造出P n(x)=a0x n+a1x n-1+...+a n-1x+a n在x0这点上的导数值的算法吗?习题2-21.用二分法求方程x2-x-1=0的正根,要求准确到小数点后第一位a F(a)b F(b)x F(x)0-1211-11-121 1.5-0.251.5-0.2521 1.750.31251.5-0.25 1.750.3125 1.6250.3015625 1.5-0.25 1.6250.015625 1.5625-0.12109375 1.5625-0.12104375 1.6250.015625 1.59375-0.053710937 1.59375-0.053710937 1.6250.015625 1.609375-0.019287109 1.609375-0.019287109 1.6250.015625 1.6171875-0.001892089 1.6171875-0.001892089 1.6250.015625 1.621093750.006851196 1.6171875-0.001892089 1.621093750.006851196 1.6191406250.002175738 1.6171875-0.001892089 1.619140620.002475738 1.6181640630.000290904X*=1.618K=5X*=1.593752.试证明用试位法(比例求根法),求在区间[0, 1]内的一个根必然收敛。
MATLAB数学实验第二版课后练习题含答案课后练习题MATLAB数学实验第二版的课后练习题如下:第一章课后练习题1.编写MATLAB程序,计算并输出下列公式的结果:y = \\frac{1}{\\sqrt{2\\pi\\sigma^2}} e^{-\\frac{(x-\\mu)^2}{2\\sigma^2}}其中,x, $\\mu$, $\\sigma$ 分别由用户输入。
要求输出结果精确至小数点后两位。
答案如下:x=input('请输入 x 的值:');mu=input('请输入 mu 的值:');sigma=input('请输入 sigma 的值:');y=1/sqrt(2*pi*sigma^2) *exp(-(x-mu)^2/ (2*sigma^2));fprintf('y = %.2f\', y);2.编写MATLAB程序,求解下列方程的解:4x + y = 11\\\\x + 2y = 7答案如下:A= [4,1;1,2];B= [11;7];X=inv(A) *B;fprintf('x = %.2f, y = %.2f\', X(1), X(2));第二章课后练习题1.编写MATLAB程序,计算下列多项式的值:P(x) = x^4 - 2x^3 + 3x^2 - x + 1其中,x 由用户输入。
要求输出结果精确至小数点后两位。
答案如下:x=input('请输入 x 的值:');y=x^4-2*x^3+3*x^2-x+1;fprintf('P(%.2f) = %.2f\', x, y);2.编写MATLAB程序,绘制下列函数的图像:f(x) = \\begin{cases} x + 1, & x < 0 \\\\ x^2, & 0 \\leq x < 1 \\\\ 2x - 1, & x \\geq 1 \\end{cases}答案如下:x=-2:0.01:2;y1=x+1;y2=x.^2.* ((x>=0) & (x<1));y3=2*x-1;plot(x,y1,x,y2,x,y3);legend('y1 = x + 1','y2 = x^2','y3 = 2x - 1');总结本文提供了《MATLAB数学实验第二版》的部分课后练习题及其答案。
matlab章课后作业MATLAB基础教程1~8章作业Matlab第⼀章1.阐述Matlab的功能Matlab作为⼀种⾼级计算软件,是进⾏算法开发、数据可视化、数据分析以及数值计算的交互式应⽤开发环境,已被⼴泛应⽤于不同领域。
Matlab的基本功能包括:数学计算功能、图形化显⽰功能、M 语⾔编程功能、编译功能、图形⽤户界⾯开发功能、Simulink建模仿真功能、⾃动代码⽣成功能。
Matlab第⼆章1.创建double的变量,并进⾏计算。
(1)a=87,b=190,计算a+b、a-b、a*b。
(2)创建uint8 类型的变量,数值与(1)中相同,进⾏相同的计算。
>> a=87,b=190a =87b =190>> a+bans =277>> a-bans =-103>> a*bans =16530>> c=uint8(87), d=uint8(190)c =87d =190>> c+dans =255>> c-dans =>> c*dans =2552.计算(1)sin(60)(2)e^3(3)cos(3π/4)>> sind(60)ans =0.8660>> exp(3)ans =20.0855>> cos(3*pi/4)ans =-0.70713.设u=2,v=3,计算:(1)(2)(3)>> u=2;>> v=3;>> 4*u*v/log(v)ans =21.8457>> (exp(u)+v)^2/(v^2-u) ans = 15.4189>> sqrt(u-3*v)/(u*v) ans =0 + 0.4410i 4.计算如下表达式:(1)(2)>> (3-5*i)*(4+2*i)ans =22.0000 -14.0000i >> sin(2-8*i) 1.3553e+003 +6.2026e+002i5.判断下⾯语句的运算结果。
作业六6-1 试验目的计算特色值,实现算法试验内容:随机产生一个10 阶整数矩阵,各数均在-5 和 5 之间。
(1〕用 MATLAB 函数“ eig 〞求矩阵全部特色值。
(2〕用幂法求 A 的主特色值及对应的特色向量。
〔3〕用根本 QR 算法求全部特色值〔可用MATLAB 函数“ qr 〞实现矩阵的QR 分解〕。
原理幂法:设矩阵 A 的特色值为 | 1|>|2||n |并设 A 有完好的特色向量系1,2 , , n (它们线性没关 ),那么对任意一个非零向量V0R n所构造的向量序列V k AV k 1有lim(V k ) j 1 ,其中k(V k1) j(V k ) j表示向量的第j 个重量。
为防范逐次迭代向量V k不为零的重量变得很大〔 | 1 |1时〕或很小〔 | 1 |1时〕,将每一步的 V k按其模最大的元素进行归一化。
详尽过程以下:选择初始向量V0,令 m k max(V k ),U k V k,V k 1 AU k , k 1 ,当 k充分大时m kU k1,max(V k 1 ) 1 。
max( 1 )QR 法求全部特色值:A A1Q1 R1R Q1A2Q2 R21, k1,2,3,R k Q k Ak 1Qk 1Rk 1由于此题的矩阵是 10 阶的,上述算法计算时间过长,考虑采用改良算法——移位加速。
迭代格式以下:A k q k I Q k R kA k1R k Q k q k Ia n(k1,n)1a n(k1,)n的特色值(k ),( k ),当(k ),( k )为实数时,选q k为计算 A k右下角的二阶矩阵( k )a( k )n 1n n 1na1n,nn, nn(k1), n( k )中最凑近a n(k,n)的。
程序A=-5+round(10*rand(10));[V,D]=eig(A)[lamda u]=lab6_2_power(A,[1;1;1;1;1;1;1;1;1;1],10^(-5),1000)d=lab6_3_qr2(A,10^(-5))functionlamda=0;err=1;[lamda u]=lab6_2_power(a,v,eps,N)k=1;while (k<=N && err>eps)u=a*v;[m j]=max(abs(u));dc=abs(lamda-m);u=u/m;dv=norm(u-v);err=max(dc,dv);v=u;lamda=m;k=k+1;endfunction D=lab6_3_qr2(A,eps)[n,n]=size(A);m=n;D=zeros(n,1);B=A;while (m>1)while (abs(B(m,m-1))>=eps*(abs(B(m-1,m-1))+abs(B(m,m)))) S=eig(B(m-1:m,m-1:m));[j,k]=min([abs(B(m,m)-S(1)),abs(B(m,m)-S(2))]);[Q,U]=qr(B-S(k)*eye(m));B=U*Q+S(k)*eye(m);endA(1:m,1:m)=B;m=m-1;B=A(1:m,1:m);endD=diag(A);界面(1)(2)(3)作业七7-1 试验目的:熟悉代数插值试验内容:在 f(x)在 7 个点的函数值以下表所示,分别使用拉格朗日插值法和牛顿插值法求 f(0.596) 与 f(0.906) 的近似值。
第二章作业M2_1.利用MATLAB实现下列连续时间信号。
(1)x(t)=u(t)-u(t-2)function y=heaviside(t);y=(t>0);endt=-10:0.001:10;>>xt=heaviside(t)-heaviside(t-2);>>plot(t,xt)>>axis([-10,10,-2,2])(2) x(t)=u(t)function y=heaviside(t);y=(t>0);endt=-10:0.001:10;>>xt=heaviside(t);>>plot(t,xt)>>axis([-10,10,-2,2])(3)xt=10exp(-t)-5exp(-2t)>> A=10;a=-1;>> t=0:0.001:10;>> x1t=A*exp(a*t);>> A=5;a=-2;>> t=0:0.001:10;>> x2t=A*exp(a*t);>>xt=x1t-x2t;>>plot(t,xt)(4)xt=tu(t)>> t=-10:0.001:10;>>xt=t.*heaviside(t);>>plot(t,xt)(5)xt=2|sin(10pit+pi/3)| >> A=2;w0=10*pi;phi=pi/3; >> t=0:0.001:1;>>xt=A*abs(sin(w0*t+phi)); >>plot(t,xt)>>axis([0,1,-4,4])Xt=cost+sin(2pit)>> A=1;w0=1;phi=0; >> t=0:0.002:10;>> x1t=A*cos(w0*t+phi); >> A=2;w0=2*pi;phi=0; >> t=0:0.002:10;>> x2t=A*sin(w0*t+phi); >>xt=x1t+x2t;>>plot(t,xt)(7)xt=4exp(-0.5t)cos(2pit) >> A=5;a=-0.5;>> t=0:0.001:10;>> x1t=A*exp(a*t);>> A=1;w0=2*pi;phi=0; >> t=0:0.001:10;>> x2t=A*cos(w0*t+phi); >>xt=x1t.*x2t;>>plot(t,xt)(8)Sa(pit)cos(30t)A=1;w0=30;phi=0;>> t=0:0.001:3;>> x1t=A*cos(w0*t+phi);>> t=0:0.001:3;>> x2t=sinc(t);>>xt=x1t.*x2t;>>plot(t,xt)M2-3,写出书中图示波形函数,并画出xt,x0.5t,x(2-0.5t)的图像function yt=x2_3(t)yt=t.*(t>=0&t<2)+2*(t>=2&t<3)+(-1)*(t>=3&t<=5); end>> t=0:0.001:5;>>xt=x2_3(t);>>title('x(t)');>>plot(t,xt)>>axis([0,6,-2,3])>> t=0:0.001:10;xt=x2_3(0.5*t); >>plot(t,xt)>>title('x(0.5t)')>>axis([0,10,-2,3])x(0.5t)>> t=-10:0.001:10;>>xt=x2_3(2-0.5*t);>>plot(t,xt)>>title('x(2-0.5t)')>>axis([-10,10,-2,3])M2-4画出图示的奇分量和偶分量。
2.1创建一个有七个元素的一维数组,并做如下处理(1)直接寻访一维数组的第六个元素(2)寻访一维数组的第一、三、五个元素(3)寻访一维数组中第四个至最后一个元素(4)寻访一维数组中大于70的元素A=linspace(1,200,7)%创建一个有七个元素的一维数组>>A =Columns 1 through 31.0000 34.1667 67.3333Columns 4 through 6100.5000 133.6667 166.8333Column 7200.0000(5)>> A(6)%直接寻访一维数组的第六个元素ans =166.8333(6)>> A([1,3,5])%寻访一维数组的第一、三、五个元素ans =1.0000 67.3333 133.6667(7)>> A(4:end)%寻访一维数组中第四个至最后一个元素ans =100.5000 133.6667 166.8333 200.0000>> b=A>70%判断A中的各元素是否大于70b =0 0 0 1 1 1 1>> A(b)%显示A 中大于70的元素ans =100.5000 133.6667 166.8333 200.00002.3找出数组A=⎥⎦⎤⎢⎣⎡----5311342024中所有绝对值大于3的元素 >> A=[-4,-2,0,2,4;-3,-1,1,3,5]%创建AA =-4 -2 0 2 4-3 -1 1 3 5>> b=abs(A)>3%判断A 中各元素绝对值是否大于3b =1 0 0 0 10 0 0 0 1>> A(b)%显示逻辑值为1的各元素ans =-4452.5求1)1)(4)(232+++++s s s s s (的商及余多项式 >> p1=[1,5,6,10,8];%创建分子多项式>> ps1=poly2str(p1,'s')%以s 作为未知数显示多项式ps1 =s^4 + 5 s^3 + 6 s^2 + 10 s + 8>> p2=[1,1,1];%创建分母多项式>> ps2=poly2str(p2,'s')%以s 作为未知数显示多项式ps2 =s^2 + s + 1>> [q,r]=deconv(p1,p2)%求商及余多项式q =1 4 1r =0 0 0 5 7>> disp(['商:',poly2str(q,'s')])%显示商多项式 商: s^2 + 4 s + 1>> disp(['余:',poly2str(r,'s')])%显示余多项式 余: 5 s + 72.6求3阶方阵A 的特征多项式构造方阵A=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡200030001 A=[1,0,0;0,3,0;0,0,2;];%构造方阵A>> B=poly(A);%B 为A 的特征多项式>> poly2str(B,'s')ans =s^3 - 6 s^2 + 11 s - 6>> p=roots(B)%求B 的根p =3.00002.00001.0000。
matlab课后习题解答第⼆章第2章符号运算习题2及解答1 说出以下四条指令产⽣的结果各属于哪种数据类型,是“双精度”对象,还是“符号”符号对象3/7+; sym(3/7+; sym('3/7+'); vpa(sym(3/7+)〖⽬的〗不能从显⽰形式判断数据类型,⽽必须依靠class指令。
〖解答〗c1=3/7+c2=sym(3/7+c3=sym('3/7+')c4=vpa(sym(3/7+)Cs1=class(c1)Cs2=class(c2)Cs3=class(c3)Cs4=class(c4)c1 =c2 =37/70c3 =c4 =Cs1 =doubleCs2 =symCs3 =symCs4 =sym2 在不加专门指定的情况下,以下符号表达式中的哪⼀个变量被认为是⾃由符号变量.sym('sin(w*t)'),sym('a*exp(-X)'),sym('z*exp(j*th)')〖⽬的〗理解⾃由符号变量的确认规则。
〖解答〗symvar(sym('sin(w*t)'),1)ans =wsymvar(sym('a*exp(-X)'),1)ans = asymvar(sym('z*exp(j*th)'),1) ans = z5求符号矩阵=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) A =[ 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)8(1)通过符号计算求t t y sin )(=的导数dtdy。
Matlab 教程 第二章 符号计算课堂练习1 创建符号变量有几种方法?MA TLAB 提供了两种创建符号变量和表达式的函数:sym 和syms 。
sym 用于创建一个符号变量或表达式,用法如x=sym(‘x’) 及 f=sym(‘x+y+z’),syms 用于创建多个符号变量,用法如syms x y z 。
f=sym(‘x+y+z’) 相当于syms x y z f= x+y+z2 下面三种表示方法有什么不同的含义? (1)f=3*x^2+5*x+2 (2)f='3*x^2+5*x+2' (3)x=sym('x') f=3*x^2+5*x+2 (1)f=3*x^2+5*x+2表示在给定x 时,将3*x^2+5*x+2的数值运算结果赋值给变量f ,如果没有给定x 则指示错误信息。
(2)f='3*x^2+5*x+2'表示将字符串'3*x^2+5*x+2'赋值给字符变量f ,没有任何计算含义,因此也不对字符串中的内容做任何分析。
(3)x=sym('x')f=3*x^2+5*x+2表示x 是一个符号变量,因此算式f=3*x^2+5*x+2就具有了符号函数的意义,f 也自然成为符号变量了。
3 用符号函数法求解方程a t 2+b*t +c=0。
>> r=solve('a*t^2+b*t+c=0','t') r =[ 1/2/a*(-b+(b^2-4*a*c)^(1/2))] [ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]4 用符号计算验证三角等式:sin(ϕ1)cos(ϕ2)-cos(ϕ1)sin(ϕ2) =sin(ϕ1-ϕ2) >> syms phi1 phi2;>> y=simple(sin(phi1)*cos(phi2)-cos(phi1)*sin(phi2)) y =sin(phi1-phi2)5 求矩阵⎥⎦⎤⎢⎣⎡=22211211a a a a A 的行列式值、逆和特征根。
第一章习题1. 序列满足递推关系,取及试分别计算,从而说明递推公式对于计算是不稳定的。
n1 1 0.01 0.00012 0.01 0.0001 0.0000013 0.0001 0.000001 0.000000014 0.000001 0.0000000110-105 0.00000001 10-10n1 1.000001 0.01 0.0000992 0.01 0.000099 -0.000099013 0.000099 -0.00009901-0.010000994 -0.00009901 -0.01000099-1.00015 -0.01000099-1.0001初始相差不大,而却相差那么远,计算是不稳定的。
2. 取y0=28,按递推公式,去计算y100,若取(五位有效数字),试问计算y100将有多大误差?y100中尚留有几位有效数字?解:每递推一次有误差因此,尚留有二位有效数字。
3.函数,求f(30)的值。
若开方用六位函数表,问求对数时误差有多大?若改用另一等价公式计算,求对数时误差有多大?设z=ln(30-y),,y*, |E(y)| 10-4z*=ln(30-y*)=ln(0.0167)=-4.09235若改用等价公式设z=-ln(30+y),,y*, |E(y)|⨯10-4z*=-ln(30+y*)=-ln(59.9833)=-4.094074.下列各数都按有效数字给出,试估计f的绝对误差限和相对误差限。
1)f=sin[(3.14)(2.685)]设f=sin xyx*=3.14, E(x)⨯10-2, y*=2.685, E(y)⨯10-3,sin(x*y*)=0.838147484, cos(x*y*)=-0.545443667⨯(-0.5454) ⨯⨯10-2+3.14(-0.5454) ⨯⨯10-3|⨯10-2⨯10-2|E r(f)| ⨯10-2⨯10-2<10-22)f=(1.56)设f = x y ,x*=1.56, E(x)⨯10-2, y*=3.414, E(y)⨯10-3,⨯⨯⨯10-2⨯⨯⨯10-3|⨯⨯⨯10-2⨯⨯⨯10-3|=0.051|E r(f)| =0.01125.计算,利用下列等式计算,哪一个得到的结果最好,为什么?6.下列各式怎样计算才能减少误差?7. 求方程x2-56x+1=0的二个根,问要使它们具有四位有效数字,至少要取几位有效数字?如果利用伟达定理, 又该取几位有效数字呢?解一:若要取到四位有效数字,如果利用伟达定理,解二:由定理二,欲使x1,x2有四位有效数字,必须使由定理一知,∆至少要取7位有效数字。