matlab实验三程序设计与优化

news/2024/11/7 5:38:13/

学聪明点,自己改,别把我卖了

一、实验目的及要求
一、实验的目的与要求
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)) / 2
a;
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

五、实验分析与总结
实验过程比较艰难需要借助网上查询完成,还有许多问题仍然需要解决。


http://www.ppmy.cn/news/68023.html

相关文章

MPLS格式和802.1q帧格式,ISL格式

一.MPLS IETF开发的多协议标记交换&#xff08;MPLS)把第2层的链路状态信息&#xff08;带宽、延迟、利用率等&#xff09;集成到第3层的协议数据单元中&#xff0c;从而简化和改进了第3层分组的交换过程 。理论上&#xff0c;MPLS支持任何第2层和第3层协议。MPLS包头的位置界…

Linux下rsync+inotify实现实时文件同步

一、【接收端配置】 #cat /etc/rsyncd.conf uid root gid root max connections 8 pid file /var/run/rsyncd.pid log file/var/log/rsyncd.log hosts allow 192.168.3.0/24 [dkms] read onlyno write onlyno path/data/digitalkey/upload/dkms commentdkms update auth u…

还在为项目初始化、依赖管理问题困扰?Dubbo Initializer 来了!

作者&#xff1a;Dubbo 社区 通过这篇文章&#xff0c;你将学习如何在 1 分钟内用 Dubbo Initializer 模板快速创建 Dubbo Spring Boot 项目&#xff0c;帮你解决项目初始化问题。 什么是 Dubbo Initializer&#xff1f; Dubbo Initializer 是一款帮助开发者快速生成 Dubbo …

Doris的分区Partition和分桶Bucket介绍

Doris的分区Partition和分桶Bucket介绍 Doris数据库是一个分布式的列式存储数据库&#xff0c;它支持分区和分桶两种数据划分方式 分区&#xff1a;Doris数据库支持水平分区&#xff0c;即将数据按照某个字段的值进行分区&#xff0c;相同的值会被分配到同一个分区中。这种方…

C语言小游戏的实现——三子棋

前言 Hello&#xff01;友友们&#xff0c;前边我们已经学习了C语言的基础知识&#xff0c;但单纯的理论和简单的代码演示是无法真正做到巩固所学的知识的&#xff0c;那么今天我将会带领大家&#xff0c;根据之前所学的知识&#xff0c;来写一个三子棋小游戏。 目录 前言 总…

PMP之预测部分

引论 什么是项目 项目是为创造独特的产品、服务或成果而进行的临时性工作。 项目管理是把事办成的方法论&#xff0c;万物皆可项目。 项目的基本要素 项目&#xff08;独特性、临时性&#xff09;、驱动变更、启动背景、创造商业价值。 组织级项目管理&#xff08;OPM&am…

泰克示波器MSO54B 5-BW-1000,4通道1G带宽

泰克MSO5B系列示波器&#xff0c;支持广泛的特定应用测量&#xff0c;满足您的各种需求。单独添加高级分析程序包或安装应用程序包&#xff0c;以处理更多不同的工作。 支持超过 25 种串行协议&#xff0c;覆盖常见的接口先进的单相和三相功率分析程序包确保信号完整性和电源完…

python列表平铺

嵌套的列表数据: lst = [1,2,[3,4],5,[6,[7,8]]] 大多数情况下不知道最深的嵌套是第几层,所以每次只能使用递归去解决平铺问题。代码如下: def flatten_list(nested_list):result = []for item in nested_list:if isinstance(item, list):result.extend(flatten_list(item…