数学实验作业汇总文稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-(1)产生一个5阶魔方矩阵M:M=magic(5)(2)将矩阵M的第3行4列元素赋值给变量t:t=M(3,4)(3)将由矩阵M第2,3,4行第2,5列构成的子矩阵赋给变N:N=M(2:4,2:3:5)(4)将由矩阵M的前3行赋给变量N:N=M(1:3,:)(5)将由矩阵M的后3列赋给变量N:N=M(:,end:-1:end-2)(6)提取M的主对角线元素,并以这些对角线元素构成对角矩阵N:N=diag(diag(M))或N=tril(triu(M))(7)随机产生1000个100以内的整数赋值给变量t:t=round(rand(1,1000)*100)(8)随机产生100*5个100以内的实数赋值给变量M:M=rand(100,5)*100(1)删除矩阵M的第7个元素M(7)=[](2)将含有12个元素的向量t转换成3*4的矩阵:reshape(t,3,4)(3)产生和M同样大小的单位矩阵:eye(size(M))(4)寻找向量t中非零元素的下标:find(t)(5)逆序显示向量t中的元素:t(end:-1:1)(6)显示向量t偶数位置上的元素:t(2:2:end)(7)利用find函数,将向量t中小于10的整数置为0:t(find(t<10&rem(t,1)==0))=0(8)不用find函数,将向量t中小于10的整数置为0:t(t<10&rem(t,1)==0)=0(9)将向量t中的0元素用机器0(realmin)来代替:t(find(t=0))=realmin(10)将矩阵M中小于10的整数置为0:M(find(M<10)&rem(M,1)==0)=02、写出完成下列操作的命令及结果。
(1)将1~50这50个整数按行优先存放到5*10的矩阵中,求该矩阵四周元素的和;>> t=[1:10];>>M=[t;t+10;t+20;t+30;t+40]M =1 2 3 45 67 8 9 1011 12 13 14 15 16 17 18 19 2021 22 23 24 25 26 27 28 29 3031 32 33 34 35 36 37 38 39 4041 42 43 44 45 46 47 48 49 50>>N=M(2:4,2:9)N=12 13 14 15 16 17 18 1922 23 24 25 26 27 28 2932 33 34 35 36 37 38 39>> sum(sum(M))-sum(sum(n))ans =6632)n取100、1000、10000,求序列1、1/2、1/3……1/n的和。
>> n=100;>> t=[1:n];>> format rat>> M=t.^-1;>> S=sum(M)S =2630/507>>?n=1000;>> t=[1:n];>> format rat>> M=t.^-1;>> S=sum(M)S =1804/241>>?n=10000;>> t=[1:n];>> format rat>> M=t.^-1;>> S=sum(M)S =1106/1131.在同一坐标系下绘制y1=sin(t),y2=sin(2t),y3=sin(3t),其中y1的数据点用星号,线形为黑色虚线,y2的数据点用方块,线形为红色实线,y3的数据点用小圆圈,线形为蓝色点线。
(要求采用一次绘出和逐次填加两种方式完成绘图)>> t=linspace(0,2*pi,100);>> y1=sin(t);>> y2=sin(2*t);>> y3=sin(3*t);>> plot(t,y1,’*k:’,t,y2,’sr-’,t,y3,’ob-.’)>> t=linspace(0,2*pi,100);>> y1=sin(t);>> plot(t,y1,’*k:’)>> hold on>>y2=sin(2*t);>> plot(t,y2,’sr-’)>> hold on>> y3=sin(3*t);>> plot(t,y3,’ob-.’)>> hold off2.分别用plot和fplot函数绘制y=sin(1/x)的曲线,分析两曲线的差别>> x=linspace(0,1/(2*pi),100);>> y=sin(x.^-1);>> plot(x,y,’*-’)>> fplot(’sin(x.^-1)’,[0,1/(2*pi)],’o-’)两曲线的差别:plot曲线在确定自变量x的取值间隔时采用平均间隔,图像不是十分准确;fplot曲线自动取值,在函数值变化平稳时,它的数值点会自动相对稀疏一点,在函数值变化剧烈处,所取点会自动密集一点,所以曲线更加光滑准确。
6.已知曲面方程f(x,y)= ,x∈ [-1.5π,1.5π],y∈ [-2.5π,2.5π],用建立子窗口的方法在同一图形窗口绘制出三维线图,网线图,曲面图。
>> x=-1.5*pi:pi/50:1.5*pi;>> y=-2.5*pi:pi/50:2.5*pi;>> [X,Y]=meshgrid(x,y);>> Z=sin(sqrt(X.^2+Y.^2))./sqrt(1+X.^2+Y.^2);>> subplot(1,3,1);plot3(X,Y,Z);>> subplot(1,3,2);mesh(X,Y,Z);>> subplot(1,3,3);surf(X,Y,Z);8.将peaks函数生成的最高峰削去,并用色图矩阵“cool”修饰。
>> [x,y,z]=peaks(30);>> x1=x(1,:);y1=y(:,1);>> i=find(y1>1&y1<3);>>j=find(x1>-1&x1<1);>> z(i,j)=NaN*z(i,j);>> surf(x,y,z)>> colormap(cool)3.定义一个函数,函数的自变量为整数n,函数的功能是:随机产生n个三位整数,将其中小于平均值的数用0代替。
function [mean,x]=ff (n) x=floor (100+899*rand (1,n)); m=length (x);mean=sum (x)/m; x (x<mean)=0;4.编写函数,用来求下列函数的和,并给出n分别为100,1000,10000时,下列各式的值。
function y=s(n)y=1;for i=1:1:nx=4*i^2/(4*i^2-1);y=y*x;enddisp(y)s(100)=1.5669s(1000)=1.5704s(10000)=1.57085.通过命令文件实现:随机产生20个数,输出其中的最大数和最小数。
通过函数文件实现:随机产生n个数,输出其中的最大最小数。
命令文件>> t=rand(1,20);>> disp('max=');disp(max(t))max=0.7942>> disp('min=');disp(min(t))min=0.0503函数文件function f3(n)t=rand(1,n);disp('max=');disp(max(t));disp('min=');disp(min(t));end3.求下列函数的一阶和二阶导数>> syms x>> diff(2/tan(x)+cos(x)/3,’x’,1)ans =- sin(x)/3 - (2*(tan(x)^2 + 1))/tan(x)^2>> syms x?diff(2/tan(x)+cos(x)/3,’x’,2)4.求积分>> syms xint(sqrt(exp(x)+1),x)ans =2*(exp(x) + 1)^(1/2) + 2*atan((exp(x) + 1)^(1/2)*i)*i5.求下列级数的和>> syms n>> s=symsum((-1)^(n+1)*1/n,1,inf)s =log(2)6.求函数在x=0处的泰勒展开式>> syms x>> taylor((exp(x)+exp(-x))/2,x,5,0)ans =?x^4/24 + x^2/2 + 11.利用randn函数声称符合正态分布的10*5随机矩阵A,进行以下操作:(1).A的各列元素的均值和标准方差(2).A的最大元素及其所在位置(3).A的每行元素的和以及全部元素之和(4).分别对A的每行元素按升序排序(5).将A中的每行元素的总和按从大到小的顺序存入line_sum中,相应的行号存入line_num中>> A=randn(10,5);>> a1=mean(A)>> a2=std(A)>> AA=max(max(A))>> [i j]=find(A==AA)>> a3=sum(A,2)>> a4=sum(sum(A))>> a5=sort(A,2)>> [line_sum,line_num]=sort(sum(A,2),'descend')2、补充题:利用导入向导(或借助函数imread)导入一幅单色图片存入变量ima_data中,然后依次完成下列操作:(1)用imshow函数显示图片;(2)删除图片前若干行(例如前100行)再次显示该图片。
(3)将图片上、下翻转再次显示图片。
先找到一个.bmp的文件,把它放入工作目录下,并修改名称为‘1.bmp’,执行下列操作。
ima_data=imread(’1.bmp’);(1)imshow(ima_data);(2)a=ima_data(101:end,:);imshow(a);(3)imshow(flipud(ima_data));3.下表所示是0~90度内某些数的正弦近似值利用线性、样条差值求x=20、40、80度时正弦值,这两种方法哪个好?为什么实验步骤:利用inerp1函数先分别求出线性插值和三次样条插值所得到的y11和y12,再利用sin(x)函数得到准确的y1,比较y11和y1,y12和y12,不难得出结论。