KAlgebra/Homework/uk: Difference between revisions

From KDE UserBase Wiki
(Created page with "Category:Осаіта/uk")
(Created page with "Цією функцією можна скористатися так: {{Input |<nowiki>Temp_ost2(4180,40,15,1925,30,70) </nowiki>}} {{Output |<nowiki>finalTemp2(4,180, 40, 15,...")
 
(43 intermediate revisions by 2 users not shown)
Line 40: Line 40:
==Приклад з теорії ймовірностей ==
==Приклад з теорії ймовірностей ==


Let's roll a dice.  We want to know the probability of one face appearing.
Визначимо ймовірність викинути певну грань гральної кістки.
        
        
We can define positive probability, the result of the event being favourable to us, and negative probability, the result of the event being unfavourable to us.
Сприятливим для нас буде викидання відповідної грані, а несприятливим - викидання інших граней.


So you have to pick only one face:
Отже, сприятливим буде лише один варіант із шести:


:probability = face picked / total face = 1/6
:ймовірність = кількість вибраних граней / загальна кількість граней = 1/6


So now we know that when a dice is rolled there is a 1/6 of probability that a face we chose will come up.
Отже тепер ми знаємо, що ймовірність викидання певної грані кістки дорівнює 1/6.


We can set a simple function in '''KAlgebra''' to take this formula in a simple way:
Ви можете створити просту функцію у '''KAlgebra''' для отримання значення ймовірності за означенням:


{{Input|1=<nowiki>probability:=(favorable,total)->favorable/total</nowiki>}}
{{Input|1=<nowiki>jmovirnist:=(spryyatlyvi,zagalom)->spryyatlyvi/zagalom</nowiki>}}


== Numerical Theory ==
== Теорія чисел ==


Let's say that we want to know the sum of all numbers between a bounded interval, for instance 1 - 100. We have to do the sum of all numbers from 0 to 100 if we don't know the rule to get them.
Нехай нам потрібно визначити суму всіх цілих чисел у певному діапазоні, наприклад, від 1 до 100. Знаходження подібної суми без певної вправності у арифметиці (якщо ви знаєте потрібний прийом, це нескладно) справа доволі марудна.
      
      
'''KAlgebra''' offers a great facility to this task. Let's write in console:
У '''KAlgebra''' передбачено чудові можливості для виконання подібних обчислень. Віддайте у консолі такі команди:


{{Input|1= sum(x: x=1..100)}}
{{Input|1= sum(x: x=1..100)}}
      
      
and we get the result:
в результаті отримаємо:
{{Output|1=<nowiki>sum(x: x=1..100)
{{Output|1=<nowiki>sum(x: x=1..100)
= 5050</nowiki>}}
= 5050</nowiki>}}


The syntax indicate this:
Вказана нами синтаксична конструкція призначена для виконання такої послідовності дій:


:1. Bound x as variable
:1. Обмежити діапазон значень x
:2. Take first value of x
:2. Взяти перше значення x
:3. Take second value of x and add the previous value of x
:3. Взяти друге значення x і додати попереднє значення x
:4. Take third value of x and add the previous value of x
:4. Взяти третє значення x і додати попереднє значення x
::...
::...
:N. Take the last value of x and add the last value of x
:N. Взяти останнє значення x і додати останнє значення x


== Electronic ==
== Розрахунок електричних ланцюгів ==


===Example 1===
===Приклад 1===


Let's take a simple circuit a and port with two inputs and one output. To resolve it in '''KAlgebra''' we will write
Розглянемо простий елемент множення з двома вхідними портами та одним вихідним. Для визначення результату у '''KAlgebra''' можна скористатися таким кодом:


{{Input|1=and(variable1, variable2)}}
{{Input|1=and(var1, var2)}}


from which we will get the and value of the input as output.
Ми отримаємо результат логічного множення вхідних змінних.


===Example 2===
===Приклад 2===
    
    
We have a simple circuit: a battery of 3V and two electrical resistances (R1 and R2) put on parallel of 3kOhm. We want to get the current circulating in the circuit.
Розглянемо простий електричний ланцюг: джерело живлення з напругою 3 В та два елементи опору (R1 і R2) з’єднані паралельно з опором 3 кОм. Потрібно визначити струм, який проходитиме ланцюгом.


We have first to calculate the value of the electric resistance expressed according to the law:
Для початку визначимо значення загального опору відповідно до такого закону:


:TotalResistance = (1/R1 + 1/R2)^-1
:R<sub>заг</sub> = (1/R1 + 1/R2)<sup>-1</sup>
:Current = Voltage/TotalResistance
:I = U/R<sub>заг</sub>


Let's write a simple function in '''KAlgebra''' to do this:
Давайте створимо просту функцію у '''KAlgebra''' для виконання обчислень за вказаними формулами:


{{Input|1=totalresistance:=(R1,R2)->(1/R1+1/R2)^-1
{{Input|1=R_zag:=(R1,R2)->(1/R1+1/R2)^-1
current:=(voltage,totalresistance)->voltage/totalresistance}}
I:=(U,R_zag)->U/R_zag}}


Let's see what we get:
Подивимося, що у нас вийшло:
{{Input|1=current(3, totalresistance(3000, 3000))}}
{{Input|1=I(3, R_zag(3000, 3000))}}
{{Output|1=<nowiki>current(3, totalresistance(3 000, 3 000))
{{Output|1=<nowiki>I(3, R_zag(3 000, 3 000))
= 0,002</nowiki>}}
= 0,002</nowiki>}}




==Fluid==
==Теплопровідність==


===Example Problem with Same Material, but Different Volumes and Temperatures===
===Приклад з однаковими матеріалами, але різними об’ємами та температурами===


Now, what if we need to know the final temperature when we mix  40L of 15°C water with 30L of 70°C water?
Давайте знайдеом температуру суміші 40 літрів води з температурою 15°C та 30 літрів води з температурою 70°C?
Using conservation of energy, we know that the initial and final thermal energies are the same, so the final energy is equal to the energy of the first fluid plus the energy of the second fluid(using U for internal energy):<br>
Скористаємося законом збереження енергії. Ми знаємо, енергія суміші є сумою енергій складових, отже (літерою Q ми позначили внутрішню енергію):<br />
:U(final) = U1 + U2
:U<sub>сум</sub> = U1 + U2


Internal energy is equal to the volumetric heat capacity times volume times temperature:<br>
Внутрішня енергія є добутком теплоємності при сталому об’ємі на об’єм і на температуру:<br />
:U = C*V*T
:U = C*V*T


So C(final)*V(final)*T(final) = C1*V1*T1 + C2*V2*T2
Отже C<sub>ост</sub>*V<sub>ост</sub>*T<sub>ост</sub> = C1*V1*T1 + C2*V2*T2


And since the heat capacities are all the same and cancel out, and the final volume is the sum of the two initial volumes:<br>
Оскільки теплоємності є однаковими, на них можна скоротити. Остаточний об’єм дорівнюватиме сумі двох початкових об’ємів:<br />
:(V1+V2)*T(final) = V1*T1 + V2*T2
:(V1+V2)*T<sub>ост</sub> = V1*T1 + V2*T2
::or
::або
:T(final) = (V1*T1 + V2*T2)/(V1+V2)
:T<sub>ост</sub> = (V1*T1 + V2*T2)/(V1+V2)


We can then either use this directly in KAlgebra:
Тепер ми можемо або безпосередньо ввести значення у '''KAlgebra''':
{{Input |<nowiki>(40*15 + 30*70)/(40 + 30)
{{Input |<nowiki>(40*15 + 30*70)/(40 + 30)
</nowiki>}}
</nowiki>}}
{{Output |<nowiki>(40*15+30*70)/(40+30)
{{Output |<nowiki>(40*15+30*70)/(40+30)
=38.5714</nowiki>}}
=38.5714</nowiki>}}
and get the final temperature, or put in a function if we need to repeat the computation:
і отримати остаточну температуру, або створити функцію, якщо обчислення треба буде повторити:
{{Input |<nowiki>finalTemp:=(v1,t1,v2,t2)->(v1*t1 + v2*t2)/(v1+v2)</nowiki>}}
{{Input |<nowiki>Temp_ost:=(v1,t1,v2,t2)->(v1*t1 + v2*t2)/(v1+v2)</nowiki>}}


Which we can then use like this:
Створеною функцією можна скористатися ось так:
{{Input |<nowiki>finalTemp(40,15,30,70)
{{Input |<nowiki>Temp_ost(40,15,30,70)
</nowiki>}}
</nowiki>}}
{{Output |<nowiki>finalTemp(40, 15, 30, 70)
{{Output |<nowiki>Temp_ost(40, 15, 30, 70)
=38.5714</nowiki>}}
=38.5714</nowiki>}}


===Example Problem with Different Fluids===
===Приклад з двома різними рідинами===


Now, suppose the two fluids have different volumetric heat capacities, such as 4180 J/(L*K) for the first liquid (water), and 1925 J/(L*K) for the second liquid (ethanol).
Нехай тепер маємо дві рідини з різними теплоємностями, зокрема 4180 Дж/(л*К) для першої рідини (вода) та 1925 Дж/(л*К) для другої (етиловий спирт).
We will need to refer back to the equation:<br />
Повернімося до рівняння:<br />
:C(final)*V(final)*T(final) = C1*V1*T1 + C2*V2*T2
:C<sub>ост</sub>*V<sub>ост</sub>*T<sub>ост</sub> = C1*V1*T1 + C2*V2*T2


The resultant heat capacity will be the average of the capacities of the first and second fluids, weighted by volume(since it is a volumetric heat capacity rather than mass- or molar-specific):<br />
Остаточна темлоємність буде середньою зваженою величиною відносно теплоємностей першої і другої рідин за об’ємом (оскільки це теплоємність при сталому об’ємі, а не при сталій масі чи молярності):<br />
:C(final) = (C1*V1 + C2*V2)/V(final)
:C<sub>ост</sub> = (C1*V1 + C2*V2)/V<sub>ост</sub>


And plugging this into the previous equation, we get:<br />
Підставляючи це співвідношення до попереднього рівняння, ми отримаємо:<br />
:(C1*V1 + C2*V2)*T(final) = C1*V1*T1 + C2*V2*T2
:(C1*V1 + C2*V2)*T<sub>ост</sub> = C1*V1*T1 + C2*V2*T2
::or
::або
:T(final) = (C1*V1*T1 + C2*V2*T2)/(C1*V1 + C2*V2)
:T<sub>ост</sub> = (C1*V1*T1 + C2*V2*T2)/(C1*V1 + C2*V2)


And either use this formula directly:
Ми можемо або скористатися цією формулою безпосередньо:
{{Input |<nowiki>(4180*40*15 + 1925*30*70)/(4180*40+1925*30)
{{Input |<nowiki>(4180*40*15 + 1925*30*70)/(4180*40+1925*30)
</nowiki>}}
</nowiki>}}
Line 157: Line 157:
=29.1198</nowiki>}}
=29.1198</nowiki>}}


Or write a function if we want to repeat the calculation:
Або створити функцію, якщо можливі подальші обчислення за цією формулою:
{{Input |<nowiki>finalTemp2:=(c1,v1,t1,c2,v2,t2)->(c1*v1*t1 + c2*v2*t2)/(c1*v1+c2*v2)
{{Input |<nowiki>Temp_ost2:=(c1,v1,t1,c2,v2,t2)->(c1*v1*t1 + c2*v2*t2)/(c1*v1+c2*v2)
</nowiki>}}
</nowiki>}}


Which we can then use like this:
Цією функцією можна скористатися так:
{{Input |<nowiki>finalTemp2(4180,40,15,1925,30,70)
{{Input |<nowiki>Temp_ost2(4180,40,15,1925,30,70)
</nowiki>}}
</nowiki>}}
{{Output |<nowiki>finalTemp2(4,180, 40, 15, 1,925, 30, 70)
{{Output |<nowiki>finalTemp2(4,180, 40, 15, 1,925, 30, 70)
=29.1198</nowiki>}}
=29.1198</nowiki>}}
Screenshot of '''KAlgebra''' after running these computations:
Знімок вікна '''KAlgebra''' після виконання обчислень:
[[Image:KAlgebra-Fluids-Example-Screenshot.png|400px|center]]
[[Image:KAlgebra-Fluids-Example-Screenshot.png|400px|center]]


[[Category:Осаіта/uk]]
[[Category:Освіта/uk]]

Latest revision as of 16:27, 29 April 2011

Other languages:

На цій сторінці наведено приклади застосування KAlgebra для розв’язання конкретних задач.

Приклад з комбінаторики

Нехай слід визначити кількість способів, якими можна розсадити 6 осіб (p1, p2 ... p6) навколо круглого столу з 6 стільцями.

Очевидно, можливі такі варіанти:

p1 p2 p3 p4 p5 p6
p1 p2 p3 p4 p6 p5
p1 p2 p3 p5 p4 p6
p1 p2 p3 p5 p6 p4

і так далі.

Можна зауважити, що останню позицію за столом можна заповнити лише у один спосіб, передостанню — у 2, далі — у 3, у 4, у 5, і нарешті у 6 способів. Отже загальну кількість варіантів можна визначити за допомогою простої формули:

6*5*4*3*2*1

Введемо цю формулу у консоль KAlgebra, і програма обчислить відповідь:

(((((1)*2)*3)*4)*5)*6
=720

Подібний розподіл значень за варіантами, де кількість значень дорівнює кількості варіантів називається «переставляннями».

Ви можете скористатися функцією KAlgebra для обчислення кількості таких переставлянь (ця функція називається «факторіал»):

factorial(6)

дасть нам

factorial(6)
=720

Як бачите, ми отримали той самий результат.

Приклад з теорії ймовірностей

Визначимо ймовірність викинути певну грань гральної кістки.

Сприятливим для нас буде викидання відповідної грані, а несприятливим - викидання інших граней.

Отже, сприятливим буде лише один варіант із шести:

ймовірність = кількість вибраних граней / загальна кількість граней = 1/6

Отже тепер ми знаємо, що ймовірність викидання певної грані кістки дорівнює 1/6.

Ви можете створити просту функцію у KAlgebra для отримання значення ймовірності за означенням:

jmovirnist:=(spryyatlyvi,zagalom)->spryyatlyvi/zagalom

Теорія чисел

Нехай нам потрібно визначити суму всіх цілих чисел у певному діапазоні, наприклад, від 1 до 100. Знаходження подібної суми без певної вправності у арифметиці (якщо ви знаєте потрібний прийом, це нескладно) справа доволі марудна.

У KAlgebra передбачено чудові можливості для виконання подібних обчислень. Віддайте у консолі такі команди:

sum(x: x=1..100)

в результаті отримаємо:

sum(x: x=1..100)
= 5050

Вказана нами синтаксична конструкція призначена для виконання такої послідовності дій:

1. Обмежити діапазон значень x
2. Взяти перше значення x
3. Взяти друге значення x і додати попереднє значення x
4. Взяти третє значення x і додати попереднє значення x
...
N. Взяти останнє значення x і додати останнє значення x

Розрахунок електричних ланцюгів

Приклад 1

Розглянемо простий елемент множення з двома вхідними портами та одним вихідним. Для визначення результату у KAlgebra можна скористатися таким кодом:

and(var1, var2)

Ми отримаємо результат логічного множення вхідних змінних.

Приклад 2

Розглянемо простий електричний ланцюг: джерело живлення з напругою 3 В та два елементи опору (R1 і R2) з’єднані паралельно з опором 3 кОм. Потрібно визначити струм, який проходитиме ланцюгом.

Для початку визначимо значення загального опору відповідно до такого закону:

Rзаг = (1/R1 + 1/R2)-1
I = U/Rзаг

Давайте створимо просту функцію у KAlgebra для виконання обчислень за вказаними формулами:

R_zag:=(R1,R2)->(1/R1+1/R2)^-1
I:=(U,R_zag)->U/R_zag

Подивимося, що у нас вийшло:

I(3, R_zag(3000, 3000))
I(3, R_zag(3 000, 3 000))
= 0,002


Теплопровідність

Приклад з однаковими матеріалами, але різними об’ємами та температурами

Давайте знайдеом температуру суміші 40 літрів води з температурою 15°C та 30 літрів води з температурою 70°C? Скористаємося законом збереження енергії. Ми знаємо, енергія суміші є сумою енергій складових, отже (літерою Q ми позначили внутрішню енергію):

Uсум = U1 + U2

Внутрішня енергія є добутком теплоємності при сталому об’ємі на об’єм і на температуру:

U = C*V*T

Отже Cост*Vост*Tост = C1*V1*T1 + C2*V2*T2

Оскільки теплоємності є однаковими, на них можна скоротити. Остаточний об’єм дорівнюватиме сумі двох початкових об’ємів:

(V1+V2)*Tост = V1*T1 + V2*T2
або
Tост = (V1*T1 + V2*T2)/(V1+V2)

Тепер ми можемо або безпосередньо ввести значення у KAlgebra:

(40*15 + 30*70)/(40 + 30)
(40*15+30*70)/(40+30)
=38.5714

і отримати остаточну температуру, або створити функцію, якщо обчислення треба буде повторити:

Temp_ost:=(v1,t1,v2,t2)->(v1*t1 + v2*t2)/(v1+v2)

Створеною функцією можна скористатися ось так:

Temp_ost(40,15,30,70)
Temp_ost(40, 15, 30, 70)
=38.5714

Приклад з двома різними рідинами

Нехай тепер маємо дві рідини з різними теплоємностями, зокрема 4180 Дж/(л*К) для першої рідини (вода) та 1925 Дж/(л*К) для другої (етиловий спирт). Повернімося до рівняння:

Cост*Vост*Tост = C1*V1*T1 + C2*V2*T2

Остаточна темлоємність буде середньою зваженою величиною відносно теплоємностей першої і другої рідин за об’ємом (оскільки це теплоємність при сталому об’ємі, а не при сталій масі чи молярності):

Cост = (C1*V1 + C2*V2)/Vост

Підставляючи це співвідношення до попереднього рівняння, ми отримаємо:

(C1*V1 + C2*V2)*Tост = C1*V1*T1 + C2*V2*T2
або
Tост = (C1*V1*T1 + C2*V2*T2)/(C1*V1 + C2*V2)

Ми можемо або скористатися цією формулою безпосередньо:

(4180*40*15 + 1925*30*70)/(4180*40+1925*30)
((4,180*40)*15+(1,925*30)*70)/(4,180*40+1,925*30)
=29.1198

Або створити функцію, якщо можливі подальші обчислення за цією формулою:

Temp_ost2:=(c1,v1,t1,c2,v2,t2)->(c1*v1*t1 + c2*v2*t2)/(c1*v1+c2*v2)

Цією функцією можна скористатися так:

Temp_ost2(4180,40,15,1925,30,70)
finalTemp2(4,180, 40, 15, 1,925, 30, 70)
=29.1198

Знімок вікна KAlgebra після виконання обчислень: