401

Re: Шлях на математичну вершину

Давайте трохи голову розморочимо. Всі ці числа - дійсні, навіть більше - раціональні. А ви кажете про запис числа звичайним дробом чи десятковим. Це тільки запис, а числа одні й ті самі.
Єресь про "більший дріб" взагалі не коментуватиму.
І вас хіба не вчили, як утворюються десяткові дроби? Що позначає цифра в розряді одразу після коми, що позначає друга і т.д.? Підкажу: 123 позначає 1*10^2+2*10^1+3*10^0.
Там цікавіше питання про періодичні дроби і іраціональні числа, але то окрема тема.

Подякували: Betterthanyou1

402 Востаннє редагувалося Betterthanyou (22.10.2016 17:08:33)

Re: Шлях на математичну вершину

koala написав:

Єресь про "більший дріб" взагалі не коментуватиму.

Це ? Означення. Дріб більший якщо чисельник у нього більший, а знаменник менший.

Я тут випадково зробив помилку

Означення. Дріб більший якщо чисельник у нього більший або дріб більший якщо у нього знаменник менший. (тобто має бути один чисельник, або один знаменник)

Приклад
5/7 і 3/7; 5>3 того 5/7 > 3/7

Приклад
4/5 і 4/3; 5>3 того 4/5 < 4/3

403

Re: Шлях на математичну вершину

Ваше означення довге та ще й неповне, бо якщо не співпадають чисельник з знаменником, то ніяких висновків не можна зробити. Множте чисельник одного на зннаменник іншого і користуйтесь визначенням для цілих чисел.

Подякували: Betterthanyou1

404 Востаннє редагувалося Betterthanyou (23.10.2016 08:10:04)

Re: Шлях на математичну вершину

Є функція
у = 12 / х
де х = -(2/3)

Якщо в "багатоповерховому" дробі зробити так
a/b/c = (a/b) / (c/1) = (a/b) * (1/c)
то я зніму "один поверх", але цей мінус мені заважає, я вже забув що з ним робити. Ще й нічого не гуглиться.

у = -2 чи -18 ?

|(12/2) / (3/1)| = |(12/2) * (1/3)| = -(12/6) = -2

|(12/1) / (2/3)| = |(12/1) * (3/2)| = -(36/2) = -18

405

Re: Шлях на математичну вершину

Ну у вас явно -18, бо x можна обчислити перед тим, як підставляти.

Але, схоже, ділення не асоціативне, тому писати a/b/c не варто. У вас могла бути функція x/3, в яку можна підставити -12/2 і отримати той самий -12/2/3, але вже з відповіддю -2.

Подякували: Betterthanyou1

406 Востаннє редагувалося Betterthanyou (24.10.2016 12:56:20)

Re: Шлях на математичну вершину

doc
Я знаю що Matlab і GNU Octave підтримують роботу з матрицями, але чи підтримують ці програми СЛАР (Систему Лінійних Алгебраїчних Рівнянь) ? Наприклад метод Крамера чи Гауса ? Тобто я маю на увазі не робити самому функції цих методів, а скористатися стандартними.

Якщо ви захочете допомогти мені в пошуках то я залишив посилання на документацію doc

407

Re: Шлях на математичну вершину

Наскільки я знаю, для роботи з системами лінійних рівнянь Ax = b (A матриця, x та b вектори) octave використовує бібліотеку BLAS.

Чи ставить її собі автоматично, чи вона має стояти у системі окремо — не знаю.

Подякували: Betterthanyou1

408

Re: Шлях на математичну вершину

Що не так з визначником матриці (determinant)

Якщо скористатися функцією det() і матриця при цьому буде правильна то визначник обраховується.
А неправильна визначник має дорівнювати 0 то щось йде не так і я отримую неочікуваний результат.

a =
    1    2    3
    5    6    7
    9   10   11

Якщо вручну то
a(1,1) * det([a(2,2),a(2,3);a(3,2),a(3,3)]) - a(1,2) * det([a(2,1),a(2,3);a(3,1),a(3,3)]) + a(1,3) * det([a(2,1),a(2,2);a(3,1),a(3,2)]) = 0

det(a) = -7.9936e-15

В чому проблема ?

409

Re: Шлях на математичну вершину

Так це ж теж нуль практично в усіх практичних застосуваннях

Подякували: koala, Betterthanyou2

410

Re: Шлях на математичну вершину

quez написав:

Так це ж теж нуль практично в усіх практичних застосуваннях

Нічого не зрозумів.

411 Востаннє редагувалося Vo_Vik (25.10.2016 17:21:07)

Re: Шлях на математичну вершину

Betterthanyou написав:
quez написав:

Так це ж теж нуль практично в усіх практичних застосуваннях

Нічого не зрозумів.

Це десь в 1250 разів ближче до нуля ніж край атому водню від його центру в метрах.

Подякували: quez, Betterthanyou2

412

Re: Шлях на математичну вершину

Це - нуль в межах похибки. -8*10^-15, якщо запис з "e" незрозумілий.

Подякували: ReAl, Betterthanyou2

413 Востаннє редагувалося ReAl (25.10.2016 19:10:26)

Re: Шлях на математичну вершину

Vo_Vik написав:

Це десь в 1250 разів ближче до нуля ніж край атому водню від його центру в метрах.

Це якщо в метрах.
А якщо в кулонах, а потім в електронах, то це разів у двадцять більше, ніж влазить у комірку багатомегапіксельного малого cmos-сенсора, як у сучасних мобілках.

Тобто правильно цей «майже нуль» порівнювати з первинними числами і похибкою обчислень, як сказав koala.
Все інше то гадання «купа — не купа?».

Подякували: Betterthanyou1

414 Востаннє редагувалося Betterthanyou (26.10.2016 03:10:33)

Re: Шлях на математичну вершину

Прихований текст

А як правильно записати що це майже нуль

Замість такої умови determinantA == 0, потрібно писати що таке

if(determinantA < 1.e-5 && determinantA > -1.e-5)
alphaArr = "Error! Determinant of the matrix is zero";
return;
endif

Чи краще скористатися якимись функціями заокруглення, або зробити якось по іншому ?

415 Востаннє редагувалося Betterthanyou (26.10.2016 04:58:59)

Re: Шлях на математичну вершину

Якщо хто буде шукати СЛАР
То я не знайшов метод Гауса і Крамера, але Крамера я написав тут, щоб показувати кожну дію просто достатньо забрати ";" а замість неї поставити кому ","

А якщо вас цікавить не методи а сам розв'язок то це дуже просто

ReAl вже сказав як це робить. Я додам ще один приклад

Приклад
Є система рівнянь
2    5    4    30
1    3    2    150
2   10    9    110

Перше що нам треба зробити це матрицю 3x3, що складається з перших трьох стовпців і рядків
a=[2,5,4;1,3,2;2,10,9]

Потім матрицю що складається з останнього стовпця і всіх його рядків
b=[30;150;110]

І ділимо першу матрицю на другу a\b, ось і все, отримуємо результат.

416 Востаннє редагувалося ReAl (26.10.2016 09:32:28)

Re: Шлях на математичну вершину

Betterthanyou написав:

А як правильно записати що це майже нуль

Визначити десь змінну det_eps, куди заносити величину для порівнювання, бо просто числа в умовах не несуть інформації для того, хто читає код. Краще значення із «самодокументованим» іменем.
З det_eps порівнювати абсолютне значення if (abs(determinantA) <= det_eps), щоб не писати дві умови.

Заразом легко міняти по всій програмі. Воно все ж таки має залежати від вхідних даних, бо якщо самі елементи матриці бовтаються близько 1e-12 (ну, наприклад, ємність у районі одиниць пікофарад), то det треба порівнювати з 1e-17 хоча б.
Тобто абсолютне значення визначника матриці має бути більшим за eps(макс_абсолютне_значення_елемента) і при цьому бути достатньо далеко від realmin.

Подякували: Betterthanyou1

417

Re: Шлях на математичну вершину

Класна тема :) підтримую вас у вивчені математики. Вона корисна у всіх проявах і сферах. А не так як ми всім гуртом кричали що то все не потрібно, коли були в школі :) Успіхів вам!

Подякували: Betterthanyou, FakiNyan2

418

Re: Шлях на математичну вершину

Потрібно розв'язати систему рівнянь методом підстановки.
2х+у=6
4х-3у=2

х = 6-у
4(6-у)-3у=2
24-4у-3у=2
-4у-3у=2-24
-7у=-22
-22/-7 = 3.14

а тепер додатково ділю на два (бо не "х" а "2х")

у = 3.14/2 = 1.57

підставляю у перше рівняння

х=6-1.57 = 4.43

у=1.57
х=4.43

Це неправильно (перевіряв Крамером і + в octave), має вийти у,х=2, де я помилився ?

419

Re: Шлях на математичну вершину

Betterthanyou написав:

Отут
2х+у=6 => х = 6-у

Подякували: Betterthanyou1

420 Востаннє редагувалося koala (28.10.2016 15:54:11)

Re: Шлях на математичну вершину

а тепер додатково ділю на два (бо не "х" а "2х")

Творчий підхід, однак. Якщо ви помітили, що формула
х = 6-у
помилкова, то треба не ділити десь у кінці y на 2, а міняти формулу на правильну і повністю перераховувати весь розв'язок.

Подякували: Betterthanyou1