matlab习题第八章
- 格式:doc
- 大小:52.00 KB
- 文档页数:20
科学计算—理论、方法及其基于MATLAB 的程序实现与分析微分方程(组)数值解法§1 常微分方程初值问题的数值解法微分方程(组)是科学研究和工程应用中最常用的数学模型之一。
如揭示质点运动规律的Newton 第二定律:()()()⎪⎩⎪⎨⎧'='==000022x t x x t x t F dt xd m (1) 和刻画回路电流或电压变化规律的基尔霍夫回路定律等,但是,只有一些简单的和特殊的常微分方程及常微分方程组,可以求得用公式给出的所谓“解析解”或“公式解”,如一阶线性微分方程的初值问题:()()00y y t f ay dtdy=+= (2) 的解为:()()()τττd f e y e t y tt a at ⎰-+=00 (3)但是,绝大多数在实际中遇到的常微分方程和常微分方程组得不到“解析解”,因此,基于如下的事实:1、绝大多数的常微分方程和常微分方程组得不到(有限形式的)解析解;2、实际应用中往往只需要知道常微分方程(组)的解在(人们所关心的)某些点处的函数值(可以是满足一定精度要求的近似值);如果只需要常微分方程(组)的解在某些点处的函数值,则没有必要非得通过求得公式解,然后再计算出函数值不可,事实上,我们可以采用下面将介绍的常微分方程(组)的初值问题的数值解法,就可以达到这一目的。
一般的一阶常微分方程(组)的初值问题是指如下的一阶常微分方程(组)的定解问题:()()000,y t y t t t y t F dtdyf=≤≤= (7)其中()()()()⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=t y t y t y t y n 21 (8)()()()()⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=y t f y t f y t f y t F n ,,,,21 (9)常微分方程(组)的初值问题通常是对一动态过程(动态系统、动力系统)演化规律的描述,求解常微分方程(组)的初值问题就是要了解和掌握动态过程演化规律。
1. 数字信号处理器有哪些结构特点?答:1. DSP内部采用的是程序空间和数据空间分开的哈佛结构;2. 多总线结构;3. 流水线结构:在DSP中,执行一条指令,需要通过取指、译码、取操作数和执行四个阶段。
在程序运行过程中,这四个阶段不是依次进行的,而是重叠的进行的;4. 多处理单元:DSP内部通常包括有算术逻辑运算单元(ALU)、辅助寄存器运算单元(ARAU)、累加器(ACC)以及硬件乘法器(MUL)等多个处理单元。
它们可以在一个指令周期内同时进行运算;5. 硬件配置强:新一代DSP的接口功能愈来愈强,如:TMS320C5000系列芯片片内具有串行口、主机接口(HPl)、DMA控制器、软件控制的等待状态产生器、锁相环时钟产生器以及实现在片仿真符合IEEEll49.1.标准的测试访问口,更易于完成系统设计。
许多DSP芯片都可以工作在省电方式,使系统功耗降低。
2. TMS320C54x系列DSP片内有多少条总线,具体说明有哪些?答:TMS320C54x系列DSP是TI公司于1996年推出的新一代定点数字信号处理器。
其采用先进的修正哈佛结构,片内有8条总线,分别为1条程序存储器总线,3条数据存储器总线和4条地址总线。
3. TMS320VC5402的在片外围电路有哪些?答:1. 软件可编程等待状态发生器;2. 可编程分区转换逻辑电路;3.带有内部振荡器或用外部时钟源的片内锁相环(PLL)时钟发生器;4. 时分多路(TDM)串行口;5. 缓冲串行口(BSP);6. 2个16位定时器;7. 8位并行主机接口(HPl);8. 外部总线关断控制,以断开外部的数据总线、地址总线和控制信号。
4. TMS320VC5402有哪些片内资源?答:TMS320VC5402的片内资源按功能包括运算单元、寄存器、片内RAM 和ROM、片外存储器接口、DMA控制器、主机接口、串口、定时器、时钟产生器和中断控制器。
5. CCS有几种工作模式?具体说明。
Matlab第八章部分习题1. 以下是100 次刀具故障记录,即故障出现时该刀具完成的零件数。
分析这批数据是否服从正态分布,并求其均值和均方差。
注意,由于纪录失误,其中可能有些数据是错误的,要对此进行适当处理。
459, 362, 624, 542, 509, 584, 433, 748, 815, 505, 612, 452, 434, 982,640782, 742, 565, 706, 593, 680, 926, 653, 164, 487, 734, 608, 428, 1153, 593, 844, 527, 552, 513, 781, 474, 388, 824, 538, 862, 659, 775, 859, 755, 649, 697, 515, 628, 954, 771, 609, 2, 960, 885, 610, 292, 837, 473, 677, 358, 638, 699, 634, 555, 570, 84, 416, 606, 1062, 484, 120, 447, 654, 564, 339, 280, 246, 687, 539, 790, 581, 621, 724, 531, 512, 577, 496, 468, 499, 544, 645, 764, 558, 378, 765, 666, 763, 217, 715, 310, 851x1=[459 362 624 542 509 584 433 748 815 505 ]x2=[612 452 434 982 640 742 565 706 593 680 ]x3=[926 653 164 487 734 608 428 1153 593 844 ]x4=[527 552 513 781 474 388 824 538 862 659 ]x5=[775 859 755 649 697 515 628 954 771 609 ]x6=[402 960 885 610 292 837 473 677 358 638 ]x7=[699 634 555 570 84 416 606 1062 484 120 ]x8=[447 654 564 339 280 246 687 539 790 581 ]x9=[621 724 531 512 577 496 468 499 544 645 ]x10=[764 558 378 765 666 763 217 715 310 851 ]x=[x1 x2 x3 x4 x5 x6 x7 x8 x9 x10]; [mean(x),var(x)]ans =1.0e+004 *0.0600 3.86632. 表8.4给出了1930年各国人均年消耗的烟去数以及1950年男子死于肺癌的死亡率。
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.4410i4.计算如下表达式:(1)(2)>> (3-5*i)*(4+2*i)ans =22.0000 -14.0000i>> sin(2-8*i)ans =1.3553e+003 +6.2026e+002i5.判断下面语句的运算结果。
第8章 MATLAB方程数值求解习题8一、选择题1.下列方法中与线性方程组求解无关的是()。
CA.左除B.矩阵求逆C.矩阵转置D.矩阵分解2.对于系数矩阵A的阶数很大,且零元素较多的大型稀疏矩阵线性方程组,非常适合采用()求解。
BA.直接法B.迭代法C.矩阵求逆D.左除3.已知函数文件fx.m:function f=fx(x)f=2*x.^2+5*x-1;则求f(x)=2x2+5x-1=0在x0=-2附近根的命令是()。
DA.z=fzero(fx,0.5) B.z=fzero(@fx,0.5)C.z=fzero(fx,-2); D.z=fzero(@fx,-2);4.已知:fx=@(x) 2*x.^2+5*x-1;则求f(x)=2x2+5x-1=0在x0=-2附近根的命令是()。
CA.z=fzero(fx,0.5) B.z=fzero(@fx,0.5)C.z=fzero(fx,-2); D.z=fzero(@fx,-2);5.下列选项中不能用于求常微分方程数值解的函数是()。
AA.ode10 B.ode23 C.ode45 D.ode113二、填空题1.线性方程组的求解方法可以分为两类,一类是,另一类是。
前者是在没有舍入误差的情况下,通过有限步的初等运算来求得方程组的解;后者是先给定一个解的,然后按照一定的算法不断用变量的旧值递推出新的值。
直接法,迭代法,初始值2.MA TLAB用函数来求单变量非线性方程的根。
对于非线性方程组,则用函数求其数值解。
fzero,fsolve3.用数值方法求解常微分方程的初值问题,一般都是用系列函数,包括ode23、ode45等函数,各有不同的适用场合。
ode4.ode23、ode45等函数是针对一阶常微分方程组的,对于高阶常微分方程,需先将它转化为一阶常微分方程组,即。
状态方程三、应用题21.分别用矩阵除法以及矩阵分解求线性方程组的解。
⎪⎩⎪⎨⎧=+-=++=++57347310532)1(z y x z y x z y x 123134124345132(2)53241x x x x x x x x x x x +-=⎧⎪+-=⎪⎨--+=⎪⎪+=-⎩(1): 矩阵除法:A=[2,3,5;3,7,4;1,-7,1]; B=[10,3,5];%B 是行向量 x=A\B'%将B 变成列向量 矩阵分解:A=[2,3,5;3,7,4;1,-7,1]; B=[10,3,5];%B 是行向量 [L,U]=lu(A); x=U\(L\B') (2):和上面的程序一样。
MATLAB语言与控制系统仿真-参考答案-第8章8.6 控制系统的Simulink仿真实训8.6.1实训目的:1.学会运用Simulink进行系统仿真;2.了解子系统的创建方法及简单应用;3.运用Simulink实现混沌控制系统的仿真;4.运用Simulink实现伺服跟踪系统等系统的仿真;8.6.2实训内容:1.按照图8-39所示建立系统的结构图文件。
图8-39(1)K=50,纪录图示三处的波形,分析系统的稳态性并给出稳态误差。
仿真文件:sx8620101.mdl系统稳定,稳态误差为0;(2)K=200,纪录图示三处的波形,根据曲线分析系统的稳定性。
仿真文件:sx8620102.mdl由输出曲线可以看出闭环系统不稳定;(3)编写程序求取K=200时的闭环传递函数,求出系统的闭环极点(特征根),说明系统的稳定性,分析与(2)得出的结论是否一致。
%实训8620103.mn1=3;d1=[1,2];[n2,d2]=cloop(n1,d1);sysa=tf(n2,d2);sysb=tf([200],[1,0])*tf([1],[1,5]);sysc=sysa*sysb/(1+sysa*sysb);[nc,dc]=tfdata(sysc,'v');roots(dc)>> ans =-12.0549 1.0275 + 6.9797i 1.0275 - 6.9797i -5.0000 + 0.0000i -5.0000 - 0.0000i有两个特征根在右半平面,闭环系统不稳定;与(2)得出的稳定性结论一致。
2. 子系统创建实验(1)建立如下系统。
(2)选定范围,创建子系统并定义变量a 。
图8-40(3)利用创建的子系统,分别记录10,8,6,4,2 a 时所示系统的输出波形。
a=2a=4a=6a=8a=103.已知四维混沌系统的运动方程如下,试用Simulink 进行仿真。
+-=+-=-+=+-=321444213343121243212110)(10)(35x x x x xx x x x x x x x x x xx x x x x x (1)四个积分器的初始值自定,建议在(0.01,3.0)范围内随机给出。
第1章一、思考题4. (1) B=A(2:5,1:2:5)(2)A(7)=[](3) A=A+30(4)size(A)(5) t(find(t==0))=eps(6)t=reshape(x,3,4)(7)abs('matlab')(8)char(93)5. A=[97,67,34,10;-78,75,65,5;32,5,-23,-59;0,-12,54,7](1) B=A(1:3,:)C=A(:,1:2)D=A(2:4,3:4)E=B*C(2)A(find(A>=50 & A<=100))二、实验题1.x=-74/180*pi;y=-27/180*pi;sin(x*x+y*y)/sqrt(tan(abs(x+y)))+pi2.a=-3.0:0.1:3.0;exp(-0.3*a).*sin(a+0.3)3.x=[2,4;-0.45,5];log(x+sqrt(1+x.*x))/24. A=[3,54,2;34,-45,7;87,90,15];B=[1,-2,67;2,8,74;9,3,0]; (1)A*Bans =129 432 41977 -407 -1052402 591 12489A.*Bans =3 -108 13468 -360 518783 270 0(2) A^3ans =-28917 240246 -4368137883 -259101 27669171333 252504 38673A.^3ans =27 157464 839304 -91125 343658503 729000 3375(3)A/Bans =-5.8845 5.3549 -0.20286.3554 -5.6596 4.3293-6.6325 6.2078 9.0241B/Aans =30.2855 19.2643 -8.561433.4394 21.1547 -9.3974-0.7443 -0.3938 0.2830(4)[A,B]ans =3 54 2 1 -2 6734 -45 7 2 8 7487 90 15 9 3 0[A([1,3],:);B^2]ans =3 54 287 90 15600 183 -81684 282 72615 6 8255.a=1+2i;b=3+4i;c=exp(pi*i/6)c =0.8660 + 0.5000ic+a*b/(a+b)ans =1.6353 + 1.8462i第2章一、思考题3.s=0;for n=0:63s=s+2^n;enddisp(s)n=0:63;s=sum(2.^n)二、实验题1.x=input('输入一个四位整数:');y=[fix(x/1000),mod(fix(x/100),10),mod(fix(x/10),10),mod(x,10)] z=mod((y+7),10)x=z(3)*1000+z(4)*100+z(1)*10+z(2)2.gh=input('输入工号');h=input('输入工时');dj=84;if h>120gz=dj*120+1.15*dj*(h-120);elseif h<60gz=dj*h-700;elsegz=dj*h;endformat bank;display([gh,gz])3.循环结构n=input('input n:');s=0;for k=1:ns=s+1/k^2;enddisplay(sqrt(s*6))向量运算n=input('input n:');k=1:n;display(sqrt(sum(1./k.^2)*6))4.y=0;k=0;while y<3k=k+1;y=y+1/(2*k-1);enddisplay([k-1,y-1/(2*k-1)])5.x0=0;x=1;k=0;a=input('a=');b=input('b=');while abs(x-x0)>=1e-5 && k<500x0=x;x=a/(b+x0);k=k+1;enddisplay([k,x]);display([(-b+sqrt(b^2+4*a))/2,(-b-sqrt(b^2+4*a))/2]);6.y=fun(40)/(fun(30)+fun(20))(1)函数文件fun.mfunction f=fun(n)f=n+log(n^2+5);(2)函数文件fun.mfunction f=fun(n)a=1:n;f=sum(a.*(a+1));第3章一、思考题4.t=0:0.01:1.5;y=sqrt(3)/2*exp(-4*t).*sin(4*sqrt(3)*t+pi/3);5.x=-10:0.01:10;y=linspace(-6,6,size(x,2))z=x.^3+3*x.*y.^2;plot3(x,y,z)6.x=100:100:400;y=100:100:400;z=[636,697,624,478;698,712,630,478;680,674,598,412;662,626,552,334]; [X,Y]=meshgrid(x,y);mesh(X,Y,z)二、实验题1.(1)x=-10:0.01:10;plot(x,x-x.^3/3/2)(2)plot(x,exp(-x.*x/2)/2/pi)(3)x=-8:0.01:8;plot(x,sqrt((64-x.*x)/2))(4)t=0:pi/100:6*pi;plot(t.*sin(t),t.*cos(t))2. (1)x1=linspace(0,1,100);y1=2*x1-0.5;t=linspace(0,pi,100);x=sin(3*t).*cos(t);y=sin(3*t).*sin(t);plot(x1,y1,'r-',x,y,'b:');text(0.4,1,'y=2x-0.5');text(-0.4,0.5,'x=sin(3t)cos(t)');text(-0.4,0.3,'y=sin(3t)sin(t)');(2)subplot(1,2,1);scatter(x1,y1,10)title('y=2x-0.5');subplot(1,2,2);scatter(x,y,10)3.subplot(1,21);x=1:1:100; y=sin(1./x);plot(x,y)subplot(1,2,2);fplot('sin(1/x)',[1,100])4.subplot(2,2,1);bar(t,y);subplot(2,2,2);stairs(t,y);subplot(2,2,3);stem(t,y)subplot(2,2,4);semilogy(t,y);5.theta=linspace(-pi,pi,100);ro=5.*cos(theta)+4;polar(theta,ro);fi=linspace(0,2*pi,100);a=1r=a.*(1+cos(fi));polar(fi,r);6.t=0:pi/20:2*pi;x=exp(-t./20).*cos(t);y=exp(-t./20).*sin(t);z=t; plot3(x,y,z);t=0:0.01:1;x=t;y=t.^2;z=t.^3;plot3(x,y,z);7.x=-30:0.1:0;y=0:0.1:30;[x,y]=meshgrid(x,y);z=10.*sin(sqrt(x.^2+y.^2))./sqrt(1+x.^2+y.^2); meshc(x,y,z);8.x=linspace(-3,3,100);y=linspace(-3,3,100);[x y]=meshgrid(x,y);fxy=-5./(1+x.^2+y.^2);i=find(abs(x)<=0.8 & abs(y)<=0.5);fxy(i)=NaN;surf(x,y,fxy)9.u=linspace(1,10,100);v=linspace(-pi,pi,100);[u,v]=meshgrid(u,v);x=3.*u.*sin(v);y=2.*u.*cos(v);z=4*u.^2;x=3*u.*sin(v);y=2*u.*cos(v);z=4*u.^2;surf(x,y,z);shading interp;light('position',[1,0,1]);10.t=0:pi/100:2*pi;y=sin(t);comet(t,y)第4章一、思考题5.(1)A=eye(3);(2)C=100+(200-100)*rand(5,6);(3)D=1+sqrt(0.2)*randn(1,500);(4)E=ones(size(A));(5)A=A+30*eye(size(A));(6)B=diag(diag(A))二、实验题1.P=pascal(5);H=hilb(5);Dp=det(P);Dh=det(H);Kp=cond(P);Kh=cond(H);P矩阵的性能更好,因为Kp较小2.A=[1,-1,2,3;0,9,3,3;7,-5,0,2;23,6,8,3]B=[3,pi/2,45;32,-76,sqrt(37);5,72,4.5e-4;exp(2),0,97]A1=diag(A);B1=diag(B);A2=triu(A);B2=triu(B);A3=tril(A);B3=tril(B);rA=rank(A);rB=rank(B);nA=norm(A);nb=norm(B);cA=cond(A);cB=cond(B);3.A=[31,1,0;-4,-1,0;4,-8,-2];[V,D]=eig(A);4.A=diag([-1,-1,-1,-1],-1)+diag([-1,-1,-1,-1],1)+diag([2,2,2,2,2]) b=[1,0,0,0,0]';x1=inv(A)*b;x2=A\b;[L,U]=lu(A);x3=U\(L\b);[Q,R]=qr(a);[Q,R]=qr(A);x4=R\(Q\b)R=chol(A);x5=R\(R'\b)5.B=sparse(A);x1=inv(B)*b;x2=B\b;[L,U]=lu(B);x3=U\(L\b);第5章一、思考题3.A=randn(10,5);mean(A)std(A)max(max(A))min(min(A))sum(A,2)sum(sum(A))sort(A,1)sort(A,2,'descend')二、实验题1.A=rand(1,30000);mean(A)std(A)max(A)min(A)size(find(A>0.5))/size(A)2.h=[466,715,950,1422,1635];w=[7.04,4.28,3.40,2.52,2.13];hh=[500,900,1500];ww=interp1(h,w,hh,'spline')3.x=linspace(1,10,50);y=log(x);f=polyfit(x,y,5);yy=polyval(f,x);plot(x,y,'r-',x,yy,'g.')4.N=64; % 采样点数T=5; % 采样时间终点t=linspace(0,T,N); % 给出N个采样时间ti(I=1:N) x=3*exp(-t); % 求各采样点样本值xdt=t(2)-t(1); % 采样周期f=1/dt; % 采样频率(Hz)X=fft(x); % 计算x的快速傅立叶变换XF=X(1:N/2+1); % F(k)=X(k)(k=1:N/2+1) f=f*(0:N/2)/N; % 使频率轴f从零开始plot(f,abs(F),'-*') % 绘制振幅-频率图xlabel('Frequency');ylabel('|F(k)|')5.(1)p1=[1 2 0 0 7];p2=[1 -2];p3=[1 0 0 5 1];p12=conv(p1,p2);p=p12+[zeros(1,size(p12,2)-size(p3,2)),p3];roots(p)(2)A=[-1,4,3;2,1,5;0,5,6];Px=polyval(p,A)Pxm=polyvalm(p,A)6.(1)z=fzero('3*x-sin(x)+1',0)(2)建立函数文件myfun.mfunction F=myfun(X)x=X(1);y=X(2);F(1)=x*x+y*y-9;F(2)=x+y-1;在命令窗口中输入以下命令:x=fsolve(@myfun,[3,0]',optimset('Display','off')) 第6章一、思考题2.fx=inline('1./(1+x.^2)');[I,n]=quad(fx,-100000,100000,1e-3);[I,n]=quadl(fx,-100000,100000,1e-3);x=-100000:0.01:100000;y=1./(1+x.*x);trapz(x,y);3.(1)fx=inline('-2*y+2*x*x+2*x');[t,y]=ode23(fx,[0,0.5],1)(2)fx=inline('y-exp(x)*cos(x)');[t,y]=ode23(fx,[0,3],1)二、实验题1.for x=1:3fx=[x,x^2,x^3;1,2*x,3*x;0,2,6*x];diff(fx)end2.(1)x=0:0.01:1;y=x.^10+10.^x+1./log10(x);dy=diff(y)/0.01;(2)x=0:0.01:1;y=log(1+x);dy=diff(y,2)/0.01;plot(x(1:99),dy)3.(1)fx=inline('x.^2.*sqrt(2*x.*x+3)');quad(fx,1,5)(2)fx=inline('x./sin(x).^2');quad(fx,pi/4,pi/3)(3)fx=inline('abs(cos(x+y))');dblquad(fx,0,pi,0,pi)(4)syms x y ;fx=x*y;int(int(fx,y^2,y+2),-1,2)x 的积分区间为【0,2】时fx=inline('x.*y');dblquad(fx,0,2,-1,2)4.x=0.3:0.2:1.5;y=[0.3895,0.6598,0.9147,1.1611,1.3971,1.6212,1.8325]; trapz(x,y)5.(1)yp=inline('-(1.2+sin(10*x))*y');[t,y]=ode23(yp,[0,5],1);(2)令''3,,21y x y x y x ='==,则可写出原方程的状态方程形式:123233221sin 31)1(2cos 5cos x tx x t t t x x x x x +--++='='='⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡+-+-=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡'''t x x x t t t x x x cos 00)1(2cos 51sin 311000103212321 建立函数文件ztfun.mfunction y=ztfun(t,x)b=[0;0;cos(t)];y=[0,1,0;0,0,1;-1/(3+sin(t)),-1,5*cos(2*t)/(t+1)^2]*x+b; 解微分方程组[t,y]=ode23(@ztfun,[0,5],[1;0;2]);6.建立函数文件ztfun.mfunction yy=ztfun(t,y)yy=[y(2)*y(3);-y(1)*y(3);-0.51*y(1)*y(2)];解微分方程组[t,y]=ode23(@ztfun,[0,5],[0;1;1])第7章一、思考题3.(1)数值积分fx=inline('exp(x).*(1+exp(x)).^2');quad(fx,0,log(2))符号积分f=sym('exp(x)*(1+exp(x))^2');v=int(f,0,log(2));eval(v)(2)略二、实验题1.A=sym('[1,2,3;x,y,z;3,2,1]')rank(A)inv(A)det(A)2.(1) y=sym('sqrt(x+sqrt(x+sqrt(x)))');y1=diff(y)y2=diff(y,'x',2)(2) syms x y;fxy=sin(x^2*y)*exp(-x^2-y);diff(diff(fxy,x),y)3.(1) syms xint(1/(1+x^4))(2) syms x tint((-2*x*x+1)/(2*x*x-3*x+1)^2,x,cos(t),exp(2*t)) 4.syms n xsymsum(1/(2*n+1)/(2*x+1)^(2*n+1),n,0,inf)symsum(1/(2*n+1)/(2*x+1)^(2*n+1),n,0,5)5.(1) syms xtaylor((exp(x)+exp(-x))/2,5,0)(2) syms a xtaylor(exp(-5*x)*sin(3*x+pi/3),5,a)6.(1)x=solve(sym('x^3+a*x+1=0'))(2) [x y]=solve(sym('sqrt(x^2+y^2)-100=0,3*x+5*y-8=0'))7. 方程转化为: π21'11't y y y y -=+=⎩⎨⎧符号解[y1,y11]=dsolve('Dy=y1,Dy1+y=1-t^2/pi','y(-2)=5,y1(-2)=5','t') 数值解编写函数文件ztfun.mfunction yy=ztfun(t,y)yy=[y(2);1-t^2/pi-y(1)];在命令窗口输入以下命令[t,y]=ode45(@ztfun,[-2,7],[-5;5]);t=linspace(-2,7,49)y2=y8.[x,y]=dsolve('Dx=3*x+4*y,Dy=-4*x+3*y','x(0)=0,y(0)=1')。
第1章MATLAB概论1.1与其他计算机语言相比较,MA TLAB语言突出的特点是什么?MA TLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。
1.2 MA TLAB系统由那些部分组成?MA TLAB系统主要由开发环境、MA TLAB数学函数库、MA TLAB语言、图形功能和应用程序接口五个部分组成。
1.3 安装MA TLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装?在安装MA TLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MA TLAB选项)必须安装。
第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。
1.4 MA TLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上?在MA TLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。
1.5 如何启动M文件编辑/调试器?在操作桌面上选择‚建立新文件‛或‚打开文件‛操作时,M文件编辑/调试器将被启动。
在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。
1.6 存储在工作空间中的数组能编辑吗?如何操作?存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。
1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途?命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。
第四章 线性代数问题的计算机求解一、实验内容:题目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,并验证解的正确性 【分析】:该题为线性方程的计算机求解问题。
第8章MATLAB方程数值求解例8-1用直接解法求解下列线性方程组。
程序如下:A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];b=[13,-9,6,0]';x=A\b例8-2用LU分解求解例8-1中的线性方程组。
程序如下:A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];b=[13,-9,6,0]';[L,U]=lu(A);x=U\(L\b)例8-3 用QR分解求解例8-1中的线性方程组。
程序如下:A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];b=[13,-9,6,0]';[Q,R]=qr(A);x=R\(Q\b)例8-4 用Cholesky分解求解例8-1中的线性方程组。
命令如下:>> A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4]; >> b=[13,-9,6,0]';>> R=chol(A)Jacobi迭代法的MA TLAB函数文件jacobi.m如下:function [y,n]=jacobi(A,b,x0,ep)if nargin==3ep=1.0e-6;elseif nargin<3errorreturnendD=diag(diag(A)); %求A的对角矩阵L=-tril(A,-1); %求A的下三角阵U=-triu(A,1); %求A的上三角阵B=D\(L+U);f=D\b;y=B*x0+f;n=1; %迭代次数while norm(y-x0)>=epx0=y;y=B*x0+f;n=n+1;end例8-5 用Jacobi迭代法求解下列线性方程组。
设迭代初值为0,迭代精度为10-6。
在程序中调用函数文件jacobi.m,程序如下:A=[10,-1,0;-1,10,-2;0,-2,10];b=[9,7,6]';[x,n]=jacobi(A,b,[0,0,0]',1.0e-6)Gauss-Serdel迭代法的MA TLAB函数文件gauseidel.m如下:function [y,n]=gauseidel(A,b,x0,ep)if nargin==3ep=1.0e-6;elseif nargin<3errorreturnendD=diag(diag(A)); %求A的对角矩阵L=-tril(A,-1); %求A的下三角阵U=-triu(A,1); %求A的上三角阵G=(D-L)\U;f=(D-L)\b;y=G*x0+f;n=1; %迭代次数while norm(y-x0)>=epx0=y;y=G*x0+f;n=n+1;end例8-6 用Gauss-Serdel迭代法求解例8-5中的线性方程组。
高等应用数学问题MATLAB 求解习题参考解答(薛定宇著)目录第1 章计算机数学语言概述2第2 章MATLAB 语言程序设计基础5第3 章微积分问题的计算机求解17第4 章线性代数问题的计算机求解29第5 章积分变换与复变函数问题的计算机求解43第6 章代数方程与最优化问题的计算机求解53第7 章微分方程问题的计算机求解71第8 章数据插值、函数逼近问题的计算机求解93第9 章概率论与数理统计问题的计算机求解114第10 章数学问题的非传统解法127第A章自由数学语言Scilab 简介136第1 章计算机数学语言概述1 在你的机器上安装MATLAB 语言环境,并键入demo 命令,由给出的菜单系统和对话框原型演示程序,领略MATLAB 语言在求解数学问题方面的能力与方法。
【求解】在MATLAB 提示符>> 下键入demo 命令,则将打开如图1-1 所示的窗口,窗口左侧的列表框可以选择各种不同组合的演示内容。
图1-1 MATLAB 演示程序界面例如,用户选择MATLAB ! Graphics ! Volume Vlsulization 演示,则将得出如图1-2 所示的演示说明,单击其中的Run this demo 栏目,则将得出如图1-3 所示的演示界面。
用户可以在该界面下按按钮,逐步演示相关内容,而实现这样演示的语句将在该程序界面的下部窗口中给出。
2 作者用MATLAB 语言编写了给出例子的源程序,读者可以自己用type 语句阅读一下源程序,对照数学问题初步理解语句的含义,编写的源程序说明由下表列出。
第1 章计算机数学语言概述3图1-2 MATLAB 演示程序界面举例序号文件名程序说明例1.1 c1ex1.m 利用MATLAB 的符号运算工具箱求解微分问题例1.2 c1ex2.m 分别利用MATLAB 的符号运算工具箱和数值运算功能求解多项式方程,其中用数值方法得出的结果有误差例1.3 c1ex3.m 分别利用MATLAB 的符号运算工具箱和数值运算功能计算Hilbert 矩阵的行列式,其中用数值方法得出的结果有很大误差例1.4 c1ex4.m 令x1 = y; x2 = y_,则可以将原来的二阶微分方程转换成一阶微分方程组,然后就可以求解微分方程的数值解了,原方程是非线性微分方程,故不存在解析解。
第八章实验指导1、>> syms x y;>> A=x^4-y^4;>> factor(A)ans =(x - y)*(x + y)*(x^2 + y^2)>> a=5135;>> factor(a)ans =5 13 79 2、(1)>> syms x>> f=(x-2)/(x^2-4);>> limit(f,x,2)ans =1/4(2)>> syms xf=(sqrt(pi)-sqrt(acos(x)))/sqrt(x+1); limit(f,x,-1,'right')ans =-Inf3、(1)>> syms x y>> f=sin(1/x);>> diff(f)ans =-cos(1/x)/x^2>> diff(f,x,2)ans =(2*cos(1/x))/x^3 - sin(1/x)/x^4>> f=(1-cos(2x))/x;(2)>> f=(1-cos(2*x))/xf =-(cos(2*x) - 1)/x>> diff(f)ans =(2*sin(2*x))/x + (cos(2*x) - 1)/x^2 >> diff(f,x,2)ans =(4*cos(2*x))/x - (4*sin(2*x))/x^2 - (2*(cos(2*x) - 1))/x^3 4、(1)、>> x=sym('x');>> f=sqrt(exp(x)+1);>> int(f)ans =atan((exp(x) + 1)^(1/2)*i)*2*i + 2*(exp(x) + 1)^(1/2) (2)>> x=sym('x');y=sym('y');f=x/(x+y);>> int(f,y)ans =x*log(x + y)(3)>> syms x;>> f=exp(x)*(exp(x)+1)^2;>> int(f,0,log10(2))ans =(exp(5422874305198591/18014398509481984)*(3*exp(5422874305198 591/18014398509481984) + exp(5422874305198591/9007199254740992) + 3))/3 - 7/3(4)>> sym('x');f=x*log10(x);int(f,1,exp(1))ans =(18733482797859000068490812234738*log(3060513257434037/112589 9906842624) -8099090798701270632748702911993)/(50706024009129176059868128 21504*log(10))5、(1)>> s=symsum((-1)^(n+1)*1/n,1,inf)s =log(2)(2)>> syms n>> s=symsum(x^(2*n-1)/(2*n-1),1,inf)s =piecewise([real(n) < 0, zeta(1 - 2*n)/(2*n - 1)]) 6、(1)>> syms x;>> f=(exp(x)+exp(-1*x))/2;>> taylor(f,x,5,0)ans =x^4/24 + x^2/2 + 1(2)>> syms x;>> f=sqrt(x^3-2*x+1);>> taylor(f,x,6,0)ans =- x^5/8 - x^4/8 - x^2/2 - x + 17、(1)>> syms x a;x=solve('x^3+a*x+1','x')x =((a^3/27 + 1/4)^(1/2) - 1/2)^(1/3) - a/(3*((a^3/27 + 1/4)^(1/2) - 1/2)^(1/3))(3^(1/2)*(a/(3*((a^3/27 + 1/4)^(1/2) - 1/2)^(1/3)) + ((a^3/27 + 1/4)^(1/2) -1/2)^(1/3))*i)/2 + a/(6*((a^3/27 + 1/4)^(1/2) - 1/2)^(1/3)) - ((a^3/27 +1/4)^(1/2) - 1/2)^(1/3)/2a/(6*((a^3/27 + 1/4)^(1/2) - 1/2)^(1/3)) - (3^(1/2)*(a/(3*((a^3/27 + 1/4)^(1/2) - 1/2)^(1/3)) + ((a^3/27 + 1/4)^(1/2) - 1/2)^(1/3))*i)/2 - ((a^3/27 + 1/4)^(1/2) - 1/2)^(1/3)/2(2)>> syms x>> x=solve('sin(x)+2*cos(x)-sqrt(x)=0','x')x =- 227.29614717392215108027554049443 + 2.607041909691930054078218073756*i (3)>> syms x y;>> [x y]=solve('log10(x/y)=9','exp(x+y)=3','x','y') x =(1000000000*log(3))/1000000001y =log(3)/10000000018、思考练习1、(1)数值计算>> 1/2+2/3ans =1.1667符号运算>> p1=sym('1/2'); >> a=sym('2/3'); >> p1+aans =7/6(2)数值计算>> pi+sqrt(5)ans =5.3777 >> a=sym('36'); >> y=36;>> (1+sqrt(a))/2ans =7/2>> c=sym('pi'); >> d=sym('sqrt(5)'); >> c+dans =pi + 5^(1/2)(3)数值计算>> (1+sqrt(36))/2ans =3.5000符号计算>> a=sym('36'); >> y=36;>> (1+sqrt(a))/2ans =2、>> syms x B1 B2 a bs1=2*((cos(x))^2)-(sin(x))^2;s2=sin(B1)*cos(B2)-cos(B1)*sin(B2);s3=sqrt((a+sqrt(a^2-b))/2)+sqrt((a-sqrt(a^2-b))/2); s4=(4*x^2+8*x+3)/(2*x+1);h1=simplify(s1)h2=simplify(s2)h3=simplify(s3)h4=simplify(s4)h1 =3*cos(x)^2 - 1h2 =sin(B1 - B2)(2^(1/2)*((a + (a^2 - b)^(1/2))^(1/2) + (a - (a^2 - b)^(1/2))^(1/2)))/2 h4 =2*x + 33、>> syms x a;f=abs(x)/x;limit(f,x,0,'left')ans =-1(2)>> f=(x+a/x)^x;limit(f,x,inf)ans =4、(1)>> syms x y mf=sqrt(x+sqrt(x+sqrt(x)));m=diff(f,'x')diff(m,'x')m =((1/(2*x^(1/2)) + 1)/(2*(x + x^(1/2))^(1/2)) + 1)/(2*(x + (x +x^(1/2))^(1/2))^(1/2))ans =- ((1/(2*x^(1/2)) + 1)/(2*(x + x^(1/2))^(1/2)) + 1)^2/(4*(x + (x +x^(1/2))^(1/2))^(3/2)) - (1/(8*x^(3/2)*(x + x^(1/2))^(1/2)) + (1/(2*x^(1/2)) +1)^2/(4*(x + x^(1/2))^(3/2)))/(2*(x + (x + x^(1/2))^(1/2))^(1/2))(2)>> syms x y;f=x+y-sqrt(x^2+y^2);z1=diff(f,x)z2=diff(f,y)z1 =1 - x/(x^2 + y^2)^(1/2)z2 =1 - y/(x^2 + y^2)^(1/2)5、>> syms x;>> f=1/sin(x);>> int(f)ans =log(tan(x/2))(2)>> sym x;f=1/(asin(x)^2*(1-x^2)^(1/2)); int(f)ans =-1/asin(x)5、(1)>> syms x>> f=1/(1+sqrt(x));>> int(f,0,4)ans =4 - log(9)(2) sym x;f=x^3*sin(x)^2/(x^6+2*x^4+1);int(f,-1,1)Warning: Explicit integral could not be found. ans =int((x^3*sin(x)^2)/(x^6 + 2*x^4 + 1), x == -1..1) 7、(1)>> syms ns=symsum(1/4^n,1,inf)s =1/3(2)、>> sym n;s=symsum(((n+1)/n)^(1/2),1,inf) eval(y)s =sum(((n + 1)/n)^(1/2), n == 1..Inf) ans =y8、(1)>> syms xf=tan(x);taylor(f,x,3,0)x(2)、>> syms xf=sin(x)^2;taylor(f,x,5,0)ans =- x^4/3 + x^29、(1)>> syms xx=solve('log(1+x)-5/(1+sin(x))=2','x')x =521.67926389905839979437366649258(2)syms x y z>> [x yz]=solve('4*x^2/(4*x^2+1)=y','4*y^2/(4*y^2+1)=z','4*z^2/(4*z^2+1)=x','x' ,'y','z')1/2- 20.0*z^5 - 21.617977528089887640449438202247*z^4 - 1.2359550561797752808988764044944*z^3 +3.6741573033707865168539325842697*z^2 -0.058988764044943820224719101123596*z -0.011235955056179775280898876404494y =1/2156.0*z^5 + 110.82022471910112359550561797753*z^4 + 10.404494382022471910112359550562*z^3 +2.5337078651685393258426966292135*z^2 +0.30056179775280898876404494382022*z +0.097612359550561797752808988764045z =1/2Z10、>> [x ,y]=dsolve('Dx=3*x+4*y','Dy=5*x-7*y','x(0)=0','y(0)=1','t')x =-(exp(-t*(3*5^(1/2) + 2))*((3*5^(1/2))/2 - (5^(1/2)*(3*5^(1/2) + 5))/6 +5*exp(t*(3*5^(1/2) - 2))*exp(t*(3*5^(1/2) + 2))*(5^(1/2)/6 - 1/2) +3*5^(1/2)*exp(t*(3*5^(1/2) - 2))*exp(t*(3*5^(1/2) + 2))*(5^(1/2)/6 - 1/2) + 5/2))/5y =exp(-t*(3*5^(1/2) + 2))*((5^(1/2)*(3*5^(1/2) + 5))/30 - exp(t*(3*5^(1/2) - 2))*exp(t*(3*5^(1/2) + 2))*(5^(1/2)/6 - 1/2))。