声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 7101|回复: 6

[综合讨论] 求助:如何在matlab中画椭圆

[复制链接]
发表于 2009-6-16 18:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
想请教大家如何用matlab画这样的一个椭圆区域,以x1和x2为坐标
X'PX<r   
其中X=[x1,x2]'是系统dX=f(X,t)的状态;P为正定对称矩阵;r>0;
回复
分享到:

使用道具 举报

发表于 2009-6-16 21:18 | 显示全部楼层
椭圆区域可以这样画
a=2;
b=3;
t=(0:0.1:2)*pi;
fill(a*cos(t),b*sin(t),'r')
结合你自己的问题,修改试试

评分

1

查看全部评分

 楼主| 发表于 2009-6-18 21:06 | 显示全部楼层

回复 沙发 friendchj 的帖子

谢谢你的回答,你说的是一般的画椭圆的方法。但可以解决我所提出的问题。
我原以为有比较简单的对应于我所说的问题的画法,一直没有找到。
看来目前只能先转换成楼上所说的形式画了。
发表于 2009-6-21 20:06 | 显示全部楼层
试试隐函数画图呢,例如
  1. P = [3 1; 1 4]; r = 5;
  2. fun = @(x,y)[x y]*P*[x;y]-r;
  3. ezplot(fun,[-2 2 -1.5 1.5])
复制代码

也可以考虑椭圆方程的标准化,就是二次型化标准型的问题。
我用画二次型为标准型的办法又做了一下,和用隐函数画图得到的图形不太一样,个人感觉隐函数画图不太准确。
  1. P = [3 1; 1 4]; r = 5;
  2. [V,D] = eig(P); b = r/D(1); a = r/D(4);
  3. ecc = axes2ecc(b,a);
  4. y = ellipse1(0,0,[b ecc]);
  5. x = V*y';
  6. plot(x(1,:),x(2,:),'r')
复制代码

[ 本帖最后由 ChaChing 于 2009-6-25 20:55 编辑 ]
ellipse.jpg

评分

1

查看全部评分

发表于 2009-6-21 22:45 | 显示全部楼层

回复 地板 xiezhh 的帖子

LZ不仅热心, 程序及数学底子都很深厚!
汗! 个人底子太浅, 看好久才回忆一些!
谢谢, 学习了!
 楼主| 发表于 2009-6-24 09:22 | 显示全部楼层

回复 地板 xiezhh 的帖子

佩服!多谢!雪中送炭啊!正是在下所需。
发表于 2012-5-22 17:14 | 显示全部楼层
回复 4 # xiezhh 的帖子

你好啊,能不能问一下如果要求画的图形X'PX<r 中,矩阵P是三维的,也就是要画椭球体,样该怎么画啊?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-13 13:36 , Processed in 0.077026 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表