热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Matlab实现工程与科学问题-第三章个人解析

作为一名在读大学生,本文分享了我对《工程与科学中的Matlab应用》第三章习题的个人解决方案。欢迎通过私信或评论进行交流和讨论,但不接受任何形式的权威指导。文中提供了详细的代码实现,旨在促进学习和共同进步。

作为一名在读大学生,本文分享的是我个人对《工程与科学中的Matlab应用》第三章习题的理解和解决方法。欢迎通过私信或评论进行交流和讨论,但不接受任何形式的权威指导。为了便于阅读和学习,本文仅提供代码实现,而不展示运行结果。随着学习的深入,部分内容可能会有所调整,敬请期待更新。


3.1



function V = Volume(R, d)
% Volume(R, d) 计算给定半径R和高度d的圆柱形容器内液体的体积
% d 为液体高度,R 为圆柱体的半径
if d <= R
V = 1/3 * pi * R^2 * d;
elseif d > 3 * R
error('水位过高');
else
V = 1/3 * pi * R^2 * R + pi * R^2 * (d - R);
end


3.2


function F = futureworth(P, i)
% futureworth 计算初始金额P在特定利率i下的未来价值
% P 为本金,i 为年利率
n = 1:10;
P = input('请输入本金: ');
i = input('请输入年利率: ');
F = P * (1 + i).^n;
z = [n; F];
fprintf(' 年数 未来价值\n');
fprintf('%5d %10.3f\n', z);
end


3.3


function A = loanPayment(P, i)
% loanPayment 根据贷款金额P和年利率i计算年度还款额
n = 1:5;
P = input('请输入贷款金额: ');
i = input('请输入年利率: ');
A = P * (i * (1 + i).^n) ./ ((1 + i).^n - 1);
z = [n; A];
fprintf(' 年数 还款额\n');
fprintf('%5d %8.3e\n', z);
end


3.4


function [] = averageTemp(Tmean, Tpeak)
% averageTemp 计算年平均温度和峰值温度下某段时间内的温度变化
% Tmean 为年平均温度,Tpeak 为峰值温度
t = 180:242;
w = 0.017;
Tmean = input('请输入年平均温度: ');
Tpeak = input('请输入峰值温度: ');
T = Tmean + (Tpeak - Tmean) .* cos(w * (t - 205));
end


3.5


function [] = sinApproximation(x)
% sinApproximation 使用泰勒级数近似计算sin(0.9)
Q = sin(0.9);
V1 = x;
wucha1 = (Q - V1) / Q;
percentage1 = sprintf('%2.5f%%', abs(wucha1 * 100));
yijie = sprintf('%2.5f', V1);
V2 = x - x^3 / factorial(3);
wucha2 = (Q - V2) / Q;
percentage2 = sprintf('%2.5f%%', abs(wucha2 * 100));
erjie = sprintf('%2.5f', V2);
V3 = V2 + x^5 / factorial(5);
wucha3 = (Q - V3) / Q;
percentage3 = sprintf('%2.5f%%', abs(wucha3 * 100));
sanjie = sprintf('%2.5f', V3);
V4 = V3 - x^7 / factorial(7);
wucha4 = (Q - V4) / Q;
percentage4 = sprintf('%2.5f%%', abs(wucha4 * 100));
sijie = sprintf('%2.5f', V4);
V5 = V4 + x^9 / factorial(9);
wucha5 = (Q - V5) / Q;
percentage5 = sprintf('%2.8f%%', abs(wucha5 * 100));
wujie = sprintf('%2.5f', V5);
V6 = V5 - x^11 / factorial(11);
wucha6 = (Q - V6) / Q;
percentage6 = sprintf('%2.9f%%', abs(wucha6 * 100));
liujie = sprintf('%2.5f', V6);
V7 = V6 + x^13 / factorial(13);
wucha7 = (Q - V7) / Q;
percentage7 = sprintf('%2.15f%%', abs(wucha7 * 100));
qijie = sprintf('%2.5f', V7);
V8 = V7 - x^15 / factorial(15);
wucha8 = (Q - V8) / Q;
percentage8 = sprintf('%2.16f%%', abs(wucha8 * 100));
bajiejie = sprintf('%2.5f', V8);
end


3.6


(此处省略图片)


3.7


function [] = coordinateConversion()
% coordinateConversion 将直角坐标系下的点转换为极坐标系下的表示
x = [2; 2; 0; -3; -2; -1; 0; 0; 2];
y = [0; 1; 3; 1; 0; -2; 0; -2; 2];
r = sqrt(x.^2 + y.^2);
theta = atan2(y, x);
q = [x, y, r, theta];
fprintf(' x y r theta\n');
fprintf('%5d %5d %8.5f %8.6f\n', q);
end


3.8


function lettergrade(score)
% lettergrade 根据分数score返回相应的字母等级
if score >= 90
disp('A');
elseif score >= 80
disp('B');
elseif score >= 70
disp('C');
elseif score >= 60
disp('D');
else
disp('F');
end
end


3.9


function speed()
% speed 计算不同条件下的流速
n = [0.036, 0.020, 0.015, 0.030, 0.022];
S = [0.0001, 0.0002, 0.0012, 0.0007, 0.0003];
B = [10, 8, 20, 25, 15];
H = [2, 1, 1.5, 3, 2.6];
U = (sqrt(S) ./ n) .* ((B .* H) ./ (B + 2 * H)).^(2/3);
fprintf('n S B H U\n');
fprintf('%4.3f %5.4f %2d %2.1f %5.4f\n', [n; S; B; H; U]);
end


3.10


function displace()
% displace 计算并绘制给定区间的位移曲线
x = 0:9;
y = ((57/6)*x.^3 - 238.25*x) .* (x == 0) + ...
((-5/6)*x.^4 + (57/6)*x.^3 - 238.25*x) .* (x > 0 & x <= 5) + ...
((-5/6)*(x.^4 - (x - 5).^5) + (57/6)*x.^3 - 238.25*x) .* (x > 5 & x <= 7) + ...
((-5/6)*(x.^4 - (x - 5).^5) + 75*(x - 7).^2 + (57/6)*x.^3 - 238.25*x) .* (x > 7 & x <= 8);
plot(x, y);
end


推荐阅读
  • 开发笔记:图像分割基于阙值+边缘检测+区域法图像分割matlab源码含GUI
    开发笔记:图像分割基于阙值+边缘检测+区域法图像分割matlab源码含GUI ... [详细]
  • Node.js 入门指南(一)
    本文介绍了Node.js的安装步骤、如何创建第一个应用程序、NPM的基本使用以及处理回调函数的方法。通过实际操作示例,帮助初学者快速掌握Node.js的基础知识。 ... [详细]
  • 本文档详细介绍了思科交换机的基本配置命令,包括进入特权模式、配置交换机名称及密码、VLAN配置、端口访问、查看配置信息、恢复出厂设置以及远程登录设置等。 ... [详细]
  • 本文旨在介绍在iOS平台进行直播技术开发前的准备工作,重点讲解AVFoundation框架的基本概念和使用方法。通过对AVFoundation的深入理解,开发者能够更好地掌握直播应用中的音视频处理技巧。 ... [详细]
  • Docker入门与实践指南
    本文介绍了Docker的基础知识,包括其作为开源应用容器引擎的特点,以及如何利用Docker将应用程序及其依赖项打包成轻量级的容器镜像。同时,还详细讲解了Docker的核心概念、安装过程及基本命令操作。 ... [详细]
  • FFPlay 字幕与LRC歌词播放指南
    本文详细介绍了不同媒体容器支持的字幕格式,以及如何使用FFPlay和FFMPEG进行字幕和LRC歌词的播放与转换。涵盖的内容包括字幕显示方法、字体配置、字幕流选择等。 ... [详细]
  • 本文探讨了在使用Apache Flink向Kafka发送数据过程中遇到的事务频繁失败问题,并提供了详细的解决方案,包括必要的配置调整和最佳实践。 ... [详细]
  • 本文介绍了进程的基本概念及其在操作系统中的重要性,探讨了进程与程序的区别,以及如何通过多进程实现并发和并行。文章还详细讲解了Python中的multiprocessing模块,包括Process类的使用方法、进程间的同步与异步调用、阻塞与非阻塞操作,并通过实例演示了进程池的应用。 ... [详细]
  • sqlserver动态分区方案例子
    sqlserver动态分区方案例子当我们存储的数据量比较大时,比如超过千万,上亿级别时单纯的使用索引可能效果不明显了,此时我们可以考虑采 ... [详细]
  • 本文探讨了使用Filter作为控制器的优势,以及Servlet与Filter之间的主要差异。同时,详细解析了Servlet的工作流程及其生命周期,以及ServletConfig与ServletContext的区别与应用场景。 ... [详细]
  • ServletContext接口在Java Web开发中扮演着重要角色,它提供了一种方式来获取关于整个Web应用程序的信息。通过ServletContext,开发者可以访问初始化参数、共享数据以及应用资源。 ... [详细]
  • Flowable 6.6.0 表单引擎在Web应用中的集成与使用
    本文档提供了Flowable 6.6.0版本中表单引擎在Web应用程序中的配置和使用指南,包括表单引擎的初始化、配置以及在Web环境下的具体实现方法。 ... [详细]
  • 本文探讨了STL迭代器的最佳实践,包括iterator与const_iterator、reverse_iterator及其const版本之间的关系,以及如何高效地转换和使用这些迭代器类型。 ... [详细]
  • 使用Jenkins构建Java项目实践指南
    本指南详细介绍了如何使用Jenkins构建Java项目,包括环境搭建、工具配置以及项目构建的具体步骤。 ... [详细]
  • 构建Python自助式数据查询系统
    在现代数据密集型环境中,业务团队频繁需要从数据库中提取特定信息。为了提高效率并减少IT部门的工作负担,本文探讨了一种利用Python语言实现的自助数据查询工具的设计与实现。 ... [详细]
author-avatar
Li-zHihuAn
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有