《数学软件》实验指导书
实验一 matlab运算基础
实验目的:
熟悉matlab?编程环境,掌握建立矩阵的方法。
实验内容:
1. 设有矩阵A和B
,
求他们的乘积C。
将矩阵C的右下角3*2子矩阵赋给D
clc
clear
A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20;21,22,23,24,25];
B=[3,0,16;17,-6,9;0,23,-4;9,7,0;4,13,11];
C=A*B
D=C(3:5,2:3)
2. 完成下列操作:
求[100,999]之间能被21整除的数的个数。提示:先利用冒号表达式,再利用find和length函数。
建立一个字符串向量,删除其中的大写字母。提示:利用find函数和空矩阵。
%P286 T4
clc
clear
x=100:999;
y1=find(rem(x,21)==0);
length(y1)
s='ABCabcD12f';
l=s>'A' & s
s(l) = []
实验二 选择结构程序设计
实验目的:
掌握建立和执行M文件的方法,实现选择程序设计的方法。
实验内容:
求下列分段的值:
要求:
用if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y值。提示:x的值可以从键盘输入,可以是向量。
用逻辑表达式实现。
x=input('please enter x value:');
L=( x<0 & x~=-3);
Y(L)=x(L).^2+x(L)-6;
L=(x>=0&x~=2&x~=3&x<10);
Y(L)=x(L).^2-5*x(L)+6;
y=x.^2-x-1;
实验三 循环结构程序设计
实验目的:
掌握实现循环程序设计的方法,利用向量运算来代替循环操作的方法。
实验内容:
根据,求的近似值。当n分别取100、1000、10000时,结果是多少?要求:分别用循环结构和向量运算(使用sum函数)来实现。
%P288 T1
clc
clear
n=input('Please enter n:');
y1=0;
for i=1:n;
y1=y1+1/i/i;
y=sqrt(6*(y1));
end
%P288 T1
n=input('Please enter the number n:');
i=1:n;
f=1./i.^2;
y1=sum(f);
y=sqrt(6*(y1))
实验四 函数与文件
实验目的:
掌握定义和调用matlab函数的方法,掌握matlab文件的基本操作。
实验内容:
一个自然数是素数,且它的各位数字位置经过任意对换后仍为素数,则称是绝对素数。例如13是绝对素数。试求所有两位的绝对素数。要求:定义一个判断函数的函数文件。
for i=10:99
a = floor(i/10);
b = mod(i,10);
ii = b*10 + a;
if sushu(i) & sushu(ii)
i
end
end
function flag = sushu(i)
flag=1;
for j=2:i/2
if mod(i,j)==0
flag=0;
end
end
实验五 高层绘图操作
实验目的:
掌握绘制二维、三维图形的常用函数。
实验内容:
已知,完成下列操作:
在同一坐标系下用不同的颜色和线型绘制3条曲线。
以子图形式绘制3条曲线。
分别用条形图、阶梯图、杆图和填充图绘制3条曲线。
绘制函数的曲面图和等高线。
%
% P290_1
x=(0:pi/10:2*pi);
y1=x.^2;
y2=cos(2*x);
y3=y1.*y2;
plot(x,y1,'r-.',x,y2,'b-',x,y3,'c:');
figure;
subplot(2,2,1);
plot(x,y1,'r-.');
subplot(2,2,2);
plot(x,y2,'b-');
subplot(2,2,3);
plot(x,y3,'c:');
figure;
subplot(2,2,1);
bar(x,y1,'r');
title('bar');
subplot(2,2,2);
stairs(x,y1,'g');
title('stairs');
subplot(2,2,3);
stem(x,y1,'b');
title('stem');
subplot(2,2,4);
fill(x,y1,'y');
title('fill');
%
% P290_4
figure;
% x=-10:0