Loading...
mishedon avatar mishedon 3 Точки

Linear Algebra Exercise

Привет!

Правя тази тема за въпроси, свързани със съответното упражнения.

Имам съмнения за коефициентите, които получих в Problem 1 при e1, e2 = [[2, 3], [-5, 1]].

Моят резултат е :

Coefficients:  [-1.31176471  2.04117647]

Какво получавате? Нещо не ми се връзва уравнението -1.3 * [2, 3] + 2.04 * [-5, 1] = [3.5, 8.6]

Тагове:
0
Math Concepts for Developers
Vesso1980 avatar Vesso1980 486 Точки

Здравей,

и при мен излизат същите стойности.

0
ddrenski avatar ddrenski 2 Точки
Привет, аз получих Coefficients: [32.8 -8.9] и сега като ви гледам си мисля, че съм се омазал нейде. :-)
0
ddrenski avatar ddrenski 2 Точки

Ако сметна v=np.linalg.solve(A, b) - получавам същите резултати като вас, но не трябва ли да се сметне инвертираната А - тоест v=np.linalg.solve(A_inv, b), а A_inv=np.linalg.inv(A)? Тогава получавам моя резултат.

0
mishedon avatar mishedon 3 Точки

 

Хммм... Май си отговорих сам - ако се опиташ да го решиш като система уравнения според мен нещата изглеждат така (x = ламбда 1, y = ламбда 2):

| 2x + 3y = 3.5

| -5x + y = 8.6

-------------------

| y = 8.6 + 5x

| 2x + 3 (8.6 + 5x) = 3.5 <=> 17x + 25.8 = 3.5 <=> 17x = -22.3

-------------------

От това излиза, че x = -1.31...

А y = 8.6 + 5(-1.31) <=> y = 8.6 - 6.55 <=> y= 2.05 някъде. С малки закръгляния. А защо трябва A да се инвертира?

0
mishedon avatar mishedon 3 Точки

Оф разменил съм ги - но поне това доказва, че -1.31 и 2.05 НЕ са решения, защото не удовлетворяват равенството. Ще опитам още веднъж с риск да спамя - ако някой вижда грешка моля да я посочи :) Опитваме се да намерим истината.

x[2, 3] + y[-5, 1] = [3.5, 8.6]

| 2x - 5y = 3.5
| 3x + y = 8.6

| y = 8.6 - 3x
| 2x - 5 (8.6 - 3x) = 3.5

=> 17x = 46.5
x = 2.7353

=> y = 8.6 - 8.2059 = 0.39

Обаче ако заместим обратно тези числа - началното уравнение по мои сметки излиза (с малки разлики заради приближенията):

2.7[2, 3] + 0.39[-5, 1] = [3.5, 8.6]
[5.4, 8.1] + [-1.95, 0.39] =  [3.45, 8.6]

Сега въпросът остава - какво бъркам при параметрите на функцията в python

0
30/04/2018 19:12:51
ThePSXHive avatar ThePSXHive 436 Точки

Предполагам, че обяснениято за объркването е свързано с правило от линейната алгебра. В numpy (както и в линейната алгебра) решението на тази система сe представя с общата ф-ла X = A^(-1) x B. Това налага и намирането на инвертираната (обратната) матрица, и затова решението на ddrenski е вярното. Защо получаваш верния резултат при размяната на коефициентите? Защото едно правило от ЛА гласи, че размяната на редовете със стълбовете не променя стойността на една детерминанта, а при определянето на обратната матрица се изчислява и стойността на детерминантата с коефициентите от уравнението. Тоест, стойността на детерминантите:

|a1 b1|
|a2 b2|

и

|a1 a2|
|b1 b2|

е една и съща, а оттам и обратната матрица получава идентичен вид.

0
mishedon avatar mishedon 3 Точки

Добре - видях формулата, пробвах я, получих същите резултати като ddrenski, но въпреки това нещо не ми се връзва.

Ако приемем, че А = np.array([e1, e2]) и извикаме solve(inv(A), np.array(v)) получаваме споменатото горе:

[32.8, -8.9]

Обаче - като го заместим в уравнението - нещата не равнят:

32.8 [2, 3] - 8.9 [-5, 1] = [3.5, 8.6]

[65.6, 98.4] + [44.5, -8.9] = [3.5, 8.6]

Гледах и клипчета за solve... https://www.youtube.com/watch?v=44pAWI7v5Zk

Според мен трябва да се промени начинът на формиране на np.array за А. Правилното ми се вижда np.array([e1[0], e2[0]], [e1[1], e2[1]]) - по този начин, без инвертирано А, получавам:

Coefficients:  [2.73529412 0.39411765]

Този резултат вече, удовлетворява началното уравнение. Има ли резон?

0
Vesso1980 avatar Vesso1980 486 Точки

Защо да си ги размениел, аз мисля , че в първия вариант, в който показа уравненията беше правилен и когато заместим x и y с коефициентите се получаваха правилните стойности на v. 

Имаме базисните вектори е1 и е2 с координати [2, 3] и [-5, 1]  съответно. В случая a1 = 2, b1 = 3 и a2 = -5, b2 = 1 и се получават уравненията:

| 2x + 3y = 3.5

| -5x + y = 8.6

Не мога да разбера защо трябва да инвертираме. В условието пише "Finding the unknown coefficients is the same as solving "a linear system(with only one equation) v=λ1e1+λ2e2" . Мисля си, че ако трябваше да се инвертира, щеше да бъде споменато.

 

0
mishedon avatar mishedon 3 Точки

В следния случай:

| 2x + 3y = 3.5

| -5x + y = 8.6

се получават Coefficients:  [-1.31176471  2.04117647].

Проблемът в тези резултати според мен е, че ако заместим в v=λ1e1+λ2e2 не се получава равенство:

-1.3 * [2, 3] + 2.04 * [-5, 1] = [3.5, 8.6]

[-2.6, -3.9] + [-10.2, 2.04] = [3.5, 8.6]

[-12.8, -1.86] != [3.5, 8.6]

Може и аз да съм в голяма грешка...

0
donton avatar donton 4 Точки

Здравейте, някой има ли проблем с "import skimage.io". Пробвах и с "from skimage import io"===DLL load failed: Указаният модул не е намерен.

Инсталирах на ново scikit-image и нищо...Някой с решение на проблема? Благодаря

0
donton avatar donton 4 Точки

Това реши проблема:

https://stackoverflow.com/questions/43264773/pil-dll-load-failed-specified-procedure-could-not-be-found

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.