رسم سطوح درجه دو در متلب

مدیر انجمن: parse

ارسال پست
نمایه کاربر
ya30

عضویت : چهارشنبه ۱۳۹۱/۸/۲۴ - ۱۶:۴۷


پست: 52

سپاس: 15


تماس:

رسم سطوح درجه دو در متلب

پست توسط ya30 »

باید یه سطح درجه دو رو تو نرم افزار متلب رسم کنم

میشه کمکم کنید؟!
زین خلق پر شکایت گریان شدم ملول

آن های هوی و نعره ی مستانم آرزوست

نمایه کاربر
javad123javad

نام: Javad

محل اقامت: NoWhere

عضویت : پنج‌شنبه ۱۳۸۷/۳/۲ - ۱۱:۱۷


پست: 912

سپاس: 211

جنسیت:

Re: رسم سطوح درجه دو در متلب

پست توسط javad123javad »

سلام
لطفاً بیشتر توضیح دهید و در صورت امکان معادله مربوطه را قرار دهید.

نمایه کاربر
ya30

عضویت : چهارشنبه ۱۳۹۱/۸/۲۴ - ۱۶:۴۷


پست: 52

سپاس: 15


تماس:

Re: رسم سطوح درجه دو در متلب

پست توسط ya30 »

javad123javad نوشته شده:سلام
لطفاً بیشتر توضیح دهید و در صورت امکان معادله مربوطه را قرار دهید.

سلام

نمودار سه بعدی مثل این
1-=(z**2/c**2)-(y**2/b**2)+(x**2/a**2)
زین خلق پر شکایت گریان شدم ملول

آن های هوی و نعره ی مستانم آرزوست

نمایه کاربر
javad123javad

نام: Javad

محل اقامت: NoWhere

عضویت : پنج‌شنبه ۱۳۸۷/۳/۲ - ۱۱:۱۷


پست: 912

سپاس: 211

جنسیت:

Re: رسم سطوح درجه دو در متلب

پست توسط javad123javad »

سلام
رسم نمودار سه بعدی شاید برای تازه کارها کمی مشکل باشه به همین خاطر می تونید از کد زیر استفاده کنید. ابتدا کد رو در یک فایل ذخیره کرده و بعد مثل مثال داده شده پارامترها رو به ورودی بدین:

کد: انتخاب همه

function out=implicitplot3d(varargin)
%IMPLICITPLOT3D 3-D implicit plot
% IMPLICITPLOT3D(eq, val, xvar, yvar, zvar, xmin, xmax, 
% ymin, ymax, zmin, zmax) plots an implicit equation
% eq=val, where eq is either symbolic expression of (symbolic)
% variables xvar, yvar, and zvar in the indicated ranges, or
% a string representing such an expression, and val is a number.
% If xvar, yvar, and zvar are not specified, it is assumed they are 
% x, y, z in the symbolic case, or 'x', 'y',and 'z' in the
% string form of the command, respectively.
% The optional parameter plotpoints (added at the end)
% gives the number of steps in each direction between plotting points.
%
% Example: implicitplot3d('x^2+y^2+z^2', 5, -3, 3, -3, 3, -3, 3)
% plots the sphere 'x^2+y^2+z^2=5' with 'x', 'y', and 'z' 
% going from -3 to 3.
% implicitplot3d('x^2+y^2+z^2', 5, -3, 3, -3, 3, -3, 3, 30)
% does the same with higher accuracy.
% written by Jonathan Rosenberg, 7/30/99
% rewritten for MATLAB 7, 8/22/05

if nargin<8 
    error('not enough input arguments -- need at least expression string, value, xmin, xmax, ymin, ymax, zmin, zmax'); 
end

if nargin==10, error('impossible number of input arguments'); end

if nargin>12, error('too many input arguments'); end

% Default value of plotpoints is 10.
plotpoints=10;

eq=varargin{1}; val=varargin{2};
stringflag=ischar(eq); % This is 'true' in the string case,
% 'false' in the symbolic case.


% Next, handle subcase where variable names are missing.
if nargin<10
  if stringflag  % First we deal with the string case.
      xvar='x'; yvar='y'; zvar='z'; 
  else % Now deal with the case where eq is symbolic.
      syms x y z; xvar=x; yvar=y; zvar=z;
  end
  xmin=varargin{3}; xmax=varargin{4}; 
  ymin=varargin{5}; ymax=varargin{6}; 
  zmin=varargin{7}; zmax=varargin{8}; 
  if nargin==9, plotpoints=varargin{9}; end
end
% Next, handle subcase where variable names are included.
if nargin>10
  xvar=varargin{3}; yvar=varargin{4}; zvar=varargin{5}; 
  xmin=varargin{6}; xmax=varargin{7}; 
  ymin=varargin{8}; ymax=varargin{9}; 
  zmin=varargin{10}; zmax=varargin{11}; 
  if nargin==12, plotpoints=varargin{12}; end
end

    

if stringflag
    F = vectorize(inline(eq,xvar,yvar,zvar));
else
    F = inline(vectorize(eq),char(xvar),char(yvar),char(zvar));
end
[X Y]= meshgrid(xmin:(xmax-xmin)/plotpoints:xmax, ymin:(ymax-ymin)/plotpoints:ymax);

%% Go through zvalues one at a time. For each one, plot corresponding
%% contourplot in x and y, with that z-value.  We could use "contour" 
%% except that it makes a "shadow", so we copy some of 
%% the code of "contour".

for z=zmin:(zmax-zmin)/plotpoints:zmax
    lims = [min(X(:)),max(X(:)), min(Y(:)),max(Y(:))];
    c = contours(X,Y,F(X,Y,z), [val val]);
    limit = size(c,2);
    i = 1;
    h = [];
	while(i < limit)
	  npoints = c(2,i);
	  nexti = i+npoints+1;
	  xdata = c(1,i+1:i+npoints);
	  ydata = c(2,i+1:i+npoints);
	  zdata = z + 0*xdata;  % Make zdata the same size as xdata
	  line('XData',xdata,'YData',ydata,'ZData',zdata); hold on;
	  i = nexti;
    end
end
view(3)
xlabel(char(xvar))
ylabel(char(yvar))
zlabel(char(zvar))
title([char(eq),' = ',num2str(val)], 'Interpreter','none')
hold off

مثال: رسم یکسطح به معادله


کد: انتخاب همه

syms x y z; h=(x^2)/3+(y^2)/2+(z^2)/4; clf; % Clear old figure
implicitplot3d(h, 1, -3, 3, -3, 3, -3, 3, 40); axis equal
untitled.jpg
شما دسترسی جهت مشاهده فایل پیوست این پست را ندارید.

نمایه کاربر
m!sS Nah!D

محل اقامت: soMewHere in thE wOrlD

عضویت : سه‌شنبه ۱۳۹۲/۷/۲ - ۰۱:۵۱


پست: 289

سپاس: 162


تماس:

Re: رسم سطوح درجه دو در متلب

پست توسط m!sS Nah!D »

سلام
من قراره روی نرم افزار متلب کار کنم اما دقیقا نمیدونم از کجا باید شروع کنم
کتابشو که دیدم خوشم اومد مطمئنم بعدها به دردم میخوره
اما متاسفانه خیلی گیج کننده بود واسم smile031
امکانش هست کمکم کنین

Talk slowly but think quickly

Spend some time alone

When you realize you've made a mistake, take immediate steps to correct it

BEGIN while others are procrastinating

COMMEND while others are criticizing

PREPARE while others are daydreaming

To handle yourself, use your head; to handle others use your heart.


<3 http://music.naij.com/artist-2035-celine-dion <3

<3 http://www.newhealthguide.org/Calming-Foods.html <3

ارسال پست