Surface of a equation
    11 views (last 30 days)
  
       Show older comments
    
    Daniel Jaló
 on 15 Sep 2012
  
    
    
    
    
    Commented: Walter Roberson
      
      
 on 11 Nov 2020
            Hi.
I want to plot the quadratic surface of a sphere:
x^2 + y^2 + z^2 = r , where r is equal to 1. Therefore:
x^2 + y^2 + z^2 = 1, where x, y and z are values between -1.5 and 1.5
Can anyone explain me how to do this? I've looked into mesh surfaces but I can only plot functions ( f(x,y) )..
Any help will be highly appreciated. Thanks.
0 Comments
Accepted Answer
  Wayne King
    
      
 on 15 Sep 2012
        
      Edited: Wayne King
    
      
 on 15 Sep 2012
  
      I think you meant to square r in your equation, and you cannot have a value between -1.5 and 1.5 if the radius is 1. The radius has to be 1.5. Think about what happens if x=0,y=0,z=1.5 as you stated must be a point that satisfies the equation x^2+y^2+z^2 = r^2
You should probably do it with spherical coordinates:
 n = 100;
 r = 1.5;
 theta = (-n:2:n)/n*pi;
 phi = (-n:2:n)'/n*pi/2;
 cosphi = cos(phi); cosphi(1) = 0; cosphi(n+1) = 0;
 sintheta = sin(theta); sintheta(1) = 0; sintheta(n+1) = 0;
 x = r*cosphi*cos(theta);
 y = r*cosphi*sintheta;
 z = r*sin(phi)*ones(1,n+1);
 surf(x,y,z)
 xlabel('X'); ylabel('Y'); zlabel('Z')
Note that MATLAB has a function for this with a unit sphere, sphere.m
2 Comments
  Varun Dogra
 on 11 Nov 2020
				Develop a sweep surface by sweeping a circle P (r, θ) of radius 7.5
units with center at (4,3) along the positive z-axis by 10 units
Please help
  Walter Roberson
      
      
 on 11 Nov 2020
				Modifying some code from below, https://www.mathworks.com/matlabcentral/answers/48240-surface-of-a-equation#answer_243478 
r = 7.5; xc = 4; yc = 3;
zl = 0; zh = 10;
fimplicit3(@(x,y,z) (x-xc).^2+(y-yc).^2-r^2,[xc-r xc+r yc-r yc+r zl zh], 'edgecolor', 'none')
More Answers (3)
  Jürgen
      
 on 15 Sep 2012
        [x,y,z] = sphere(); r = 5; figure,surf( r*x +cx, r*y+ cy, r*z +cz) wit (cx,,cy,cz) the center look at http://www.mathworks.com/matlabcentral/newsreader/view_thread/169373
0 Comments
  Javier
      
 on 15 Sep 2012
        
      Edited: Walter Roberson
      
      
 on 11 Nov 2020
  
      Procedure done in Matlab R2012.
The problem that you want to solve gives complex solution for Z for arbitrary X and Y in [-1.5,1.5]. The square of X^2 + Y.^2 must be lower than 1, in other case,the solution for Z is a complex number (mesh function doesnt support complex data). To prove it, solve for Z. You get an square root of (1-(X.^2+Y.^2)). I show how to solve for arbitrary number X and Y lower than 0.70 (0.7071^2= 0.5).
Data=randn(10,10) % 10 is arbitrary. Matriz square.
u=find(Data>0.70);
d=find(Data<-0.70);
%Define limits of Data Matriz
Data(u)=0.70;
Data(d)=-0.70;
%Divide Data matriz in two
X=Data(:,1:5);
Y=Data(:,6:10);
%For arbitrary X and Y value Z must solve the equality
Z=feval(@(X,Y)[sqrt(1-(X.^2+Y.^2))],X,Y)
%Plot data
mesh(X,Y,Z)
If this solve your question please grade or make a comment to this answer. Best regards
Javier
0 Comments
  auto2060
      
 on 16 Nov 2016
        So
r = 1;
fimplicit3(@(x,y,z) x.^2+y.^2+z.^2-r^2,[-1.5 1.5 -1.5 1.5 -1.5 1.5])
0 Comments
See Also
Categories
				Find more on Surface and Mesh Plots in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!






