所有人。我试图做一个迭代方程求解器,在这里,我放置一个方程,然后每次迭代用X代替一个值,然后求解它。由于迭代函数被认为是字符串,所以我遇到了困难。任何帮助都是非常感谢的,谢谢。方程需要是动态的,需要通过迭代来求解。
我试着调用=替代单元格,最后得到了无效的数据,因为它以字符串的形式读取。
发布于 2022-11-26 19:51:25
尝试:
=BYROW(A9:A24, LAMBDA(ii, INDEX(QUERY(,
"select "®EXREPLACE(REGEXREPLACE(REGEXREPLACE(B2, "\^\d+", REPT("*x",
REGEXEXTRACT(B2, "\^(\d+)")-1)), "\(", "*("), "x", ii&"")), 2)))

逻辑:
查询不支持
^,因此我们首先将^2转换为替代。我们知道x^2等于x*x,所以我们提取2并减去1和REPT *x一次下一步,我们需要在50*x中添加乘法,因为()()需要变成与50x相同的()*()。
然后,
x,并使用查询的SQL ##逻辑计算字符串:基本上,我们把你的:
-50(x)-1/2(-9.81)(x^2)+35转入:
-50*(0)-1/2*(-9.81)*(0*0)+35
-50*(1)-1/2*(-9.81)*(1*1)+35
-50*(2)-1/2*(-9.81)*(2*2)+35
etc.更新:
在x^n中,n是<1是无法用REPT方法实现的,而且查询不支持根,因此我们可以使用脚本将文本字符串转换为公式。
糟糕的脚本示例:
function onEdit(){
var sheet = SpreadsheetApp.getActiveSheet();
var source1= sheet.getRange('F7');
var source2= sheet.getRange('F8');
var formula1 = source1.getValue();
var formula2 = source2.getValue();
var target1 = sheet.getRange('B7');
var target2 = sheet.getRange('B8');
target1.setFormula(formula1);
target2.setFormula(formula2);
}其中F7包含:
=BYROW(A7:A23, LAMBDA(i, "POW("&INDEX(QUERY(, "select "®EXREPLACE(
SUBSTITUTE(REGEXEXTRACT(B3, "(.+)\^"), ")(", ")*("), "x", i&"")), 2)&","&
REGEXEXTRACT(B3, "\^\((.+)\)")&")"))

https://stackoverflow.com/questions/74584799
复制相似问题