Solved

adding foci points to my hyperbola in Matlab

Posted on 2009-03-30
4
947 Views
Last Modified: 2016-02-10
Please find the matlab code below;

ok... I figured out that my foci points : d=+/- sqrt(a) +sqrt(b)
Is this ok?

and how do I add this to my code below

thanks in advance
% Program to plot the hyperbola

% y^2/a^2 - x^2/b^2 = 1

% The hyperbolae are open up/down, so that x is the independent variable

% for plotting. (Using the form x^2/a^2 - y^2/b^2 = 1 requires that y be

% the independent variable, which is awkward programming-wise.)

clear % all variables

figure(1), hold off % start a new figure

set(gca,'FontSize',14) % adjust fontsize

xmax = 30; ymax = 20;

x = linspace(-xmax,xmax,1001); % array of x values for plot : This function generates vector with 1001 points equally distributed between -xmax and xmax. 

                                %1001 is probably to have 500 points on one side (>0), 500 on another side (<0) and to include 0 itself. So you will have 

                                 %more natural numbers. 
 

a = 5; b = 3;

y=sqrt(((x.^2)./(b^2)+1).*a^2); % corresponding y values

plot(x,y)

hold on % add to current plot

plot(x,-y) % Plot other half of hyperbola

axis([-xmax xmax -ymax ymax]) % specify axis limits

xlabel('x')

ylabel('y')

title(['Hyperbola $y^2/a^2 - x^2/b^2 = 1$; $a$ = ', num2str(a), ...

', $b$ = ', num2str(b),'; (WR 1/21/08)'],'Interpreter','latex')

% Add axes

plot([0 0],[-ymax ymax],'k') % y axis (black line - k)

plot([-xmax xmax],[0 0],'k') % x axis

 

% Program to plot the elipse

% y^2/a^2 - x^2/b^2 = 1

 

y=sqrt(((-x.^2)./(b^2)+1).*a^2); % corresponding y values

plot(x,real(y))

hold on % add to current plot

plot(x,-y) % Plot other half of elipse

axis([-xmax xmax -ymax ymax]) % specify axis limits

xlabel('x')

ylabel('y')

title(['Hyperbola and elipse $y^2/a^2 + x^2/b^2 = 1$;$y^2/a^2 - x^2/b^2 = 1$; $a$ = ', num2str(a), ...

', $b$ = ', num2str(b),';'],'Interpreter','latex')

% Add axes

plot([0 0],[-ymax ymax],'k') % y axis (black line - k)

plot([-xmax xmax],[0 0],'k') % x axis

Open in new window

0
Comment
Question by:jtiernan2008
  • 3
4 Comments
 
LVL 15

Expert Comment

by:yuk99
ID: 24023169
Are those points at x=0? Then you can add them with
plot([0 0], [-sqrt(a)+sqrt(b) sqrt(a)+sqrt(b)],'o')

Are you sure it's correct? May be this?
plot([0 0], [-sqrt(a^2+b^2) sqrt(a^2+b^2)],'ro')

Or this?
plot([0 0], [-a a],'go')

Please define what are foci points?

0
 
LVL 1

Author Comment

by:jtiernan2008
ID: 24023262
http://mathworld.wolfram.com/Hyperbola.html

foci is focus plural

I actually done as follows.

f1=sqrt((a.^2))+sqrt((b.^2));
f2=-(sqrt((a.^2))+sqrt((b.^2)));
text(0,f1,'\leftarrow +d')
text(0,f2,'\leftarrow -d')

Is this correct?
0
 
LVL 15

Accepted Solution

by:
yuk99 earned 500 total points
ID: 24023521
If c^2=a^2+b^2, then c=+-sqrt(a^2+b^2). Is it focus points?

I'd also add VerticalAlignment and HorizontalAlignment to make sure the pointers positions are closest.

f1=sqrt(a.^2+b.^2);

f2=-(sqrt(a.^2+b.^2));

plot([0 0],[f1 f2],'.')

text(0,f1,'\leftarrow +d','VerticalAlignment','middle','HorizontalAlignment','left')

text(0,f2,'\leftarrow -d','VerticalAlignment','middle','HorizontalAlignment','left')

Open in new window

0
 
LVL 15

Expert Comment

by:yuk99
ID: 24023528
Or f2=-f1;
0

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

Suggested Solutions

Navigation is an important part of web design from a usability perspective. But it is often a pain when it comes to a developer’s perspective. By navigation, it often means menuing. This is less theory and more practical of how to get a specific gro…
This article will show, step by step, how to integrate R code into a R Sweave document
This tutorial explains how to use the VisualVM tool for the Java platform application. This video goes into detail on the Threads, Sampler, and Profiler tabs.
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now