声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1635|回复: 4

[绘图技巧] 如何画多值函数?怎么画最方便?

[复制链接]
发表于 2006-7-9 20:07 | 显示全部楼层 |阅读模式

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

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

x
比如下面一个函数,x,y,z为未知数
(x-y)^2+(y-z)^2+(z-y)^2=10
回复
分享到:

使用道具 举报

 楼主| 发表于 2006-7-10 08:16 | 显示全部楼层
!!
 楼主| 发表于 2006-7-10 10:58 | 显示全部楼层
谢谢:)
 楼主| 发表于 2006-7-10 12:41 | 显示全部楼层
试着做了一下,报错
??? Error using ==> surface
X, Y, Z, and C cannot be complex.

z求出来的是复数,画不出来
我去abs以后能画出来,但我觉得应该是个椭球,怎么不是呢?
{013F0073-D826-450B-8FBF-759D09560C30}.JPG
发表于 2006-7-10 13:58 | 显示全部楼层
用第六行语句看看x和y在什么范围内能保证根号下为正,然后再画!
  1. function EzFunctionPlot
  2. clc
  3. D=solve('(x-y)^2+(y-z)^2+(z-x)^2=10','z')
  4. a1=vectorize('1/2*y+1/2*x+1/2*(-3*y^2+6*x*y-3*x^2+20)^(1/2)');
  5. a2=vectorize('1/2*y+1/2*x-1/2*(-3*y^2+6*x*y-3*x^2+20)^(1/2)');
  6. % ezplot('-3*y^2+6*x*y-3*x^2+20')  %确定范围
  7. [x,y]=meshgrid(3:.05:12);
  8. z1=inline(a1,'x','y');
  9. z=z1(x,y);
  10. surf(x,y,z)
  11. hold on
  12. z2=inline(a2,'x','y');
  13. z=z2(x,y);
  14. surf(x,y,z)
  15. shading flat
复制代码

其中的两个切平面是取值自动带进去的,应当可以寻找某种函数规则,将不在椭球面上的点全部赋值为NaN裁掉

[ 本帖最后由 bainhome 于 2006-7-10 14:12 编辑 ]
surf椭球面.jpg
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-14 07:45 , Processed in 0.065466 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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