چگونه یک معادله درجه 3 بسازیم؟
فرض می کنیم بخواهیم یک منحنی درجه 3 ؛ داشته باشیم (x-3)*(x-5)*(x-7)= f(x) طوریکه به ازای هر کدام از 3 نقطه روی محور x ها ؛ 3 یا 5 یا 7 ؛ مقدار تابع کل برابر صفر شود. در حقیقت این نقطه ها شیب های منحنی هستند و میتوان در این نقاط بر منحنی مماس رسم کرد.
در نقطه 5 شیب صفر میشود اما تغییر جهت منحنی هم اتفاق می افتد. در نقاط 3 و 7 هم میتوان بر منحنی مماس منفی و مثبت رسم کرد.
بیایید این سه پرانتز (x-3) , (x-5) , (x-7) را در هم ضرب می کنیم تا یک معادله درجه 3 بدست آید. وقتی x به توان 3 برسد یعنی معادله درجه 3 است.
عمل ضرب را انجام میدهم و چنین معادله ای دارم:
f(x) =(x-3)*(x-5)*(x-7)= x^3 – 15*(x^2) + 71*x – 105
به ازای x=3 مقدار این تابع برابر صفر است
# define a function to calculate y-value at given x
p = lambda x: x**3 - 15*(x**2) + 71*x - 105
# replace '3' in the equation and calculate new coefficient
new_coeff = str(p(3)).replace('3', 'x') # replace 3 with x for x=3
# calculate y-value at x=3
y_val = p(3)
print(f"The calculated value of the polynomial at x=3 is {y_val} and new coefficient is {new_coeff}")
جوابی که بدست میآید :
ترجمه این جواب چنین است :
مقدار محاسبهشدهی چندجملهای در x=3 برابر با 0 و ضریب جدید 0 است.
یعنی اگر بجای x در پرانتزها عدد 3 قرار بدهید همان اولی کل چند جمله ای را صفر میکند . همچنین اگر پس از ضرب و مرتب کردن مجدد تک تک این اعداد را جداگانه قرار بدهید عدد جدید یاهمان مقدار جدید عددی چند جمله ای برابر با 0 خواهد شد.
The calculated value of the polynomial at x=3 is 0 and new coefficient is 0
بار دیگر بجای x ، جداگانه مقدار x=5 و x=7 را قرار می دهیم باز هم همین جواب را داریم.
The calculated value of the polynomial at x=5 is 0 and new coefficient is 0 The calculated value of the polynomial at x=7 is 0 and new coefficient is 0
شکل کلی این معادله را به کمک پایتون طی کد زیر رسم میکنیم :
import numpy as np
import matplotlib.pyplot as plt
p = lambda x: x**3 -15*(x**2) + 71*x - 105 # define the polynomial
x = np.linspace(-50, 50, 400) # generate a range of values for x
y = [p(xi) for xi in x]
plt.figure(figsize=(10, 8))
plt.plot(x, y) # plot the polynomial
plt.title('Plot of the Polynomial') # set title for plot
plt.xlim(-10, 20) # set limits for x-axis
plt.ylim(-1000, 1000) # set limits for y-axis
plt.axhline(0, color='black',linewidth=0.6) # draw a horizontal line at y = 0
plt.xlabel('x') # label the x-axis
plt.ylabel('y') # label the y-axis
plt.grid(True) # include gridlines on plot
plt.show() # display the plot
ریشهها از حل معادله f’(x) = 0 (مشتق اول برابر با صفر) بدست می آیند.
مشتق اول این معادله چنین است : 3x^2-30*x+71
و ضرایب آن برابرند با : 3 و-30 و 71 و معادله مشتق اول 3x^2-30*x+71=0 خواهد بود که یک معادله درجه دوم است و باید حل شود جوابهای آن بر اساس درسهای گذشته به شرح زیر بدست می آید : ریشه های این معادله یعنی جوابهای مشتق اول و نمودار آن به شرح زیر محاسبه می شوند: در این نقاط y =0 میشود.
با استفاده از ماژولهای math , numpy نمودار را رسم و ریشه ها را محاسبه می کنیم.
import numpy as np
import matplotlib.pyplot as plt
# coefficients in descending order of power
coeff = [1, -30, 71] # x^2 -30x + 71
roots = np.roots(coeff)
delta = roots[0]*roots[1] # Delta = a*c for second degree equation
print("The roots are:", roots)
print("Delta is: ", delta)
p = lambda x: x**2 -30*x +71 # define the polynomial
x = np.linspace(-50, 50, 400) # generate a range of values for x
y = [p(xi) for xi in x]
plt.figure(figsize=(10, 8))
plt.plot(x, y) # plot the polynomial
for i, root in enumerate(roots):
plt.axvline(root, color='r', linestyle='--', label=f'Root {i+1}') # Mark roots on x-axis
plt.title('Plot of the Polynomial and its Roots') # set title for plot
plt.xlim(-50, 50) # set limits for x-axis
plt.ylim(-2000, 2000) # set limits for y-axis
plt.axhline(0, color='black',linewidth=0.6) # draw a horizontal line at y = 0
plt.xlabel('x') # label the x-axis
plt.ylabel('y') # label the y-axis
plt.legend() # show the legend on plot
plt.grid(True) # include gridlines on plot
plt.show() # display the plot
یا اگر بخواهیم با دستورات sympy این معادله راحل کنیم و نمودارش را بکشیم :
import sympy as sp
a=3
b=-30
c=71
x=sp.symbols ('x')
f=a*x**2+b*x+c
sp.plot(f,(x,-50,+50))
و نقطه عطف هم از حل معادله f”(x) = 0 (مشتق دوم برابر با صفر) به دست میآید.
مشتق دوم معادله هم برابر است با : 6x-30 که اگر مساوی صفر قرار دهیم 6x-30 =0 و x=5 به دست خواهد آمد.
اگر در نمودار همان منحنی اولی دقت کنید، مسیر منحنی اصلی در نقطه x=5 تغییر کرده و نقطه عطف آن یا به عبارت دقیقتر ، جواب مشتق دوم آن x=5 است.