MATLAB Matlab, Three Dimensional plot of three charges

AI Thread Summary
The discussion centers on the need to develop a MATLAB program that can plot three points in a three-dimensional space, each with associated charge magnitudes. The program should visualize equipotential lines and electric field lines between these points. The user has programming experience in assembly and C++ but lacks MATLAB knowledge, expressing frustration over the lack of formal training at their university. Suggestions include starting with simpler plotting tasks to familiarize with MATLAB syntax and using a 3x4 matrix to input the points and charges for plotting. Concerns are raised about the complexity of visualizing both equipotential surfaces and electric field lines on a single graph, indicating the need for clarity in the final output. The user is under time pressure, as they are preparing for finals and need to create a design document outlining the program's functionality.
studentengie
Messages
3
Reaction score
0
What the program needs to do is quite simple, the problem is that I lack the knowledge needed to program in matlab.

I know how to program in assembly and C++ and that's about it, this would not be a problem for me if my University gave formal courses in how to use Matlab.

Here is what the program needs to be able to do.

It must accept the locations of three points on a three dimensional plot XYZ, as welll as having certain 'intensities' or 'magnitudes' that signify their charge

Point 1 (X,Y,Z) and Q
Point 2 (X,Y,Z) and Q
Point 3 (X,Y,Z) and Q

as well as plotting these three points, the intensities are suppose to affect the following that must be plotted as well.

Equipotential lines between the point charges
Electric field lines between the point charges
 
Physics news on Phys.org
What approach would you take in C++?

This looks like something that could be done with the finite element or finite difference (?) method. But I guess there's an easier or analytic way you have in mind.

Conceptually Matlab isn't much different from C++, just without the objects (I think?), and some conveniences for math, especially its matrices, which are really arrays but with lots of handy ways to operate on them.

I think you should write a simpler program first, like just plot a function to get familiar with the syntax.

Wouldn't you have equipotential planes in 3D, not lines?
 
What type of plots do you have in mind? If you input your three positions + charge as a 3x4 matrix (each row = a charge), call it A, you can make a 3d scatter graph using something like

Code:
A = [2,1,3,7;1,2,3,3;0,2,1,20];
scatter3(A(1,1:3), A(2,1:3), A(3,1:3), 100*A(:,4),'x')

The first three arguments are the x, y, z coordinates (vectors with numel = number of points you want to scatter), the 4th argument is the markersize - bigger charges could be represented by bigger crosses.

Regarding surface equipotentials and electric field lines, it may be possible to plot on one graph but the image will probably be very confusing.
 
MikeyW said:
What type of plots do you have in mind? If you input your three positions + charge as a 3x4 matrix (each row = a charge), call it A, you can make a 3d scatter graph using something like

Code:
A = [2,1,3,7;1,2,3,3;0,2,1,20];
scatter3(A(1,1:3), A(2,1:3), A(3,1:3), 100*A(:,4),'x')

The first three arguments are the x, y, z coordinates (vectors with numel = number of points you want to scatter), the 4th argument is the markersize - bigger charges could be represented by bigger crosses.

Regarding surface equipotentials and electric field lines, it may be possible to plot on one graph but the image will probably be very confusing.


Basically I am looking to make a three dimensional plot, X Y Z axis...I know this is extraordinarily confusing but my professor didn't give me a lot to work with here, he just laid out in so few words what needed to be accomplished.
 
At this point I am a week before finals, I am most likely going to have to write a design document for the program and explain what it would do and how it would do it, and hope for the best.
 
Back
Top