数学软件测试有感

(2009-07-27 19:40:29)

标签:

杂谈

这些年,虽然经常看一些算法的书,特别是和计算几何相关的内容,但编程能力一直没什么提高,反而日益下降。这让做程序员的大哥是很不高兴的,而我的兴趣只是在数学教育而已。

编程虽然不行,但使用过的软件还是不少,不知不觉所使用的数学软件有已数十种之多。每拿到一个软件,只要觉得还有可取之处,就会把帮助文件从头到尾看一遍,所附案例看一遍,然后把所有菜单、工具条一一使一次,所谓地毯式操作!

在逐步使用、熟悉数学软件的同时,也在思考其中的设计原理,以及为什么程序员的设计让用户不爽,而用户操作辛苦却不能达到预期的效果。

软件有做得好的,也有糟糕的。这都是很正常的,就好比人无完人,金无足赤一样。软件有其特色,因此能够在江湖上占一席之地。而软件有bug,虽然有些还不足以致命,但给用户的印象却很不好。

有些bug,是设计人员考虑不周造成的,有的则是数学上存在问题,需要一个更为高级的算法才能解决,这与程序员的编程水平关系不大。

下面举例说明。平时碰到的例子很多,但基本上很少整理;久而久之,就淡忘了。

例1:反比例函数

y=1/x在第一象限的图形,在靠近y轴的部分,画得不齐全。这个问题在相当多的数学软件中都会出现。譬如微软math

3.0,在拖动坐标系的时候,y=1/x在靠近y轴的部分总是一闪一闪的。

有人问过我,为什么这么简单的一个函数计算机画不出来呢?

这 个问题并不难解释。很多朋友都学会高等数学,而高等数学中有两个基本概念:连续与一致连续。y=1/x

(x>0) 是连续的,但不是一致连续的。通俗地讲,y=1/x (x>0)

图像没有断点,但存在这样的两点 x1 , x2 ,当 x1与 x2 相当接近时 y1 与 y2的距离却是相当远。

计算机作图都是先描绘足够多的样本点,然后连线,有时会用到一些插值算法使图像平滑,但更多的时候都是利用增加样本点来使得图像精确。

y=1/x在靠近y轴的时候,样本点之间距离相差很远,即使增加样本点,也不能从根本上解决这个问题,这是数学本身决定的。当然,增加一些样本点,图像还是会好很多。

根本上解决作图问题,需要从数学角度出发,想一个更巧妙的算法。此处从略。

与此类似的情况还有tan(x)在x趋向于pi/2的时候,也会有类似问题。不单是图形出问题,连计算都可能出问题。

让 人难以接受的是 一些作圆锥曲线的时候,竟然端点处断开。这是很低级的错误,但犯这样的错误的软件不少,包括微软的math3.0

,让人大跌眼镜。出现这样问题的原因也是类似的,就是代表点x的变化速度与y的变化相差较大,出现了跳跃,因此有了断点。其实用简单的参数方程作图,不就

很容易解决了吗,为什么一定要直角方程函数作图呢?

(未完待续)

分享:

喜欢

0

赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

软件测试需要学数学,数学软件测试有感相关推荐

  1. 软件测试要学什么?软件测试学习路线资料分享

    软件测试要学什么?软件测试学习路线资料分享.软件测试在现在互联网行业属于稀缺岗位,相对来说零基础学软件测试比较好入手,重点是自己的兴趣,哪怕你是一个刚出来的应届生,专业不是计算机,学软件测试也是比较好 ...

  2. 软件测试需要学什么?软件测试难学吗?简单几句让你认识

    IT行业发展快,薪资待遇高,已经成为了很多人转行的首选行业之一.其中呢,软件测试的学习难度较小.入行门槛较低,很适合IT小白学习.那么软件测试需要学什么?软件测试难学吗?今天小编就为大家详细介绍一下. ...

  3. 软件测试都学什么技能?软件测试职业方向在哪里?

    软件测试一般学什么技能?该如何规划职业方向?有些朋友对软件测试这个行业可能还比较陌生,这么说吧,有人把功能开发比喻成盖一座房子,那么软件测试技术人员就是对盖房子所用的材料.外观样式.工程图纸.抗震性和 ...

  4. 软件测试技术学什么条件,软件测试从业者需要具备哪些技能

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 软件测试工程师需要具备哪些基本能力?相信这些问题是很多刚刚入行学习软件测试的新手们疑惑且急于想要了解的. 为此,小编简单的总结了一些软件测试工程师需要具备 ...

  5. 软件测试需要学什么?软件测试技能图谱

    很多新手,不知道软件测试学习该如何开始,软件测试需要掌握哪些知识.下面是根据本人的理解,粗略整理的一个学习大纲,基本上涵盖了软件测试工程师需要掌握的全部技能,希望对刚入行或者准备学习测试的朋友提供一点 ...

  6. 信奥要学哪些数学知识 学信奥要不要先学python

    少儿编程要不要学? https://www.douyin.com/video/7170273165585681664 恒者无敌 https://www.douyin.com/video/7124331 ...

  7. 计算MATLAB时间复杂度的例子,学编程数学到底有多重要?线性代数能否视为一门程序语言呢?...

    点击上方蓝色字体,关注我们 相信这么努力的你 已经星标了我 老九学堂 你身边的IT导师 学编程数学到底有多重要?在大学数学学科中线性代数是最为抽象的一门课从初等数学到线性代数思维跨度比微积分和概率统计 ...

  8. 作者:男,博士,西南财经大学经济数学学院讲师、硕士生导师

    杨扬(1987-),男,博士,西南财经大学经济数学学院讲师.硕士生导师,主要研究方向为信用风险管理.管理信息系统.集团管控.风险投资.

  9. 笨办法学python3_软件测试需要学什么(个人软件测试学习路线)

    快转正啦,要写转正评审ppt,顺带就总结了下个人学习路线,仅供参考.初学者不要看晕了,学完基础就可以找实习啦,其他的慢慢来~ 先附上xmind,简洁明了 1.长期学习软件测试理论 其中包括测试方法熟练 ...

  10. python做软件测试需要那些条件_做软件测试需要学什么

    软件测试是使用人工或自动的手段来运行或测定某个软件系统的过程,随着信息化时代的发展,这一职业的发展前景也越来越好,那么做软件测试需要学什么?测试方法有哪些呢? 软件测试需要学什么 软件测试需要学习测试 ...

最新文章

  1. Android图像开源视图:SmartImageView
  2. windows环境搭建golang的gin框架简易教程
  3. ES6新特性之Promise
  4. NDK编译c包含C++头文件时,出现 error: unknown type name 'class' 的解决方法
  5. 代数学笔记11: 分圆域,分圆多项式,求解17次方程
  6. 【registry】 javax.el.ExpressionFactory.newInstance()Ljavax/el/ExpressionFactory;
  7. 小白想了解C语言?这一篇就够了hh!
  8. 2021年2月十大热门报告盘点(附百大热门报告列表及下载链接)
  9. android 开发热更新技术Andfix 和 Tinker
  10. 热血江湖辅助制作视频教程
  11. 将DLL注册成COM组件
  12. 广州大学机器学习与数据挖掘实验一
  13. linux otl mysql_Linux下用OTL操作MySql(包含自己封装的类库及演示样例代码下载)...
  14. CMSC5713-IT项目管理之四、项目规划Project Planning
  15. 2020考研计算机(408)考试大纲
  16. 信号完整性(SI)概述
  17. IPv6实验NDP地址解析和DAD
  18. 浅谈Python中的type()、dtype()、astype()的区别
  19. 双臂魔方机器人的学习
  20. VMware运行虚拟机卡慢等解决办法

热门文章

  1. Linux - Yocto: 创建toolchain
  2. 聚类分析原理及R语言实现过程
  3. Apache Flink 在双十一流量洪峰下的最佳实践
  4. netbeans java桌面应用程序_java – 使用Netbean的桌面应用程序的状态栏
  5. Android包管理机制(二)PackageInstaller安装APK
  6. U盘量产大致研究思路
  7. 计算机网络(24)——轮转访问MAC协议
  8. 《学习笔记》使用AngularJS模板来创建视图
  9. 计算机技巧:Vmware虚拟机恢复物理机GHOST备份
  10. IE Tab Plus 安装设置说明