Найти значение переменной с помощью функции Solver - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь настроить функцию "Солвер", чтобы найти нормальную глубину канала (yn). Параметры приведены в коде ниже, где я могу оценить одну сторону уравнения. Все остальные параметры являются функцией yn. Мне нужно найти yn, который решает функцию A * (R ^ (2/3) = nQSo.

So=0.001                                       
n=0.013                                        
Q=30  
B=10 

nQSo=(n*Q)/(So^(1/2))

A=B*yn
P=B+2*yn
R=A/P

A*(R^(2/3)=nQSo

1 Ответ

0 голосов
/ 03 июня 2019

Вы можете взглянуть на optimize

So=0.001                                       
n=0.013                                        
Q=30  
B=10 

nQSo=(n*Q)/(So^(1/2))

error = function(yn,nQSo){
  A=B*yn
  P=B+2*yn
  R=A/P

  return(abs(A*(R^(2/3))-nQSo))
}

optimize(error,interval = c(0,2),nQSo = nQSo)

результат, как вы видите, yn = 1.239066

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...