مشخصات مقاله
-
0.0
-
6104
-
0
-
0
حل معادلات درجه دوم با پایتون
در این مقاله به معرفی و نحوه چگونگی حل معادلات درجه دوم با استفاده از زبان پایتون می پردازیم. معادله درجه دوم یک نوع معادله چندجملهای است که در آن بالاترین توان متغیر x، برابر 2 است. شکل کلی معادله درجه دوم به صورت زیر است:
در اینجا:
- - x متغیر مستقل است.
- - معادله برابر با صفر است.
- - a یک ضریب حقیقی مخالف صفر و b و c دو عدد حقیقی هستند
- - ax**2 نشاندهنده جمله مربعی، bx جمله خطی و c جمله ثابت است.
برای حل معادلات درجه دوم، از فرمول زیر استفاده میشود:
برای تعیین نوع ریشه های معادله، باتوجه به حالات مختلف دلتا، سه حالت وجود دارد:
- - اگر ( ∆ > 0 ) باشد، دو ریشه حقیقی و مختلف داریم.
- - اگر( ∆ = 0 ) باشد، دو ریشه حقیقی و یکسان داریم.
- - اگر ( ∆ < 0 ) باشد، دو ریشه غیرحقیقی و مختلف داریم. این ریشهها ممکن است اعداد مختلط باشند.
حالا بیایید با استفاده از پایتون به حل یک معادله دوم درجه بپردازیم. در این معادله a برابر 8، b برابر 5 و c برابر 9 می باشد.
import cmath
a = float(input('Enter a: '))
b = float(input('Enter b: '))
c = float(input('Enter c: '))
d = (b**2) - (4*a*c)
sol1 = (-b-cmath.sqrt(d))/(2*a)
sol2 = (-b+cmath.sqrt(d))/(2*a)
print('The solution are {0} and {1}'.format(sol1,sol2))
خروجی
Enter a: 8 Enter b: 5 Enter c: 9 The solution are (-0.3125-1.0135796712641785j) and (-0.3125+1.0135796712641785j)
در خط اول، ما ماژول cmath را import کرده و سه متغیر به نامهای a، b و c را به عنوان ضرابی معادله از کاربر می گیریم. سپس، با استفاده از فرمول، دلتا را محاسبه و در نهایت با استفاده از متد cmath.sqrt، هر دو ریشه را محاسبه کرده و نتیجه را چاپ می کنیم.
تا اینجای کار با مفهوم معادله درجه 2 آشنا شدیم و یک مثال از آن را نیز با استفاده زبان پایتون حل کردیم، حالا میتوانیم با استفاده از فرمول مستقیم، جواب معادله دوم درجه را بدست آوریم. مثال زیر به شما در درک این مفهوم کمک خواهد کرد :
import math
def findroots(a,b,c):
delta = (b**2)-(4*a*c)
sqrt_delta = math.sqrt(abs(delta))
if delta > 0:
print("roots are real and diffrent")
print((-b+sqrt_delta)/(2*a))
print((-b-sqrt_delta)/(2*a))
elif delta == 0:
print("roots are same but +-")
print(-b/(2*a),"+i",sqrt_delta)
print(-b/(2*a),"-i",sqrt_delta)
else:
print("roots are complex")
print(- b / (2 * a), " + i", sqrt_delta)
print(- b / (2 * a), " - i", sqrt_delta)
a= int(input("a:"))
b= int(input("b:"))
c= int(input("c:"))
if a==0:
print("a cant be 0")
else:
findroots(a,b,c)
خروجی
Enter a:7 Enter b:5 Enter c:2 Roots are complex -0.35714285714285715 + i 5.5677643628300215 -0.35714285714285715 - i 5.5677643628300215
در کد فوق، ما ماژول math را import کرده و فرمول محاسبه دلتا را تعریف می کنیم. سپس، تابع findRoots را که سه مقدار صحیح را به عنوان ورودی میپذیرد تعریف کرده و در نهایت با استفاده از عبارت های شرطی if-elif-else، ریشهها را بررسی می کنیم.
مقاله مرتبط