برنامج لحساب القوه المتبادله بين الشحنات

السلام عليكم
هذا البرنامج كما هو مذكور بالعنوان يقوم بتطبيق قانون كولوم لحساب القوه المتبادله ، وانا اعتذر على تأخيري بطرح البرنامج اخ م.مفيد ، بس يوم الاحد ما صدقت وانا اروح ع شان يطلعي شويه ساعات نوم واما اليوم ان شغلت حتى المغرب … رغم انه تخصصي مدني بس حبيت اتشاطر وعمل حالي بفهم بالاتصالات ورحت فكيت الراوتر ولقيت التوقعته وجدت انه في نقطتين ملحوم عليهن سلكين رايحات للهوائي وحده تتبعتها وجدتها واصله مع الطرف السالب للمصدر المهم لحمت عليهن وطلعت الاسلاك ووصلتها باستخدام اسلاك زي اسلاك الرسيفر للستلايت المهم وصلتها لغرفه بعيده كانت شبكة الويرلس هناك ما يلقطتها التلفون المهم جوى الغرفه جبت طحشة اسلاك ولفلفتها على شكل زبيركات وخليتها تصير شبكة ولحمت فيها السلكين … المهم بعد هذه الجهود الحمد لله صار في ويرلس بالغرفه وبجوده 65% … اكيد المشكله بالشبكة بس مش عارف شو اسويلها … (( انا قلت القصه ع شان إذا حدى بعاني من مشكله زي هيك ))

المهم نرجع للبرنامج … فبعد شويه شغل طلع معي الاتي


x1= input('Enter first charge location (x-axis) ');
y1= input('Enter first charge location (y-axis) ');
x2= input('Enter second charge location (x-axis) ');
y2= input('Enter second charge location (y-axis) ');
x3= input('Enter third charge location (x-axis) ');
y3= input('Enter third charge location (y-axis) ');
q1=input('Enter the value of first charge ');
q2=input('Enter the value of second charge ');
q3=input('Enter the value of third charge ');
d12=((x2-x1)^2+(y2-y1)^2)^0.5;
d13=((x3-x1)^2+(y3-y1)^2)^0.5;
d23=((x3-x2)^2+(y3-y2)^2)^0.5;
k=9e9;
% cos of angle between d12 and x-axis I will name as cos12
cos12=abs(x2-x1)/d12;
sin12=abs(y2-y1)/d12;
cos13=abs(x3-x1)/d13;
sin13=abs(y3-y1)/d13;
cos23=abs(x3-x2)/d23;
sin23=abs(y3-y2)/d23;
%F12 the force exert on charge 2 By charge 1
% i and j : unit vector to x-axis and y-axis respectively
% is : i sign
% js : j sing
if (q2>=0 && q1 >=0) || (q2<=0 && q1<=0)
    if x1>x2
        is=1;
    else
        is=-1;
    end
    if y1>y2
        js=1;
    else
        js=-1;
    end
else
    if x1>x2
        is=-1;
    else
        is=1;
    end
    if y1>y2
        js=-1;
    else
        js=1;
    end
end
f21=[k*abs(q1*q2)/d12^2*cos12*is k*abs(q1*q2)/d12^2*sin12*js];
if (q3>=0 && q1 >=0) || (q3<=0 && q1<=0)
    if x1>x3
        is=1;
    else
        is=-1;
    end
    if y1>y3
        js=1;
    else
        js=-1;
    end
else
    if x1>x3
        is=-1;
    else
        is=1;
    end
    if y1>y3
        js=-1;
    else
        js=1;
    end
end
f31=[k*abs(q1*q3)/d13^2*cos13*is k*abs(q1*q3)/d13^2*sin13*js];
if (q2>=0 && q1 >=0) || (q2<=0 && q1<=0)
    if x2>x1
        is=1;
    else
        is=-1;
    end
    if y2>y1
        js=1;
    else
        js=-1;
    end
else
    if x2>x1
        is=-1;
    else
        is=1;
    end
    if y2>y1
        js=-1;
    else
        js=1;
    end
end
f12=[k*abs(q1*q2)/d12^2*cos12*is k*abs(q1*q2)/d12^2*sin12*js];
if (q2>=0 && q3 >=0) || (q2<=0 && q3<=0)
    if x2>x3
        is=1;
    else
        is=-1;
    end
    if y2>y3
        js=1;
    else
        js=-1;
    end
else
    if x2>x3
        is=-1;
    else
        is=1;
    end
    if y2>y3
        js=-1;
    else
        js=1;
    end
end
f32=[k*abs(q3*q2)/d23^2*cos23*is k*abs(q3*q2)/d23^2*sin23*js];
if (q2>=0 && q3 >=0) || (q2<=0 && q3<=0)
    if x3>x2
        is=1;
    else
        is=-1;
    end
    if y3>y2
        js=1;
    else
        js=-1;
    end
else
    if x3>x2
        is=-1;
    else
        is=1;
    end
    if y3>y2
        js=-1;
    else
        js=1;
    end
end
f23=[k*abs(q3*q2)/d23^2*cos23*is k*abs(q3*q2)/d23^2*sin23*js];
if (q3>=0 && q1 >=0) || (q3<=0 && q1<=0)
    if x3>x1
        is=1;
    else
        is=-1;
    end
    if y3>y1
        js=1;
    else
        js=-1;
    end
else
    if x3>x1
        is=-1;
    else
        is=1;
    end
    if y3>y1
        js=-1;
    else
        js=1;
    end
end
f13=[k*abs(q1*q3)/d13^2*cos13*is k*abs(q1*q3)/d13^2*sin13*js];
f1=f21+f31
f2=f12+f32
f3=f13+f23


وقبل ما انسى اذا عندك سؤال أو شفت اي مشكله بالبرنامج خبرني بإضافة رد

لا تنسوا اخوانا في غزه من الدعاء … بااااي

نبدأ بشرح البرنامج
اول جزء
x1= input('Enter first charge location (x-axis) ');
y1= input('Enter first charge location (y-axis) ');
x2= input('Enter second charge location (x-axis) ');
y2= input('Enter second charge location (y-axis) ');
x3= input('Enter third charge location (x-axis) ');
y3= input('Enter third charge location (y-axis) ');
q1=input('Enter the value of first charge ');
q2=input('Enter the value of second charge ');
q3=input('Enter the value of third charge ');
مجرد ادخال للبيانات المطلوبه مش اكثر
الجزء الثاني
d12=((x2-x1)^2+(y2-y1)^2)^0.5;
d13=((x3-x1)^2+(y3-y1)^2)^0.5;
d23=((x3-x2)^2+(y3-y2)^2)^0.5;
حساب المسافة بين الشحنات
d12 المسافة بين الشحنه 1 والشحنه 2
الجزء الثالث
k=9e9;
تعريف ثابت السماحية للهواء ، إذا كنت ترغب في زيادة قدره البرنامج يمكنك ان تدعوا المستخدم إلى ادخالها
% cos of angle between d12 and x-axis I will name as cos12
الجزء التالي
cos12=abs(x2-x1)/d12;
sin12=abs(y2-y1)/d12;
cos13=abs(x3-x1)/d13;
sin13=abs(y3-y1)/d13;
cos23=abs(x3-x2)/d23;
sin23=abs(y3-y2)/d23;
حساب مقدار جيب الزاويه وجيب تمامها ، طبعاً بدك تسأل اي زاويه ؟؟ هي الزاويه الواقعه بين خط عمل القوه (يكون بنفس اتجاه الخط الواصل بين الشحنتين) ومحور السينات
واستخدمت اقتران القيمه المطلقة لانه كمان شوي راح تشوف معادلة حساب القوه وانا ما بدي اي شيء يؤثر على الاشاره باستثناء متغيير سيتم تعريفه لاحقاً
الجزء التالي
%F12 the force exert on charge 2 By charge 1
% i and j : unit vector to x-axis and y-axis respectively
% is : i sign
% js : j sing
f12 هي القوه المؤثره على الشحنه 2 بفعل الشحنه 1
i & j متجهات الوحده باتجاه المحاورين السيني والصادي على الترتيب
is المتغيير الذي أخبرتك عنه قبل قليل والذي سيحدد اتجاه المركبه السينيه للقوه
js المتغيير الذي أخبرتك عنه قبل قليل والذي سيحدد اتجاه المركبه الصادية للقوه
طبعا -1 يعني باتجاه السينات السالب بينما 1 باتجاه السينات الموجب هذا بالنسبه للمتغيير is
الجزء التالي
هذا الجزء يحتوي تكتل منطقي
المهم بدي إياك تعرف انه هنا سنقوم بتحديد فيما إذا كان is و js +1 أو -1
وكمان اعرف انه بدنا نحدد is و js بانسبه لتأثير الشحنه 2 على الشحنه 1
if (q2>=0 && q1 >=0) || (q2<=0 && q1<=0)
اذا كانت الشحنتين موجبتان أو سالبتان
if x1>x2
اذا كان الاحداث السيني للشحنه واحد اكبر
is=1;
لاحظ انه اذا كانت الشحنتين متشابهتان بالاشاره فستكون القوه المتبادلة تنافر
وكذلك الشحنه ذات الاحداث السيني الاكبر ستكون مركبتها السينية باتجاه محور السينات الموجب
else
is=-1;
end
if y1>y2
نفس الشي بالنسبه للـ js
اذا تنافر الاكبر بالحداث الصادي تتجه مركبت قوتها باتجاه الصادات الموجب
js=1;
else
js=-1;
end
else
هنا يكون الشحنتان مختلفتان بالاشاره يعني القوه تجاذب
if x1>x2
عندما تكون القوه تجاذب تكون المركبة السينية القوه للشحنه ذات الاحداث السيني الاكبر باتجاه السينات السالب
is=-1;
else
is=1;
end
if y1>y2
كذلك هنا
js=-1;
else
js=1;
end
end
الان لقد قمنى بالتحضير لحساب المركبه السينيه والصاديه للقوه على الشحنه 1 بتأثير الشحنه 2 وهي كالتالي
f21=[kabs(q1q2)/d12^2cos12is kabs(q1q2)/d12^2sin12js];
اتوقع واضحه ولا في داعي نبلش بفيزياء 2
بس لاحظ انه القوه مصفوفه بحجم
1X2
العمود الاول المركبه السينه والعمود الثاني المركبه الصاديه
كذلك باقي الكود حتى اخر ثلاث اسطر
if (q3>=0 && q1 >=0) || (q3<=0 && q1<=0)
if x1>x3
is=1;
else
is=-1;
end
if y1>y3
js=1;
else
js=-1;
end
else
if x1>x3
is=-1;
else
is=1;
end
if y1>y3
js=-1;
else
js=1;
end
end
f31=[kabs(q1q3)/d13^2cos13is kabs(q1q3)/d13^2sin13js];
if (q2>=0 && q1 >=0) || (q2<=0 && q1<=0)
if x2>x1
is=1;
else
is=-1;
end
if y2>y1
js=1;
else
js=-1;
end
else
if x2>x1
is=-1;
else
is=1;
end
if y2>y1
js=-1;
else
js=1;
end
end
f12=[kabs(q1q2)/d12^2cos12is kabs(q1q2)/d12^2sin12js];
if (q2>=0 && q3 >=0) || (q2<=0 && q3<=0)
if x2>x3
is=1;
else
is=-1;
end
if y2>y3
js=1;
else
js=-1;
end
else
if x2>x3
is=-1;
else
is=1;
end
if y2>y3
js=-1;
else
js=1;
end
end
f32=[kabs(q3q2)/d23^2cos23is kabs(q3q2)/d23^2sin23js];
if (q2>=0 && q3 >=0) || (q2<=0 && q3<=0)
if x3>x2
is=1;
else
is=-1;
end
if y3>y2
js=1;
else
js=-1;
end
else
if x3>x2
is=-1;
else
is=1;
end
if y3>y2
js=-1;
else
js=1;
end
end
f23=[kabs(q3q2)/d23^2cos23is kabs(q3q2)/d23^2sin23js];
if (q3>=0 && q1 >=0) || (q3<=0 && q1<=0)
if x3>x1
is=1;
else
is=-1;
end
if y3>y1
js=1;
else
js=-1;
end
else
if x3>x1
is=-1;
else
is=1;
end
if y3>y1
js=-1;
else
js=1;
end
end
f13=[kabs(q1q3)/d13^2cos13is kabs(q1q3)/d13^2sin13js];
هنا نقوم بجمع متجهي
فالقوه المحصلة المؤثره على الشحنه 1 هي المجموع المتجهي للمتجه (القوه المؤثره على ش1 من تأثير ش2 )مع المتجه (القوه المؤثره على ش1 من تأثير ش3 ) …ا
f1=f21+f31
f2=f12+f32
f3=f13+f23
وخلصت فكت
صرت تملك القوه المحصله كمتجه بكل بساطة يمكنك حساب الزاويه لمتجه المحصله وكذلك إيجاد قيمته أو اي شيء اخر ترغب به
ان شاء الله يكون هذا الشرح ذو فائد
ولا تنسو شاهدو الصوره التي بالمرفقات فهي ذات فائدة كذلك للمساعد بالشرح