Java Why is this Java code not working?

Click For Summary
The Java code provided is intended to simulate motion but is not functioning as expected. The user is advised to clarify what "not working" means, as it could refer to various issues like errors or unexpected behavior. Suggestions include running the code in Processing after modifying it to fit the environment, such as changing the main method to a setup method. Additionally, there is a concern about the logic used to calculate velocity, specifically regarding the reuse of the position variable "x" for velocity calculations. The discussion emphasizes the importance of precise problem definition for effective troubleshooting.
hagopbul
Messages
397
Reaction score
45
Hello all:
I am reading a comutacomputa physics book and trying a code from it in MATLAB it is not working and due to my lack of knowledge in this field I can't see where is the mistake hope you can take a look

Java:
import java.lang .*;

public class Motion {

  static final int n = 100000, j = 500;

  public static void main(String argv[]) {
    double x[] = new double[n+1];
    double v[] = new double[n+1];

    double dt = 2*Math.PI/n;
    x[0] = 0;
    v[0] = 1;

    for (int i=0; i<n; ++i) {
        x[ i+1 ] = x[ i ] + v[ i ]*dt;
        v[ i+1 ] = v[ i ] - x[ i ]*dt;
    }

    double t=0 ;
    double jdt = j*dt;
 
    for (int i=0; i<=n; i+=j) {
        System.out.println(t +""+x [ i ]+""+ v[ i ]);
        t += jdt;
    }
  }
}

<mentor: add code tags>
 
Last edited by a moderator:
Technology news on Phys.org
I added code tags which help readability.

Please define "not working". This could mean:
it throws an error, freezes, reboots your computer, stack dumps, or has syntax problems (looks like that to start with)

This is no different than taking your car to a repair shop. If you say 'the car does not work' you will get 20 questions, I'm trying gently to push you toward learning how to specify problems like this one.
 
  • Like
Likes hagopbul and Wrichik Basu
Another idea is to install the Processing app and run the code directly inside with a few mods to the source.

Remove the class line, replace the main line with
void setup() and remove the extraneous braces.

So you can run your code in the setup method.

What is wrong with your code exactly?
 
Last edited:
This part looks wrong... Are you trying to calculate the new velocity from current velocity and acceleration? If so, why did you re-use the position variable "x"?

Java:
for (int i=0; i<n; ++i) {
        x[ i+1 ] = x[ i ] + v[ i ]*dt;
        v[ i+1 ] = v[ i ] - x[ i ]*dt;
    }
 
Here's my java code that runs in Processing:

Java:
int n = 100000;
int j = 500;

void setup()
{
    double x[] = new double[n+1];
    double v[] = new double[n+1];

    double dt = 2*Math.PI/n;
    x[0] = 0;
    v[0] = 1;

    for (int i=0; i<n; ++i) {
        x[ i+1 ] = x[ i ] + v[ i ]*dt;
        v[ i+1 ] = v[ i ] - x[ i ]*dt;
    }

    double t=0 ;
    double jdt = j*dt;

    for (int i=0; i<=n; i+=j) {
        System.out.printf("\ni = [%06d] t = %8.3f  x[i] = %8.3f  v[i] = %8.3f",i,t,x[i],v[i]);
        t += jdt;
    }
}

and here's the formatted output I get:

Code:
i = [000000] t =    0.000  x[i] =    0.000  v[i] =    1.000
i = [000500] t =    0.031  x[i] =    0.031  v[i] =    1.000
i = [001000] t =    0.063  x[i] =    0.063  v[i] =    0.998
i = [001500] t =    0.094  x[i] =    0.094  v[i] =    0.996
i = [002000] t =    0.126  x[i] =    0.125  v[i] =    0.992
i = [002500] t =    0.157  x[i] =    0.156  v[i] =    0.988
i = [003000] t =    0.188  x[i] =    0.187  v[i] =    0.982
i = [003500] t =    0.220  x[i] =    0.218  v[i] =    0.976
i = [004000] t =    0.251  x[i] =    0.249  v[i] =    0.969
i = [004500] t =    0.283  x[i] =    0.279  v[i] =    0.960
i = [005000] t =    0.314  x[i] =    0.309  v[i] =    0.951
i = [005500] t =    0.346  x[i] =    0.339  v[i] =    0.941
i = [006000] t =    0.377  x[i] =    0.368  v[i] =    0.930
i = [006500] t =    0.408  x[i] =    0.397  v[i] =    0.918
i = [007000] t =    0.440  x[i] =    0.426  v[i] =    0.905
i = [007500] t =    0.471  x[i] =    0.454  v[i] =    0.891
i = [008000] t =    0.503  x[i] =    0.482  v[i] =    0.876
i = [008500] t =    0.534  x[i] =    0.509  v[i] =    0.861
i = [009000] t =    0.565  x[i] =    0.536  v[i] =    0.844
i = [009500] t =    0.597  x[i] =    0.562  v[i] =    0.827
i = [010000] t =    0.628  x[i] =    0.588  v[i] =    0.809
i = [010500] t =    0.660  x[i] =    0.613  v[i] =    0.790
i = [011000] t =    0.691  x[i] =    0.637  v[i] =    0.771
i = [011500] t =    0.723  x[i] =    0.661  v[i] =    0.750
i = [012000] t =    0.754  x[i] =    0.685  v[i] =    0.729
i = [012500] t =    0.785  x[i] =    0.707  v[i] =    0.707
i = [013000] t =    0.817  x[i] =    0.729  v[i] =    0.685
i = [013500] t =    0.848  x[i] =    0.750  v[i] =    0.661
i = [014000] t =    0.880  x[i] =    0.771  v[i] =    0.637
i = [014500] t =    0.911  x[i] =    0.790  v[i] =    0.613
i = [015000] t =    0.942  x[i] =    0.809  v[i] =    0.588
i = [015500] t =    0.974  x[i] =    0.827  v[i] =    0.562
i = [016000] t =    1.005  x[i] =    0.844  v[i] =    0.536
i = [016500] t =    1.037  x[i] =    0.861  v[i] =    0.509
i = [017000] t =    1.068  x[i] =    0.876  v[i] =    0.482
i = [017500] t =    1.100  x[i] =    0.891  v[i] =    0.454
i = [018000] t =    1.131  x[i] =    0.905  v[i] =    0.426
i = [018500] t =    1.162  x[i] =    0.918  v[i] =    0.397
i = [019000] t =    1.194  x[i] =    0.930  v[i] =    0.368
i = [019500] t =    1.225  x[i] =    0.941  v[i] =    0.339
i = [020000] t =    1.257  x[i] =    0.951  v[i] =    0.309
i = [020500] t =    1.288  x[i] =    0.960  v[i] =    0.279
i = [021000] t =    1.319  x[i] =    0.969  v[i] =    0.249
i = [021500] t =    1.351  x[i] =    0.976  v[i] =    0.218
i = [022000] t =    1.382  x[i] =    0.982  v[i] =    0.187
i = [022500] t =    1.414  x[i] =    0.988  v[i] =    0.156
i = [023000] t =    1.445  x[i] =    0.992  v[i] =    0.125
i = [023500] t =    1.477  x[i] =    0.996  v[i] =    0.094
i = [024000] t =    1.508  x[i] =    0.998  v[i] =    0.063
i = [024500] t =    1.539  x[i] =    1.000  v[i] =    0.031
i = [025000] t =    1.571  x[i] =    1.000  v[i] =    0.000
i = [025500] t =    1.602  x[i] =    1.000  v[i] =   -0.031
i = [026000] t =    1.634  x[i] =    0.998  v[i] =   -0.063
i = [026500] t =    1.665  x[i] =    0.996  v[i] =   -0.094
i = [027000] t =    1.696  x[i] =    0.992  v[i] =   -0.125
i = [027500] t =    1.728  x[i] =    0.988  v[i] =   -0.156
i = [028000] t =    1.759  x[i] =    0.982  v[i] =   -0.187
i = [028500] t =    1.791  x[i] =    0.976  v[i] =   -0.218
i = [029000] t =    1.822  x[i] =    0.969  v[i] =   -0.249
i = [029500] t =    1.854  x[i] =    0.960  v[i] =   -0.279
i = [030000] t =    1.885  x[i] =    0.951  v[i] =   -0.309
i = [030500] t =    1.916  x[i] =    0.941  v[i] =   -0.339
i = [031000] t =    1.948  x[i] =    0.930  v[i] =   -0.368
i = [031500] t =    1.979  x[i] =    0.918  v[i] =   -0.397
i = [032000] t =    2.011  x[i] =    0.905  v[i] =   -0.426
i = [032500] t =    2.042  x[i] =    0.891  v[i] =   -0.454
i = [033000] t =    2.073  x[i] =    0.876  v[i] =   -0.482
i = [033500] t =    2.105  x[i] =    0.861  v[i] =   -0.509
i = [034000] t =    2.136  x[i] =    0.844  v[i] =   -0.536
i = [034500] t =    2.168  x[i] =    0.827  v[i] =   -0.562
i = [035000] t =    2.199  x[i] =    0.809  v[i] =   -0.588
i = [035500] t =    2.231  x[i] =    0.790  v[i] =   -0.613
i = [036000] t =    2.262  x[i] =    0.771  v[i] =   -0.637
i = [036500] t =    2.293  x[i] =    0.750  v[i] =   -0.661
i = [037000] t =    2.325  x[i] =    0.729  v[i] =   -0.685
i = [037500] t =    2.356  x[i] =    0.707  v[i] =   -0.707
i = [038000] t =    2.388  x[i] =    0.685  v[i] =   -0.729
i = [038500] t =    2.419  x[i] =    0.661  v[i] =   -0.750
i = [039000] t =    2.450  x[i] =    0.637  v[i] =   -0.771
i = [039500] t =    2.482  x[i] =    0.613  v[i] =   -0.790
i = [040000] t =    2.513  x[i] =    0.588  v[i] =   -0.809
i = [040500] t =    2.545  x[i] =    0.562  v[i] =   -0.827
i = [041000] t =    2.576  x[i] =    0.536  v[i] =   -0.844
i = [041500] t =    2.608  x[i] =    0.509  v[i] =   -0.861
i = [042000] t =    2.639  x[i] =    0.482  v[i] =   -0.876
i = [042500] t =    2.670  x[i] =    0.454  v[i] =   -0.891
i = [043000] t =    2.702  x[i] =    0.426  v[i] =   -0.905
i = [043500] t =    2.733  x[i] =    0.397  v[i] =   -0.918
i = [044000] t =    2.765  x[i] =    0.368  v[i] =   -0.930
i = [044500] t =    2.796  x[i] =    0.339  v[i] =   -0.941
i = [045000] t =    2.827  x[i] =    0.309  v[i] =   -0.951
i = [045500] t =    2.859  x[i] =    0.279  v[i] =   -0.960
i = [046000] t =    2.890  x[i] =    0.249  v[i] =   -0.969
i = [046500] t =    2.922  x[i] =    0.218  v[i] =   -0.976
i = [047000] t =    2.953  x[i] =    0.187  v[i] =   -0.982
i = [047500] t =    2.985  x[i] =    0.156  v[i] =   -0.988
i = [048000] t =    3.016  x[i] =    0.125  v[i] =   -0.992
i = [048500] t =    3.047  x[i] =    0.094  v[i] =   -0.996
i = [049000] t =    3.079  x[i] =    0.063  v[i] =   -0.998
i = [049500] t =    3.110  x[i] =    0.031  v[i] =   -1.000
i = [050000] t =    3.142  x[i] =    0.000  v[i] =   -1.000
i = [050500] t =    3.173  x[i] =   -0.031  v[i] =   -1.000
i = [051000] t =    3.204  x[i] =   -0.063  v[i] =   -0.998
i = [051500] t =    3.236  x[i] =   -0.094  v[i] =   -0.996
i = [052000] t =    3.267  x[i] =   -0.125  v[i] =   -0.992
i = [052500] t =    3.299  x[i] =   -0.156  v[i] =   -0.988
i = [053000] t =    3.330  x[i] =   -0.187  v[i] =   -0.982
i = [053500] t =    3.362  x[i] =   -0.218  v[i] =   -0.976
i = [054000] t =    3.393  x[i] =   -0.249  v[i] =   -0.969
i = [054500] t =    3.424  x[i] =   -0.279  v[i] =   -0.960
i = [055000] t =    3.456  x[i] =   -0.309  v[i] =   -0.951
i = [055500] t =    3.487  x[i] =   -0.339  v[i] =   -0.941
i = [056000] t =    3.519  x[i] =   -0.368  v[i] =   -0.930
i = [056500] t =    3.550  x[i] =   -0.397  v[i] =   -0.918
i = [057000] t =    3.581  x[i] =   -0.426  v[i] =   -0.905
i = [057500] t =    3.613  x[i] =   -0.454  v[i] =   -0.891
i = [058000] t =    3.644  x[i] =   -0.482  v[i] =   -0.876
i = [058500] t =    3.676  x[i] =   -0.509  v[i] =   -0.861
i = [059000] t =    3.707  x[i] =   -0.536  v[i] =   -0.844
i = [059500] t =    3.738  x[i] =   -0.562  v[i] =   -0.827
i = [060000] t =    3.770  x[i] =   -0.588  v[i] =   -0.809
i = [060500] t =    3.801  x[i] =   -0.613  v[i] =   -0.790
i = [061000] t =    3.833  x[i] =   -0.638  v[i] =   -0.771
i = [061500] t =    3.864  x[i] =   -0.661  v[i] =   -0.750
i = [062000] t =    3.896  x[i] =   -0.685  v[i] =   -0.729
i = [062500] t =    3.927  x[i] =   -0.707  v[i] =   -0.707
i = [063000] t =    3.958  x[i] =   -0.729  v[i] =   -0.685
i = [063500] t =    3.990  x[i] =   -0.750  v[i] =   -0.661
i = [064000] t =    4.021  x[i] =   -0.771  v[i] =   -0.638
i = [064500] t =    4.053  x[i] =   -0.790  v[i] =   -0.613
i = [065000] t =    4.084  x[i] =   -0.809  v[i] =   -0.588
i = [065500] t =    4.115  x[i] =   -0.827  v[i] =   -0.562
i = [066000] t =    4.147  x[i] =   -0.844  v[i] =   -0.536
i = [066500] t =    4.178  x[i] =   -0.861  v[i] =   -0.509
i = [067000] t =    4.210  x[i] =   -0.876  v[i] =   -0.482
i = [067500] t =    4.241  x[i] =   -0.891  v[i] =   -0.454
i = [068000] t =    4.273  x[i] =   -0.905  v[i] =   -0.426
i = [068500] t =    4.304  x[i] =   -0.918  v[i] =   -0.397
i = [069000] t =    4.335  x[i] =   -0.930  v[i] =   -0.368
i = [069500] t =    4.367  x[i] =   -0.941  v[i] =   -0.339
i = [070000] t =    4.398  x[i] =   -0.951  v[i] =   -0.309
i = [070500] t =    4.430  x[i] =   -0.960  v[i] =   -0.279
i = [071000] t =    4.461  x[i] =   -0.969  v[i] =   -0.249
i = [071500] t =    4.492  x[i] =   -0.976  v[i] =   -0.218
i = [072000] t =    4.524  x[i] =   -0.982  v[i] =   -0.187
i = [072500] t =    4.555  x[i] =   -0.988  v[i] =   -0.156
i = [073000] t =    4.587  x[i] =   -0.992  v[i] =   -0.125
i = [073500] t =    4.618  x[i] =   -0.996  v[i] =   -0.094
i = [074000] t =    4.650  x[i] =   -0.998  v[i] =   -0.063
i = [074500] t =    4.681  x[i] =   -1.000  v[i] =   -0.031
i = [075000] t =    4.712  x[i] =   -1.000  v[i] =   -0.000
i = [075500] t =    4.744  x[i] =   -1.000  v[i] =    0.031
i = [076000] t =    4.775  x[i] =   -0.998  v[i] =    0.063
i = [076500] t =    4.807  x[i] =   -0.996  v[i] =    0.094
i = [077000] t =    4.838  x[i] =   -0.992  v[i] =    0.125
i = [077500] t =    4.869  x[i] =   -0.988  v[i] =    0.156
i = [078000] t =    4.901  x[i] =   -0.982  v[i] =    0.187
i = [078500] t =    4.932  x[i] =   -0.976  v[i] =    0.218
i = [079000] t =    4.964  x[i] =   -0.969  v[i] =    0.249
i = [079500] t =    4.995  x[i] =   -0.960  v[i] =    0.279
i = [080000] t =    5.027  x[i] =   -0.951  v[i] =    0.309
i = [080500] t =    5.058  x[i] =   -0.941  v[i] =    0.339
i = [081000] t =    5.089  x[i] =   -0.930  v[i] =    0.368
i = [081500] t =    5.121  x[i] =   -0.918  v[i] =    0.397
i = [082000] t =    5.152  x[i] =   -0.905  v[i] =    0.426
i = [082500] t =    5.184  x[i] =   -0.891  v[i] =    0.454
i = [083000] t =    5.215  x[i] =   -0.876  v[i] =    0.482
i = [083500] t =    5.246  x[i] =   -0.861  v[i] =    0.509
i = [084000] t =    5.278  x[i] =   -0.844  v[i] =    0.536
i = [084500] t =    5.309  x[i] =   -0.827  v[i] =    0.562
i = [085000] t =    5.341  x[i] =   -0.809  v[i] =    0.588
i = [085500] t =    5.372  x[i] =   -0.790  v[i] =    0.613
i = [086000] t =    5.404  x[i] =   -0.771  v[i] =    0.638
i = [086500] t =    5.435  x[i] =   -0.750  v[i] =    0.661
i = [087000] t =    5.466  x[i] =   -0.729  v[i] =    0.685
i = [087500] t =    5.498  x[i] =   -0.707  v[i] =    0.707
i = [088000] t =    5.529  x[i] =   -0.685  v[i] =    0.729
i = [088500] t =    5.561  x[i] =   -0.661  v[i] =    0.750
i = [089000] t =    5.592  x[i] =   -0.638  v[i] =    0.771
i = [089500] t =    5.623  x[i] =   -0.613  v[i] =    0.790
i = [090000] t =    5.655  x[i] =   -0.588  v[i] =    0.809
i = [090500] t =    5.686  x[i] =   -0.562  v[i] =    0.827
i = [091000] t =    5.718  x[i] =   -0.536  v[i] =    0.844
i = [091500] t =    5.749  x[i] =   -0.509  v[i] =    0.861
i = [092000] t =    5.781  x[i] =   -0.482  v[i] =    0.876
i = [092500] t =    5.812  x[i] =   -0.454  v[i] =    0.891
i = [093000] t =    5.843  x[i] =   -0.426  v[i] =    0.905
i = [093500] t =    5.875  x[i] =   -0.397  v[i] =    0.918
i = [094000] t =    5.906  x[i] =   -0.368  v[i] =    0.930
i = [094500] t =    5.938  x[i] =   -0.339  v[i] =    0.941
i = [095000] t =    5.969  x[i] =   -0.309  v[i] =    0.951
i = [095500] t =    6.000  x[i] =   -0.279  v[i] =    0.960
i = [096000] t =    6.032  x[i] =   -0.249  v[i] =    0.969
i = [096500] t =    6.063  x[i] =   -0.218  v[i] =    0.976
i = [097000] t =    6.095  x[i] =   -0.187  v[i] =    0.982
i = [097500] t =    6.126  x[i] =   -0.156  v[i] =    0.988
i = [098000] t =    6.158  x[i] =   -0.125  v[i] =    0.992
i = [098500] t =    6.189  x[i] =   -0.094  v[i] =    0.996
i = [099000] t =    6.220  x[i] =   -0.063  v[i] =    0.998
i = [099500] t =    6.252  x[i] =   -0.031  v[i] =    1.000
i = [100000] t =    6.283  x[i] =   -0.000  v[i] =    1.000
 
If you want it in MATLAB, why not write it in MATLAB language (instead of Java)?
I didn't even know MATLAB could run Java.
And we're still not sure what "not working" means to you. Please elaborate.
 
  • Like
Likes Wrichik Basu
berkeman said:
This part looks wrong... Are you trying to calculate the new velocity from current velocity and acceleration? If so, why did you re-use the position variable "x"?

Java:
for (int i=0; i<n; ++i) {
        x[ i+1 ] = x[ i ] + v[ i ]*dt;
        v[ i+1 ] = v[ i ] - x[ i ]*dt;
    }
Harmonic oscillator :smile:
 
  • Like
Likes Wrichik Basu and berkeman

Similar threads

  • · Replies 0 ·
Replies
0
Views
626
Replies
8
Views
2K
  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 3 ·
Replies
3
Views
3K
Replies
1
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 0 ·
Replies
0
Views
1K
  • · Replies 0 ·
Replies
0
Views
656