深入探索高级Shell脚本艺术:Anin-depth Exploration of Advanced Bash Scriptin...

需积分: 0 2 下载量 7 浏览量 更新于2024-08-02 收藏 2.46MB PDF 举报
"AdvancedBash-ScriptingGuide" 是一本深入探讨Shell脚本艺术的专业教程,由Mendel Cooper撰写,邮箱地址为<the_grendel.abs@gmail.com>。该书在2009年3月24日进行了第六次修订,名为'THIMBLEBERRY'发布,旨在为初学者提供基础,并逐步引导读者达到中级到高级的水平。作者强调实践的重要性,认为学习脚本编程的最佳方式就是动手编写。 书中假设读者对编程或脚本没有任何先验知识,但通过精心设计的章节,逐步传授了大量UNIX®技术知识和窍门。它不仅可以用作教材,供个人自学,还是一个全面的参考资源,汇集了丰富的shell脚本技巧。教程中的练习题和详尽注释示例鼓励读者积极参与,确保他们能够在实践中不断进步。 "ShellProgramming!"是本书的第一章,可能介绍了Shell编程的基本概念和环境设置,而"StartingOffWithaSha-Bang"则可能是第二章,着重于如何以Shell脚本开始编写之旅。2.1部分可能是具体的入门示例或者介绍如何在Shell环境中编写和运行第一个脚本。 这本书非常适合用作课堂教学的起点,帮助学生理解编程思维和基本原理。作者还特别将本书献给了Anita,表达了对她的深深感谢。整个教程结构严谨,内容丰富,适合那些希望深入学习Shell脚本并提升技能的读者。

识别以下MATLAB程序,并生成相应Python代码:clc clear close all syms x x0 y0 y1 y2 y3 y4 h real a = [1, x0, x0^2; 1, (x0 + h), (x0 + h)^2; 1, (x0 + 2 * h), (x0 + 2 * h)^2] \ [y0; y1; y2]; %一元二次多项式y(x) = a1 + a2 * x + a3 * x^2的系数 y(x) = a(1) + a(2) * x + a(3) * x^2; dy(x) = diff(y, 1); ddy(x) = diff(y, 2); dy_two_order_central_difference = simplify(dy(x0 + h)) ddy_two_order_central_difference = simplify(ddy(x0 + h)) a = [1, x0, x0^2, x0^3, x0^4; 1, (x0 + h), (x0 + h)^2, (x0 + h)^3, (x0 + h)^4; 1, (x0 + 2 * h), (x0 + 2 * h)^2, (x0 + 2 * h)^3, (x0 + 2 * h)^4; ... 1, (x0 + 3 * h), (x0 + 3 * h)^2, (x0 + 3 * h)^3, (x0 + 3 * h)^4; 1, (x0 + 4 * h), (x0 + 4 * h)^2, (x0 + 4 * h)^3, (x0 + 4 * h)^4] \ [y0; y1; y2; y3; y4]; %一元四次多项式y(x) = a1 + a2 * x + a3 * x^2 + a4 * x^3 + a5 * x^4的系数 y(x) = a(1) + a(2) * x + a(3) * x^2 + a(4) * x^3 + a(5) * x^4; dy(x) = diff(y, 1); ddy(x) = diff(y, 2); dy_four_order_central_difference = simplify(dy(x0 + 2 * h)) ddy_four_order_central_difference = simplify(ddy(x0 + 2 * h)) %% 验证 n = 50; x = linspace(0, 2*pi, n); h = x(2) - x(1); y = sin(x); dy = cos(x); ddy = -sin(x); dy1 = nan * zeros(size(x)); ddy1 = nan * zeros(size(x)); for i = 2 : n - 1 dy1(i) = (y(i + 1) - y(i - 1)) / (2.0 * h); ddy1(i) = (y(i - 1) - 2.0 * y(i) + y(i + 1)) / h^2; end dy2 = nan * zeros(size(x)); ddy2 = nan * zeros(size(x)); for i = 3 : n - 2 dy2(i) = (y(i - 2) - 8.0 * y(i - 1) + 8.0 * y(i + 1) - y(i + 2)) / (12.0 * h); ddy2(i) = -(y(i - 2) - 16.0 * y(i - 1) + 30.0 * y(i) - 16.0 * y(i + 1) + y(i + 2)) / (12.0 * h^2); end max_dy1_err = max(abs(dy1(2 : n - 1) - dy(2 : n - 1))); max_ddy1_err = max(abs(ddy1(2 : n - 1) - ddy(2 : n - 1))); max_dy2_err = max(abs(dy2(3 : n - 2) - dy(3 : n - 2))); max_ddy2_err = max(abs(ddy2(3 : n - 2) - ddy(3 : n - 2))); disp(['一阶导数的二阶和四阶中心差分近似,最大误差分别为:', num2str(max_dy1_err), ',' , num2str(max_dy2_err)]) disp(['二阶导数的二阶和四阶中心差分近似,最大误差分别为:', num2str(max_ddy1_err), ',' , num2str(max_ddy2_err)])

2023-07-15 上传