Нахождение всех точек, где электрический c потенциал равен нулю, и построение графика - PullRequest
0 голосов
/ 08 мая 2020
public class physics2 {
    public static void main(String[]args){
        double k=9*10^9;       // Constant k
        double q=6*10^(-9);   // Charge of q
        double Q= -1 * 10^(-9);    // Charge of Q
        int Pqx = 0; // X coordinate of charge q
        int Pqy = 0; // Y coordinate of charge q
        int PQx = 10; // X coordinate of charge Q
        int PQy = 0; // Y coordinate of charge Q


        for (double Px = 7.10102; Px <= 16.8989 ; Px+=0.00001) {
            for (double Py = -8.98; Py <= 8.98; Py+=0.00001) {

                double Vq = (k * q) / Math.sqrt(Math.pow((Px-Pqx),2)+Math.pow((Py-Pqy),2));  // Electric Potential of charge q

                double VQ = (k * Q) /  Math.sqrt(Math.pow((Px-PQx),2)+Math.pow((Py-PQy),2));  // Electric Potential of charge Q

                while (Vq==-VQ){
                    System.out.println("["+Px+","+Py+"]");
                }}

        }


    }
}

В системе координат два заряда: первый находится в точке (0,0) и имеет +6 нано-куоломов. Другой находится в точке (10,0) и имеет нано-кулоновский заряд -1. Субъект должен найти и построить все точки, в которых электрический c потенциал равен нулю. Я пишу это, но это работает очень долго, и я не могу получить никаких результатов. Где я ошибся? Я не вижу.

1 Ответ

1 голос
/ 08 мая 2020

Сначала попробуйте заменить while (Vq==-VQ) на if (Vq==-VQ). Я думаю, ваша программа застревает в бесконечном l oop. Это должно решить проблему отсутствия печати. ​​

Если программа по-прежнему работает медленно, это связано с большим количеством обрабатываемых точек. Вам следует как-то уменьшить это число, возможно, сначала попробуйте точки, близкие к этим двум точкам.

И, наконец, вот хорошее объяснение того, как сравнивать двойные .

...