Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

All published worksheets from http://sagenb.org

Views: 168731
Image: ubuntu2004

УРОК 6.1

Тема. Розв'язування рівнянь та систем рівнянь.
Мета: засвоїти допустимі способи розв'язування рівнянь.

1. Пошук аналітичних розв'язків рівнянь та їх систем.
2. Пошук наближених значень коренів рівняння.

1. Пошук аналітичних розв'язків рівнянь та їх систем. Для відшукання аналітичних розв'язків деяких рівнянь та їх систем в SAGE призначено функцію solve().
Наведемо допустимі формати застосування функції solve() для розв'язання рівнянь:

solve(eqv1==eqv2)
solve(eqv1==eqv2,var)
solve(eqv,var)

Зверніть увагу!
Рівняння в SAGE визначається як вираз виду eqv1==eqv2 (ліва частина рівняння відділяється від його правої частини подвоєним символом рівності - "= =").

Застосування функції solve() у форматі solve(eqv1==eqv2) має місце для розв'язування рівняння з однією змінною.
Приклад 6.1.1. Розв'язати рівняння:
а) 9x2=x+39x^2=x+3;
б) 7t21t=3t27t^2-1-t=3t^2.

solve(9*x^2==x+3)
[x == (1 - sqrt(109))/18, x == (sqrt(109) + 1)/18]

var('t') solve(7*t^2-1-t==3*t^2)
[t == (1 - sqrt(17))/8, t == (sqrt(17) + 1)/8]

Допускається для розв'язання рівняння з однією змінною застосування функції у другому форматі - з зазначенням змінної, відносно якої треба розв'язати рівняння.

var('t'); solve(7*t^2-1-t==3*t^2,t)
t [t == (1 - sqrt(17))/8, t == (sqrt(17) + 1)/8]

Але за даних умов такий вибір неможна вважати доречним. Застосування функції у форматі solve(eqv1==eqv2,var) вважається виправданим, і навіть необхідним, у випадку розв'язання рівняння з кількома змінними (або рівняння з параметрами).
Приклад 6.1.2. Розвязати рівняння 5x2ax=35x^2-ax=-3:
а) відносно aa;
б) відносно xx.

var('a') solve(5*x^2-a*x==3,a)
[a == (5*x^2 - 3)/x]
solve(5*x^2-a*x==3,x)
[x == (a - sqrt(a^2 + 60))/10, x == (sqrt(a^2 + 60) + a)/10]

Звернення до функції solve() у форматі solve(eqv,var) допускається, якщо дане рівняння є рівнянням виду eqv=0, наприклад:

solve(x^2+5*x-6,x)
[x == -6, x == 1]

Не виключається для даного рівняння застосування функції solve() у форматах solve(eqv1==eqv2) та solve(eqv1==eqv2,var):

solve(x^2+5*x-6==0)
[x == -6, x == 1]
solve(x^2+5*x-6==0,x)
[x == -6, x == 1]

Функція solve() може бути застосована для розв'язання систем рівнянь. При цьому, формат звернення має бути таким:

solve([eqv1,eqv2,...,eqvn],var1,var2,...,varn)

Зверніть увагу!
1. Першим параметром функції solve() є множина, елементами якої є рівняння даної системи.
2. Кількість змінних, відносно яких слід виконати розв'язання системи, співпадає з кількістю рівнянь у системі.

Продемонструємо на прикладах застосування функції solve() для розв'язання систем рівнянь.
Приклад 6.1.3. Розвязати системи рівнянь:
1) {2xy=7x+y=4\left\{ \begin{array}{ll} 2x-y=7\\ x+y=4 \end{array} \right. ;

2) {ax+by=cex+fy=g\left\{ \begin{array}{ll} ax+by=c\\ ex+fy=g \end{array} \right. а) відносно xx, yy; б) відносно aa, ee.

var('x,y,z') solve([2*x-y==7,x+y==4],x,y)
[[x == 11/3, y == 1/3]]
var('a,b,c,e,f,g,x,y') solve([a*x+b*y==c,e*x+f*y==g],x,y)
[[x == (b*g - c*f)/(b*e - a*f), y == (c*e - a*g)/(b*e - a*f)]]
var('a,b,c,e,f,g,x,y') solve([a*x+b*y==c,e*x+f*y==g],a,e)
[[a == (c - b*y)/x, e == (g - f*y)/x]]
solve(abs(x-2)==1)
[abs(x - 2) == 1]
б) вираз виду F(x)==G(x):
solve(sin(x)-x-pi/2==0)
[x == (2*sin(x) - pi)/2]
в) множина виразів виду F(x)==G(x):
solve(3*sin(x)^2-cos(x)==2)
[sin(x) == -sqrt(cos(x) + 2)/sqrt(3), sin(x) == sqrt(cos(x) + 2)/sqrt(3)]

В такому випадку можна відшукати наближені значення коренів рівнянь. Для визначення наближеного значення кореня рівняння в SAGE призначено функцію find_root().
Формат застосування функції find_root():

find_root(eqv,a,b)
де eqv - вираз, який є правою частиною рівняння виду eqv=0, рівносильного даному рівнянню;
a - лівий кінець відрізку, на якому буде виконуватися пошук наближеного значення кореня;
b - правий кінець відрізку.

Очевидно, що перш ніж застосувати функцію для пошуку наближеного значення кореня (чи корені) рівняння треба відділити корінь (чи корені) графічно, тобто визначити проміжки, в межах якого міститься тільки один корінь.
Для цього, виконують побудову графіка функції, нулі якої є коренями даного рівняння. (Або будують графіки лівої і правої частини рівняння.)
Продемонструємо на прикладах хід відшукання наближених значень коренів рівнянь, які не могли бути розв'язані при зверненні до функції solve().
Приклад 6.1.4. Знайти наближені значення кореня (чи коренів) рівняння x2=1|x-2|=1.

exp1=abs(x-2)-1 plot(exp1,-10,10)
print 'x1=',find_root(exp1,0,2.5) print 'x2=',find_root(exp1,2.5,5)
x1= 1.0 x2= 3.0

Приклад 6.1.5. Знайти наближені значення кореня (чи коренів) рівняння sinxxπ2=0\sin{x}-x-\frac{\pi}{2}=0.

exp2=sin(x)-x-pi/2 plot(exp2,-10,10)
print 'x=',find_root(exp2,-5,0)
x= -2.30988146001

Приклад 6.1.6. Знайти наближені значення кореня (чи коренів) рівняння 3sin2xcosx=23\sin^2{x}-\cos{x}=2.

exp3=3*sin(x)^2-cos(x)-2 show(plot(exp3,-3*pi,3*pi))
print 'x1=',find_root(exp3,0,2) print 'x2=',find_root(exp3,2,3) print 'x3=',find_root(exp3,3,4) print 'x4=',find_root(exp3,4,6)
x1= 1.12158133044 x2= 2.44587180173 x3= 3.83731350545 x4= 5.16160397674