Matlab上机实验一、二
3.求下列联立方程的解
?3x?4y?7z?12w?4??5x?7y?4z?2w?4 ?x?8z?5w?9???6x?5y?2z?10w?4>> a=[3 4 -7 -12;5 -7 4 2;1 0 8 -5;-6 5 -2 10]; >> b=[4;4;9;4]; >> c=a\b
?1?34.设A?????246?78?5?1213???9??8???543?2??6?23?8,B???????13?97??,求C1=A*B’;C2=A’*B;C3=A.*B,并求上述所
有方阵的逆阵。
>> 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]; >> C1=A*B' >> C2=A'*B >> C3=A.*B >> inv(C1) >> inv(C2) >> inv(C3)
5.设 y?cosx?0.5??,把x=0~2π间分为101点,画出以x为横坐标,y为纵坐标的2(1?x)??曲线。
>> x=linspace(0,2*pi,101);
>> y=cos(x)*(0.5+(1+x.^2)\3*sin(x)); >> plot(x,y,'r')
6.产生8×6阶的正态分布随机数矩阵R1, 求其各列的平均值和均方差。并求该矩阵全体数的平均值和均方差。 (mean var) a=randn(8,6) mean(a) var(a)
k=mean(a) k1=mean(k) i=ones(8,6) i1=i*k1 i2=a-i1 i3=i2.*i2 g=mean(i3) g2=mean(g)
1
?3sinx?
或者
u=reshape(a,1,48); p1=mean(u) p2=var(u)
7.设x=rcost+3t,y=rsint+3,分别令r=2,3,4,画出参数t=0~10区间生成的x~y曲线。 >> t=linspace(0,10); >> r1=2;
>> x1=(r1*cos(t)+3*t); >> y1=r1*sin(t)+3; >> r2=3;
>> x2=(r2*cos(t)+3*t); >> y2=r2*sin(t)+3; >> r3=4;
>> x3=(r3*cos(t)+3*t); >> y3=r3*sin(t)+3;
>> plot(x1,y1,'r',x2,y2,'b',x3,y3,'m')
8.设f(x)=x5- 4x4 +3x2- 2x+ 6
(1) 在x=[-2,8]之间取100个点,画出曲线,看它有几个过零点。(提示:用polyval 函数)
>> x=linspace(2,8,100);
>> y=polyval([1 0 -4 3 -2 6],x); >> plot(x,y,'b',x,0,'y')
(2) 用roots函数求此多项式的根。 t=[1 0 -4 3 -2 6] p=roots(t)
9.建立一个字符串向量,然后对该向量做如下处理: (1) 取第1~5个字符组成的子字符串。 (2) 将字符串倒过来重新排列。 (3) 统计字符串中小写字母的个数。
>> a='abcdef123456'; >> subch=a(1:5) subch = abcde
>> revch=a(end:-1:1) revch =
654321fedcba>> k=find(a>='a'&a<='z'); >> a(k)=a(k)-('a'-'A'); >> char(a)
>> length(a) >> length(k)
10.利用帮助查找limit函数的用法,并自己编写,验证几个函数极限的例子。
2
limit(sin(x)/x) returns 1
limit((x-2)/(x^2-4),2) returns 1/4
limit((1+2*t/x)^(3*x),x,inf) returns exp(6*t) limit(1/x,x,0,'right') returns inf limit(1/x,x,0,'left') returns -inf limit((sin(x+h)-sin(x))/h,h,0) returns cos(x) v = [(1 + a/x)^x, exp(-x)]; Matlab上机实验二
1.验证所授课程的课件。 2.设x=sint, y=sin(nt+a),
(1) 若a=1,令n =1,2,3,4,在四个子图中分别画出其曲线。
(2) 若n=2,取a=0,π/3,π/2,及π,在四个子图中分别画出其曲线。 (1) a=1; x=sin(t);y1=sin(1*t+a);y2=sin(2*t+a);y3=sin(3*t+a);y4=sin(4*t+a);subplot(2,2,1);plot(x,y1);subplot(2,2,2);plot(x,y2);subplot(2,2,3);plot(x,y3);subplot(2,2,4);plot(x,y4) (2)
n=2;x=sin(t);y1=sin(2*t+0);y2=sin(2*t+pi/3);y3=sin(2*t+pi/2);y4=sin(2*t+pi);subplot(2,2,1);plot(x,y1);subplot(2,2,2);plot(x,y2);subplot(2,2,3);plot(x,y3);subplot(2,2,4);plot(x,y4) 3.绘制z?x2e?(x2
?y)2在定义域x=[-2,2],y=[-2,2]内的曲面。(利用meshgrid)
x=-2:2;y=x;[X,Y]= meshgrid(x,y);Z=X^2*exp(-(X^2+Y^2));mesh(X,Y,Z) 4.求代数方程3x5+4x4+7x3+2x2+9x+12=0的所有根。(利用roots函数) p=[3 4 7 2 9 12];roots(p)
5.把1开五次方,并求其全部五个根。(提示:解x5-1=0) p=[1 0 0 0 0 -1];roots(p)
?(?x2?4x?3)/2?3?x??1?2,画出在??3,3?上的曲线。 y???x?1?1?x?1?(?x2?4x?3)/21?x?3?6,
x1=-3:0.01:-1;y1=(-x1.^2-4.*x1-3)/2; x2=-1:0.01:1;y2=-x2.^2+1;
x3=1:0.01:3;y3=(-x3.^2+4.*x3-3)/2;plot(x1,y1);hold on; plot(x2,y2);hold on; plot(x3,y3)
Matlab上机实验三
1.设
,求
>> syms x
>> y=x*exp(2*x); Diff(y,10)
3
2.设,求
syms x
>> y=sin(x)^4+cos(x)^4; >> y^10
3.设,求
>> syms x y
>> z=y^4*sin(x)^4+x^4*cos(y)^4; >> diff(z,'x') 4.?1(x?1)(x?x)22dx
>> syms x y
>> y=1/((x^2+1)*(x^2+x)); >> int(y) 5.?(9?x)xdxx?x3236dx
>> int((sqrt((9-x^2)^3)/x^6)) 6.?21
>> syms x
>> int(1/(x+x^3),1,2) >> simple(ans)
?7.求级数的和: ?n?1n?22n (利用帮助,查找symsum)
>> syms n
>> symsum((n+2)/2^n,n-1,inf) >> simple(ans)
8.利用函数int计算二重不定积分 ?xy(x?y)edxdy??
>> syms x y
>> int(int((x+y)*exp(-x*y))) 9.设方程(1)x3(2)x?cos(x)?0?cos(a)?0,
3及(3)x3?cos(ax)?0,用符号运算工具箱函数solve分
别求x的解。用a=0.5代入,求 x的数值解,并与用roots 函数所求的结果进行比较。
>> syms x1 x2 x3
>> x1=solve('x1^3+cos(0.5)=0'); >> x2=solve('x2^3+cos(x2)=0'); >> x3=solve('x3^3+cos(0.5*x3)=0'); >> x1,x2,x3
>> p=[1 0 0 cos(0.5)]; >> roots(p)
10.求微分方程的解: y'''-y''=x,y''(2)=4,y'(1)=7,y(1)=8
4
>> syms x y
>> dsolve('D3y-D2y=x','D2y(2)=4','Dy(1)=7','y(1)=8')
11.设 x?zsin3z,y?zcos3z, 要求在z=0~10区间内画出x,y,z三维曲线。
>> z=0:0.01:10; >> x=z.*sin(3*z); >> y=z.*cos(3*z); >> plot3(x,y,z)
2212.设 z?xe2?(x?y),画出定义域x=[-2,2],y=[-2,2]内的曲面图。
>> [x,y]=meshgrid([-2:0.1:2]); >> z=x.^2.*exp(-x.^2-y.^2); >> mesh(x,y,z)
13.设z=0.05x-0.05y+0.1; 画出z的曲面(平面)图。 >> [X,Y]=meshgrid(1:10:200,1:10:200); >> Z=0.05*X-0.05*Y+0.1; >> surf(X,Y,Z)
1.编写程序计算:
(1)使用一个for/end循环,但不能使用数组运算符sum。 (2)使用数组运算符和sum,但不能使用任何for/end循环。 答:(1): 1~100相加
For循环: s=0;
for i=1:100 s=s+i; end s
(2): 1~100相加 Sum函数:
i=1:100; s=sum(i)
2.编制m文件,等待键盘输入,输入密码123,密码正确,显示输入密码正确,程序结束;否则提示,重新输入,直到正确为止。 答:function mypassword
k=0;
n=input('等待键盘输入\n'); while(k==0) if n==123
5