Я пишу программу, которая автоматически вычисляет потенциал Нернста данного иона в клетке. Итак, я заставил пользователя указать, какой ион, его заряд и их концентрации внутри и снаружи ячейки. Я определил константы, написал уравнение в формате R, и все, что я продолжаю получать в качестве вывода, это Inf.
Поскольку я новичок в R, я почти уверен, что допустил ошибку где-то в своем коде. Итак, мне нужна ваша помощь, чтобы пересмотреть мой код и сказать, что я делаю неправильно.
readline("Which ion will you use to measure the potential equilibrium? = ")
z<-as.integer(readline("What is the ion charge? = "))
co<-as.integer(readline("¿What is the extracelular concentration of the ion (mM) = "))
ci<-as.integer(readline("¿What is the intracelular concentration of the ion (mM) = "))
#Defining constants
R<-8.3145 # unit J/K.mol
Tbody<-310.15 # K=Cº+273.15; Cº=37º body temperature
Faraday<-96485.337 # unit C/mol Faraday constant
#Equation
Veq<-((R*Tbody)/(z*Faraday))*log((co/ci), base = exp(1))
Veq_mV<-Veq*1000 # from V to mV
#output
cat("The equilibrium potential for ",ion," is: ",Veq_mV)
Тип данных, которые я использую в качестве импута, - это строка для первого вопроса и целые числа для остальных. Он очень хорошо работает с другими ионами, такими как Na +, Cl-, K +, но с Ca2 + он выдает только Inf. Внешняя концентрация Ca2 + составляет от 0,0001 до 0,0007 или 0,1 мкМ / 0,7 мкМ. Есть ли способ это исправить?