读书笔记-程序观点下的线性代数

线性代数的核心:向量模型

线性代数到底是一种客观的自然规律还是人为的设计?

所有程序语言的共同性在于:建立了一套模型,定义了一套语法,并将每种语法映射到特定的语义。程序员和语言实现 者之间遵守语言契约:程序员保证代码符合语言的语法,编译器/解释器保证代码执行的结果符合语法相应的语义

程序的编译和解释本质上是不同模型间的语义映射

从应用的角度看,线性代数是一种人为设计的领域特定语言(DSL),它建立了一套模型并通过符号系统完成语法和语义的映射。

建立新模型肯定依赖于现有的模型,但这是建模的手段而不是目的,任何一种新模型的目的都为了更简单地分析和解决某一类问题。线性代数在建立的时候,它的各种概念和运算规则依赖于初等数学的知识,但是一旦建立起来这层抽象模型之后,我们就应该习惯于直接利用高层次的抽象模型去分析和解决问题

模型的作用就是把一部分复杂性隐藏到模型中,使得模型的使用者可以更加简单地解决问题。

点积概念的提出属于设计,有发挥创造的余地;一旦设计定了,具体公式就不能随意发挥了,必须符合逻辑,保证它映射到初等数学模型的正确性。这就像一门高级语言可以定义很多概念,什么高阶函数、闭包等等,但是它必须保证映射到底层实现时在执行产生的效果符合其定义的规范。

我们在初等数学中学习的坐标系属于笛卡尔所提出的解析模型,这个 模型很有用,但同时也有很大的缺点。坐标系是人为加上的虚拟参考系,但是我们要解决的问题,比如求面积,图形旋转、拉伸等应用都是和坐标系无关的,建立一 个虚拟的坐标系往往无助于解决问题。

向量模型很好地克服了解析模型的缺点,如果说解析模型代表了某种“绝对性”的世界观,那么向量模型就代表了某种“相对性”的世界观,我推荐把向量模型和解析模型看作对立的两种模型

线性代数定义了矩阵和向量、矩阵和矩阵的乘法,运算规则很复杂,用来做什么也不清楚,很多初学者都不能很好地理解,可以说矩阵是学好线性代数的拦路 虎。遇到复杂的东西,往往需要先避免一头陷入细节,先从整体上把握它。其实,从程序的角度看,无论形式多么奇怪,它无非是一种语法,语法必然对应了语义, 所以理解矩阵的重点在于理解其语义。矩阵的语义不止一种,在不同的环境中有不同的语义,在同一环境中也可以有不同的解读,最常见的包括:1)表示一个线性 变换;2)表示列向量或行向量的集合;3)表示子矩阵的集合。

本文提出了一种观点:从应用的角度,我们可以把线性代数视为一门特定领域的程序语言。线性代数在初等数学基础上建立了向量模型,定义了一套语法和语义,符合程序语言的语言契约。向量模型具有坐标系无关性和线性性,它是整个线性代数的核心,是解决线性空间问题的最佳模型。

时间: 2024-12-22 19:59:41

读书笔记-程序观点下的线性代数的相关文章

[读书笔记—程序员]《高效程序员的45个习惯:敏捷开发修炼之道》- 苏帕拉马尼亚姆,亨特

虽然不记得阅读本书用了多久,但是整理本书的读书笔记用了两个小时的时间,因为本书的大部分内容对于笔者来说都是新知识,很难进行归纳总结 本书所讲的是程序员应具有的工作态度和在团队中作为开发者和领导者具备的各种"敏捷的"习惯.虽然本书对于程序员的硬实力(本书讲解的编程语言是面向对象类语言,但是讲解的代码非常少)帮助不大,但是对于程序员应该具备的软实力的培养和提高有极大的帮助,是每位程序员都应该反复阅读的书籍. 第一章 敏捷-高效软件开发之道 什么是敏捷开发方法? 2001年2月,17位志愿者

读书笔记-程序员修炼之道-序

前言 我们应该成为什么样的程序员 注重实效的程序员具备的特征 注重实效的个体大型的团队 它是一个持续的过程 前言 程序员修炼之道这本书已经通读了一遍,获益良多,但还是不甚理解,所以在重读一遍,顺便做一下笔记.由于自己水平有限,只能摘抄一下重要的词句了. 我们应该成为什么样的程序员 我们的知识背景源自于对计算机科学基本原理的理解,而我们的经验来自广泛的实践项目.理论与实践相结合使我们强大起来. 我们不应该局限于任何特定的方案,而是应该拥有足够广博知识背景和经验基础,这能够让我们在特定的情况下选择更

读书笔记-程序员修炼之道-注重实效的哲学(四)

交流 知道你想要说什么 了解你的听众 选择时机 选择风格 让文档美观 做倾听者 回复他人 交流 我相信,被打量比被忽略要好 问题是,不止是你有什么,还要看你怎么包装它,并且如何将它告诉别人.否则就算你拥有最好的主意.最漂亮的代码.或者是最注重实效的想法,最终也会毫无结果. 没有有效的交流,一个好的想法就只是一个无人关心的孤儿. 知道你想要说什么 在工作中,最困难的部分就是确切地清楚知道你想要说什么. 规划你想要说的东西,写出大纲.然后问自己:"这是否讲清了我要说的所有的内容?"提炼他,

读书笔记——程序员成长的烦恼(吴亮等)

最近在读一些技术领域相关的书籍,以了解那些传说中的技术牛人是怎样在日常生活中一点一滴积累自己的工作经验的,从而更好地让自己明白以后自己要走的这条路会遇到什么挫折,让自己更加勇敢的有准备的迎难而上. 昨天开始读程序员成长的烦恼,才明白原来现在的技术牛人在成为牛人之前都曾经经历了那么多的不如意和挫折,也为刚入IT不久的小鲜肉我坚定了从事技术开发的信念.今天读这本著作我摘抄了以下学习的几个方法供大家参考. 1:以前自己做过的项目一定要经常拿出来看,总结和改善--这一点我需要加强和改善 2:通过论坛博客

读书笔记-程序员修炼之道-注重实效的哲学(二)

石头汤与煮青蛙 村民的角度 足够好的软件 知道何时止步 石头汤与煮青蛙 三个士兵从战场返回家乡,在路上饿了.他们看见前面有村庄,就来了精神-他们相信村民会给他们一顿饭吃.但是当他们到达那里,却发现门锁着,窗户也关着.经历了多年战乱,村民们粮食匮乏,并把他们有的一点粮食藏了起来. 士兵们并未气馁,他们煮开一锅水,小心的把三块石头放进去.吃惊的村民走出来望着他们. "这是石头汤."士兵们解释说."就放石头吗?"村民们问."一点没错 - 但有人说加一些胡萝卜味道

读书笔记-程序员修炼之道-注重实效的哲学(一)

我的源码让猫给吃了 负责 软件的熵 灭火 我的源码让猫给吃了 在所有的弱点中,最大的弱点就是害怕暴露弱点. -J.B 依据你的职业发展.你的项目和你每天的工作,为你自己和你的行为负责这样一种观念,是注重实效的哲学的一块基石. 注重实效的程序员对他或者她自己的职业生涯负责,并且不害怕无知和错误. 发生错误的事情,我们要设法尽可能职业的吃力他们.这意味着诚实和坦率,我们可以为自己的能力自豪,但对于我们的缺点和我们的无知以及我们的错误,我们必须诚实. 负责 责任是你主动承担的东西,你承诺确保某件事情正

读书笔记-程序员修炼之道-注重实效的哲学(三)

你的知识资产 知识资产 经营你的资产 目标与建议 学习的机会 批判的思考 网络上请教别人的礼节与教养 你的知识资产 知识上的投资总能得到最好的回报. ---本杰明-富兰克林 我们的知识和经验是我们最重要的职业财富. 遗憾的是,它们是有时效的资产.随着新技术.语言及环境的出现.你的知识会变得过时.不断变化的市场驱动力也许会使你的知识和经验变得陈旧或者无关紧要. 这种事情可能会很快的发生. 我们知识的价值降低,对导致我们的价值也在降低.我们要阻止这样的事情,绝对不让它发生. 知识资产 程序员所知道的

how tomcat works 读书笔记 十一 StandWrapper 下

StandardWrapperValve StandardWrapperValve是StandardWrapper的基础阀,主要完成了三个工作. 1 调用StandardWrapper的allocate的方法来获得该StandardWrapper所表示的servlet实例 2 执行与该servelt相关联的全部过滤器 3 调用servlet的service方法 其中第二三步可以细分为 调用它的 private createFilterChain 方法获得过滤链 调用过滤器链的 doFilter

大话重构读书笔记——保险索下的系统重构

1. 保险索是什么? 保险索就是每次重构后正确的测试方法. 2. 什么是程序代码正确的测试方法? 在不同的场景标准是不一样的.但与其他测试不同,系统重构在测试代码正确性方面有自己独特的方法,那就是不改变软件外部行为. 3. Mock 在测试过程中,对于某些不容易构造或不容易获取的对象,用一个虚拟对象来替代以使测试得以继续的方法 4. 自动化测试不是银弹,不是所有代码都适合自动化测试: a. 与web容器或其他设备驱动相关的代码是不适合自动化测试的,因为我们在测试的时候不希望去启动web容器或其他