gdxinlan 发表于 2005-11-3 19:57

[求助]小学生求解问题

偶是初来者,没有学过matlab,但想请教学长们问题:
已知x,y满足方程:
x=y*(1/(0.1-a*y))^a;
其中a=2.44;x为一向量;
怎样能求出y的值,并画图呢?
多谢!

cora 发表于 2005-11-3 19:59

这是隐函数绘图问题,见帖子
http://forum.vibunion.com/thread-3606-1-1.html

gdxinlan 发表于 2005-11-3 21:07

不太懂啊

suffer 发表于 2005-11-4 15:28

调用上面连接里的子程序画图就行了

gdxinlan 发表于 2005-11-5 00:01

请教系主任
是调用这个程序吗:可是我看不懂啊,试了一下下面这个原程序好像说有问题啊
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 ajutan@julian.uwo.ca

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
能讲解一下吗,谢谢指教!
页: [1]
查看完整版本: [求助]小学生求解问题