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. 《股票投资作为一门艺术》:作者尼克·李怀特是一位非常成功的股票交易员,他在书中分享了自己的交易经验和技巧。这本书适合那些希望学习如何成为一个优秀股票交易员的人。
总之,以上推荐的书籍都是经典之作,适合读者们深入了解投资的原则、策略和心态。无论是初学者还是有一定经验的投资者,都可以从这些书中获得宝贵的投资知识和经验。