2016-04-06 2 views
-1

Я хочу решить следующую систему уравнений в Excel.Решение систем уравнений в Excel

enter image description here

X1, Х2, σ1 и σ2 и S все известны. Я хочу решить эту систему одновременно, чтобы обнаружить B и σ. Это относительно тривиально делать вручную. Я могу обнаружить B и σ для одного момента времени без каких-либо проблем.

Однако в Excel я хочу создать временные ряды B для различных значений S, X и т. Д. В разные моменты времени. Поэтому мне нужно будет решить эту систему снова и снова сотни раз, чтобы создать этот временной ряд.

Какой инструмент в Excel или VBA можно использовать для:

а) решить данную систему уравнений для заданных входов всех переменных, кроме B и σ

б) автоматизируют процесс, так что я могу решить одну и ту же систему сотни раз для разных значений X1, X2, S, σ1 и σ2

ответ

2

Вы можете решать уравнения аналитически, чтобы дать эти формулы рабочего листа:

B:

=-(1/sigma2-1/sigma1)/(LN(X2/S)/(X2-S)/sigma2-LN(X1/S)/(X1-S)/sigma1) 

сигм:

=sigma1/(1+B*LN(X1/S)/(X1-S)) 

или

=sigma2/(1+B*LN(X2/S)/(X2-S)) 

Кроме того, можно вывести формулу для сигма, что не зависит от B:

=(sigma2*(X2-S)/LN(X2/S)-sigma1*(X1-S)/LN(X1/S))/((X2-S)/LN(X2/S)-(X1-S)/LN(X1/S)) 

я предположил натуральных логарифмов; если вы указали базу 10 логов, то замените LOG10 на LN.

Надеюсь, что помогает

+0

спасибо! вы можете показать мне, как вы получили это выражение для B? Я получаю другое решение, когда решаю систему уравнений – beeba

+0

. Мое решение таково: http: // imgur.com/MqTLXKB – beeba

+0

@beeba Ваше решение эквивалентно моему. Чтобы получить от вашего до моего: 1. объединить термины 1 и 2 в знаменателе, чтобы получить n (S-w) ln (x/S). То же самое для термов 3 и 4, чтобы получить v (S-x) ln (w/S). 2. Разделите как числитель, так и знаменатель через be (S-w) (S-x), оставляя (n-v) в числителе и n * ln (x/S)/(S-x) -v * ln (w/S)/(S-w) в знаменателе. 3. Разделите как числитель, так и знаменатель через n * v, оставляя (1/v-1/n) в числителе и ln (x/S)/v/(Sx) -ln (w/S)/n/(Sw) в числителе. Затем с небольшими перестановками вы придете к моему решению. – xidgel

2

Напишите функцию vba, которая принимает значения X1, X2, σ1 и σ2 и возвращает как B, так и Theta.

Вот как написать функцию. http://www.excel-easy.com/vba/examples/user-defined-function.html

Вот как вернуть несколько значений из одной функции. Return multiple values from a function, sub or type?

Вы не сможете вызвать функцию непосредственно с листа, который редактирует 2 ячейки. https://superuser.com/questions/818141/excel-possible-to-fill-two-cells-with-one-if-formula

Вместо этого вам нужно будет написать макрос, который вызывает функцию по диапазону значений. How do I call a VBA Function into a Sub Procedure

Вы можете задать диапазон аргументов на листе и просто получить подпрограмму доступ к рабочему листу. Вот как получить доступ к значениям на листе. Excel VBA - read cell value from code

Смежные вопросы