隐函数如何用Matlab来画出曲线?
怎么画?别说只能先求解阿[ 本帖最后由 lxq 于 2007-5-2 23:55 编辑 ] 这个在matlab的书籍里面倒是没确切地看到,
mathmatica里面倒是有。:) Mathematica中绘制隐函数的命令是ImplicitPlot
Matlab我曾经见人写过一个绘制隐函数的代码,一时找不到了,我在找找看
function implot(fun,rangexy,ngrid)
% Implicit plot function
% function implot(fun,rangexy,ngrid)
% fun is 'inline' function f(x,y)=0 (Note function written as equal to zero)
% rangexy = range over which x and y is ploted default(-2*pi,2*pi)
% ngrid is the number of grid points used to calculate the plot,
% Start with course grid (ngrid =20) and then use finer grid if necessary
% default ngrid=50
%
% Example
% Plot y^3+exp(y)-tanh(x)=0
%
% write function f as an 'inline' function of x and y-- right hand side
% equal to zero
%
% f=inline('y^3+exp(y)-tanh(x)','x','y')
% implot(f,[-3 3 -2 1])
% A.Jutan UWO 2-2-98<a href="mailto:ajutan@julian.uwo.ca" target="_blank">ajutan@julian.uwo.ca</a>
if nargin == 1;% grid value and ranges not specified calculate default
rangexy=[-2*pi,2*pi,-2*pi,2*pi];
ngrid=50;
end
if nargin == 2;% grid value not specified
ngrid=50;
end
% get 2-D grid for x and y
xm=linspace(rangexy(1),rangexy(2),ngrid);
ym=linspace(rangexy(3),rangexy(4),ngrid);
=meshgrid(xm,ym);
fvector=vectorize(fun);% vectorize the inline function to handle vectors of x y
fvalues=feval(fvector,x,y); %calculate with feval-this works if fvector is an m file too
%fvalues=fvector(x,y); % can also calculate directly from the vectorized inline function
contour(x,y,fvalues,,'b-');% plot single contour at f(x,y)=0, blue lines
xlabel('x');ylabel('y'); grid
[ 本帖最后由 ChaChing 于 2010-7-2 14:53 编辑 ] 谢谢分享,收下,^_^ matlab7中有直接绘制隐函数曲线的命令
其调用格式:ezplot(隐函数表达式)
如要绘制f(x,y)=y^3+exp(y)-tanh(x)的曲线,命令为:
ezplot('y^3+exp(y)-tanh(x)')
上面的语句将自动选择x轴的范围[-6,6],要自己定义绘制区间,如在[-10,10]绘制.可用下面语句:
ezplot('y^3+exp(y)-tanh(x)',[-10,10]) 如果是f(x,y,z)=0
能用ezplot畫嗎? 如果是f(x,y,z)=0
能用ezplot畫嗎?
用ezplot3 在matlab6.5中能用ezplot3直接画隐函数曲线吗? 在matlab6.5中能用ezplot3直接画隐函数曲线吗?
6.5不行,7.0我没试过,不过如果ezplot可以画二维隐函数曲线,那ezplot3应该也行 三维画圆问题
是可以用ezplot3,问题是y和z都已经表示成了x的函数!
如果是隐函数怎么办呢?
上面的那个程序只能画二维的! 是可以用ezplot3,问题是y和z都已经表示成了x的函数!
如果是隐函数怎么办呢?
上面的那个程序只能画二维的!
一个三维隐函数绘图的例子
% draw3varf.m
% surface of constant value plot.
% draw3varf(X,Y,Z,CONST) draws a surface of constant value
% for a function of three variables: F(X,Y,Z) = CONST .
% The color of each patch is determined by its
% orientation with respect to a specified direction.
% F must be an M-by-N-by-P volume array.
% x=1:0.1:10;y=1:0.1:10;z=0:0.1:10;
% =meshgrid(x,y,z);
% f=(x+y+z).*(x.*y+x.*z+y.*z)-10*x.*y.*z-a;
% Li wenyong 2004.2.25 copyright
const=0;
x=1:0.1:10;y=1:0.1:10;z=0:0.1:10;
=meshgrid(x,y,z);
f=(x+y+z).*(x.*y+x.*z+y.*z)-10*x.*y.*z-const;
p=patch(isosurface(x,y,z,f,0));
set(p, 'FaceColor', 'red', 'EdgeColor', 'none');
daspect()
view(3)
camlight; lighting phong
我是6.5
输入ezplot3
提示错误怎么办? 用3楼的那个函数来画
[ 本帖最后由 happy 于 2007-4-14 19:56 编辑 ] 我有个问题:
遗传算法中假设产生出种群为某个隐函数的系数。是可以画出图形。
但关键是怎样能够求出解来啊?
如果你自己一个个代进去可以,但这不但速度慢麻烦而且好象失去了遗传算法的某些本质!
我的问题是怎样才能求种群产生后隐函数一系列的解!
期待能够解决!!??? 复数呢?比如z^10-1=0可以吗?她提示我??? Undefined function or variable 'z'.
那要怎莫设呢?
页:
[1]
2