r - 如何在 r 中使用 multiroot 和基于矩阵的函数
问题描述
我有一个必须以矩阵形式调用的函数。我曾尝试使用multiroot
from packagerootSolve
来计算根,但它根本不起作用。有没有一种方法可以重新定义下面的函数,或者是否有另一种基于 Newton-Raphson 技术的替代方法?
library(rootSolve)
f <- function(q,m){
c(F1 = 12 * ((exp(q[, 1]) * m[1])/(exp(q[, 1]) * m[1] + exp(q[, 2]) * m[2] + m[3])) - c(1,2),
F2 = 12 * ((exp(q[, 2]) * m[2])/(exp(q[, 1]) * m[1] + exp(q[, 2]) * m[2] + m[3])) -c(3,3))
}
m = c(0.1,0.2,0.7)
解决方案
将其包装在执行转换的外部函数中。由于问题已更改,请注意我们使用末尾注释中显示的原始数据。
multiroot(function(q) f(t(q), m), c(1,1))
给予:
$root
[1] -14.67979 -14.67979
$f.root
F1 F2
5.618059e-06 1.123612e-06
$iter
[1] 13
$estim.precis
[1] 3.370836e-06
笔记
f 和 m 假定为:
库(rootSolve)
f <- function(q,m){
c(F1 = 12 * ((exp(q[, 1]) * m[1])/(exp(q[, 1]) * m[1] + exp(q[, 2]) * m[2] + m[3])),
F2 = 12 * ((exp(q[, 2]) * m[2])/(exp(q[, 1]) * m[1] + exp(q[, 2]) * m[2] + m[3])))
}
m = c(1,0.2,0.9)
推荐阅读
- sparql - 我已尝试对植物 wikidata ID 进行以下查询,但它没有提供适当的结果并显示“查询格式错误:聚合错误”
- swift - 如何将数组转换为领域中的列表?
- html - CSS过滤器从白色到自定义颜色,属性
- ember.js - this.toggleProperty("editing") 如何在 ember.js 中工作?
- jquery - 关闭现有的 jquery modal 并通过自定义链接在新选项卡中打开另一个页面
- vue-component - 如何使用 vue-custom-element 使事件从 shadow dom 中的输入标签中冒泡?
- python - Discord.py 如何提及命令中提到的人
- pandas-groupby - dask聚合自定义方法
- javascript - 未处理的拒绝(错误):ffmpeg.wasm 一次只能运行一个命令
- python - python 如何在字符想要以多个符号结构打印的模式问题中使用空格?