一、实验目的及要求
一、实验的目的与要求
1、掌握 MATLAB的函数
2、掌握 MATLAB的程序流
3、掌握 MATLAB脚本和函数文件的编写
4、熟悉基于矩阵的程序设计与优化
二、实验原理
1、MATLAB的M文件:脚本文件与函数文件;
2、MATLAB程序流:input、disp、if 语句、for语句、while语句、swich case结构和try catch结构;
3、函数文件,匿名函数,文件中的函数;
4、MATLAB程序设计与优化:向量化设计代替循环语句、预定义变量等;
二、实验设备及要求
PC机100台及MATLAB软件
三、实验内容与步骤
(1)编写求解方程的根的函数(a,b,c的取值由用户输入决定),要求能够判断方程组解的情况,从而控制函数的输出。注:① 有输入参数的提示(如输入参数个数是否准确?缺省时如何处理?) ②在屏幕打印解的情况 ③最后输出具体解的值。
(2)输入一个百分制成绩,要求输出成绩等级A+、A、B、C、D、E。其中100分为A+,90分~99分为A,80分~89分为B,70分~79分为C,60分~69分为D,60分以下为E。要求:
① 用switch语句实现;
② 输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
(3)求指定区间内第二个能被n整除的整数。例如求区间[200,500]中第二个能被32整除的整数。要求:
① 判断输入的合理性,输入参数必须是正整数,否则,重新输入,直到输入为整数才进行下一步。
② 写成函数文件,可灵活更改区间范围和整数n的值。
(4)根据,,当分别取100、1000和10000时,求的近似值,分别用循环语句和向量化的程序设计实现。注:向量化是指借助matlab中矩阵形式运算,速度较循环过程快。
四、实验结果与数据处理
实验结果截图:
(1):
实验代码:入
a = input('a = ');
b = input('b = ');
c = input('c = ');
if isempty(a) || isempty(b) || isempty©
disp(‘ERROR with empty input!’);
elseif a0 && b0 && c~=0 % 是否为 c = 0 的错误输入
disp(‘ERROR with identical inequation!’);
elseif a==0 && b~=0 % 是否为一次方程
x = -c / b;
disp(x);
Else
delta = b^2 - 4ac;
x1 = (-b + sqrt(delta)) / 2a;
x2 = (-b - sqrt(delta)) / 2a;
disp([x1, x2]);
end
clearvars
(2):
实验代码:score = input('score = ');
if score<=100 && score>=0
score = floor(score/10);
switch(score)
case 10
fprintf(‘A+’);
case 9
fprintf(‘A’);
case 8
fprintf(‘B’);
case 7
fprintf(‘C’);
case 6
fprintf(‘D’);
otherwise
fprintf(‘E’);
end
else
fprintf(‘ERROR!’);
end
(3):
(4):
实验代码:
n = 100;
approx_pi = 0;
for i = 1:1:n
approx_pi = approx_pi + 1/(i^2);
end
approx_pi = sqrt(6 * approx_pi)
clearvars approx_pi % 清除变量 approx_pi
% 向量化,表示成 (1,n)*(n,1) 的矩阵乘法
approx_pi = (1 ./ (1:1:n).^2) * ones(n, 1); % 运用 ./ 和 .^
approx_pi = sqrt(6 * approx_pi)
clearvars
五、实验分析与总结
实验过程比较艰难需要借助网上查询完成,还有许多问题仍然需要解决。