matlab 格雷厄姆算法

时间: 2023-11-13 20:56:17 浏览: 42
Matlab中的格雷厄姆算法(Graham Scan)是一种求解凸包的算法,其基本思想是:先找到所有点中y坐标最小的点,然后按照极角从小到大的顺序对其余点进行排序,最后依次加入凸包中。具体实现可以参考以下代码: ```matlab function [hull] = graham_scan(points) % points: n*2的矩阵,表示n个点的坐标 % hull: 凸包上的点的坐标 % 找到y坐标最小的点 [~, idx] = min(points(:, 2)); p0 = points(idx, :); % 按照极角排序 angles = atan2(points(:, 2)-p0(2), points(:, 1)-p0(1)); [~, idx] = sort(angles);points = points(idx, :); % 构建凸包 hull = [p0; points(2, :)]; for i = 3:size(points, 1) while det([hull(end-1,:)-hull(end,:); points(i,:)-hull(end,:)]) <= 0 hull(end,:) = []; end hull = [hull; points(i,:)]; end ``` 其中,`det`表示行列式,用于判断向量的方向。如果向量$AB$在向量$AC$的逆时针方向,则$det([AB; AC])>0$;如果在顺时针方向,则$det([AB; AC])<0$。
相关问题

股市投资有没有好的推荐书籍

股市投资领域有很多好的书籍可以推荐,以下是几本经典的股市投资书籍: 1.《聪明的投资者》:本书是价值投资之父本杰明·格雷厄姆所著,是股市投资领域的经典之作,介绍了价值投资的理念和方法。 2.《股票大作手回忆录》:本书由美国股市投资大师杰西·利弗莫尔所著,讲述了他在股市中的经验和故事,是一本关于投资心理的经典著作。 3.《巴菲特致股东的信》:本书是伟大的投资家沃伦·巴菲特所写的致股东信,介绍了他的投资思想和方法,是一本极具启发性的投资读物。 4.《证券分析》:本书由本杰明·格雷厄姆和戴维·杜松所著,介绍了证券分析的方法和技巧,是一本非常实用的投资读物。 5.《打败华尔街》:本书由彼得·林奇所著,介绍了他在华尔街的投资经验和故事,是一本非常有趣的投资读物,同时也提供了一些实用的投资建议。 以上是一些经典的股市投资书籍,希望对你有所帮助。

有哪些投资的书籍推荐

### 回答1: 下面是一些投资书籍的推荐: 1. "股票投资宝典" - 唐德彪 2. "穷查理宝典" - 唐纳德·沃兹 3. "投资的艺术" - 弗朗西斯·费曼 4. "富爸爸,穷爸爸" - 罗伯特·K·清崎 5. "精明投资者" - 巴菲特著 这些书籍在讲述投资理论、投资策略、投资心理等方面都有深入浅出的讲解,是一些非常不错的投资书籍。当然,不同的人可能有不同的投资偏好,需要根据自己的情况和需求选择。 ### 回答2: 以下是几本值得推荐的投资书籍: 1. 《聪明的投资者》:本书是由投资大师本杰明·格雷厄姆所写,是一本经典之作。书中提供了许多投资的原则和策略,教导读者如何分析市场、选择股票和制定投资决策。 2. 《股市大作手回忆录》:该书是投资界的经典之作,讲述了杰西·利弗莫尔的股市经历和投资思路。通过讲述他个人的投资心得,读者可以了解到许多关于股市投资的重要原则。 3. 《原则》:作者瑞·达利欧是全球知名的投资管理人士,他在这本书中分享了自己建立投资帝国的经验和原则。读者可以从中学习到一些关于资本管理、风险控制和决策制定等方面的宝贵知识。 4. 《大市转型》:本书由《财富》杂志的编辑约翰·特拉姆普编写,介绍了一些关于市场周期和投资机会的理论。它对于那些希望了解市场规律以及怎样把握投资机会的读者来说是非常有用的。 5. 《股票投资作为一门艺术》:作者尼克·李怀特是一位非常成功的股票交易员,他在书中分享了自己的交易经验和技巧。这本书适合那些希望学习如何成为一个优秀股票交易员的人。 总之,以上推荐的书籍都是经典之作,适合读者们深入了解投资的原则、策略和心态。无论是初学者还是有一定经验的投资者,都可以从这些书中获得宝贵的投资知识和经验。

相关推荐

最新推荐

recommend-type

Lisp之根源(初学则必看)手册

保罗格雷厄姆(Paul Graham) 约翰麦卡锡于1960年发表了一篇非凡的论文,他在这篇论文中对编程的贡献有如欧几里德对几何的贡献.1 他向我们展示了,在只给定几个简单的操作符和一个表示函数的记号的基础上, 如何构造出...
recommend-type

机械设计试验机sw20可编辑非常好的设计图纸100%好用.zip

机械设计试验机sw20可编辑非常好的设计图纸100%好用.zip
recommend-type

JSP基于WEB的图书馆借阅系统的设计与实现(源代码+论文).zip

JSP基于WEB的图书馆借阅系统的设计与实现(源代码+论文)
recommend-type

1_6_huh猫(扭曲声音)_分p整合猫meme素材90+(持续更新中).mp4

1_6_huh猫(扭曲声音)_分p整合猫meme素材90+(持续更新中).mp4
recommend-type

【超炫购物模板】仿拍鞋网商城首页触屏版html5手机wap购物网站模板下载.zip

【超炫购物模板】仿拍鞋网商城首页触屏版html5手机wap购物网站模板下载.zip
recommend-type

RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz

REALTEK 8188FTV 8188eus 8188etv linux驱动程序稳定版本, 支持AP,STA 以及AP+STA 共存模式。 稳定支持linux4.0以上内核。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

numpy数组索引与切片技巧

![numpy数组索引与切片技巧](https://img-blog.csdnimg.cn/f610d87ed50745d2b7052af887da2d0d.png) # 2.1 整数索引 整数索引是 NumPy 数组中索引元素的最简单方法。它允许您使用整数来访问数组中的特定元素或子数组。 ### 2.1.1 单个元素索引 单个元素索引使用一个整数来访问数组中的单个元素。语法为: ```python array[index] ``` 其中: * `array` 是要索引的 NumPy 数组。 * `index` 是要访问的元素的索引。 例如: ```python import
recommend-type

javaboolean类型怎么使用

Java中的boolean类型表示真或假,只有两个可能的值。在Java中,boolean类型的变量可以被初始化为false或true。可以使用以下语法来声明和初始化一个boolean类型的变量: ``` boolean myBoolean = true; ``` 在Java中,boolean类型的变量通常用于控制流程和条件测试,例如: ``` if (myBoolean) { // do something if myBoolean is true } else { // do something if myBoolean is false } ``` 除了if语句之外
recommend-type

c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf

校园超市商品信息管理系统课程设计旨在帮助学生深入理解程序设计的基础知识,同时锻炼他们的实际操作能力。通过设计和实现一个校园超市商品信息管理系统,学生掌握了如何利用计算机科学与技术知识解决实际问题的能力。在课程设计过程中,学生需要对超市商品和销售员的关系进行有效管理,使系统功能更全面、实用,从而提高用户体验和便利性。 学生在课程设计过程中展现了积极的学习态度和纪律,没有缺勤情况,演示过程流畅且作品具有很强的使用价值。设计报告完整详细,展现了对问题的深入思考和解决能力。在答辩环节中,学生能够自信地回答问题,展示出扎实的专业知识和逻辑思维能力。教师对学生的表现予以肯定,认为学生在课程设计中表现出色,值得称赞。 整个课程设计过程包括平时成绩、报告成绩和演示与答辩成绩三个部分,其中平时表现占比20%,报告成绩占比40%,演示与答辩成绩占比40%。通过这三个部分的综合评定,最终为学生总成绩提供参考。总评分以百分制计算,全面评估学生在课程设计中的各项表现,最终为学生提供综合评价和反馈意见。 通过校园超市商品信息管理系统课程设计,学生不仅提升了对程序设计基础知识的理解与应用能力,同时也增强了团队协作和沟通能力。这一过程旨在培养学生综合运用技术解决问题的能力,为其未来的专业发展打下坚实基础。学生在进行校园超市商品信息管理系统课程设计过程中,不仅获得了理论知识的提升,同时也锻炼了实践能力和创新思维,为其未来的职业发展奠定了坚实基础。 校园超市商品信息管理系统课程设计的目的在于促进学生对程序设计基础知识的深入理解与掌握,同时培养学生解决实际问题的能力。通过对系统功能和用户需求的全面考量,学生设计了一个实用、高效的校园超市商品信息管理系统,为用户提供了更便捷、更高效的管理和使用体验。 综上所述,校园超市商品信息管理系统课程设计是一项旨在提升学生综合能力和实践技能的重要教学活动。通过此次设计,学生不仅深化了对程序设计基础知识的理解,还培养了解决实际问题的能力和团队合作精神。这一过程将为学生未来的专业发展提供坚实基础,使其在实际工作中能够胜任更多挑战。