所以我要在這些步驟中做這些方程如何循環和存儲值從物理方程
Q1 * Q3 * K /(R^2)= F1_3(這是電場力1和3之間)
Q2 * Q3 * K/R^2)= F1_2(粒子1和之間力2)
從那裏我可以找到兩個電荷與f1_3之間的淨力+ f1_2 = fnet
隨着淨力我會找到加速度使用a = fnet/m(其中m是質量。 (現在我上面的所有事情都可以做,但現在繼承人讓我感到困惑)
取剛剛找到的加速度並找到速度。 v = - (at)是時間間隔(我得到那個方程式,它從步驟6中的方程推導出來,初始方程是x(.05)= at + v
取得那個速度和前一個加速度並找到新位置:x = 1/2at^2 + v * t + x
x的值成爲粒子3的新位置,現在我回到頂部以便計算電力,然後加速等沖洗和重複。
這些步驟是我想重複過什麼,現在結束了我間隔我想它是1微秒或10e-6,從0.0-1.0微秒0.0-2.0微秒,我希望它在每個時間間隔存儲位置。事情是它將不得不重新使用我在前幾個步驟中列出的公式重新計算力的值,然後返回找到位置。我不知道是否應該使用「for」來循環它,但我不知道如何真正去做。當我完成代碼後,我希望能夠輸入電荷的位置及其大小,然後它將使用方程式,但一次只能執行一步。
是我試圖做不到的?
import java.util.Scanner;
import javax.swing.JFrame;
public class Firstgui {
private static Scanner in = new Scanner(System.in);
public static void main(String[] args) {
//declare variables
double postionq1= 0.0; // position of q1 is at origin i just put it here for reference
double distanceq3_q1=.01; //q3 is placed between q1 and q2
double distanceq3_q2= .014-distanceq3_q1; //distance from q3 to q2
double q1=5e-6;
double q2=-4e-6;
double q3=-2e-6;
double mq1=3e-5;
double k= 8.99e9;
double F1_3 = Force(q1, q3, k, distanceq3_q1);
double F2_3= -Force(q2, q3, k, distanceq3_q2);
double Fnet=F1_3+F2_3;
System.out.println(F1_3);
System.out.println(F2_3);
System.out.println(Fnet);
System.out.println("particle 3 position from 0.0-1micro-seconds is " + position(acceleration(Fnet,mq1), 0.000001 , velocity(0.000001 , acceleration(Fnet,mq1)),.01));
// this print line above is the final the position of q3 a 1 microsecond
//now with that value that it prints how would i use that for the next
//position of q3 and recalculate the fnet then acceleration etc.
}
public static double Force(double q1, double q2, double k, double r) {
double electricforce=(q1*q2*k)/(Math.pow(r, 2));
return electricforce;
}
public static double acceleration(double f, double m) {
double acell=f/m;
return acell;
}
public static double position(double a, double t, double v, double x) {
double postion=.5*a*(t*t)+(v*t)+x; // a- acceleration through out out this time interval is constant
return postion;
}
public static double velocity(double t, double a) {
double v=-(t*a); // a- acceleration through out out this time interval is constant
return v;
}
}
它看起來可能對我來說。謹慎詳細說明你卡在哪裏? –