1

我正在尝试解决这个表达式:

NSolve[Qforced == hFree*SA*(Tskin - T), T]

但 Qforced 和 hFree 是变量列表,但大小相同,例如:{1,2,3,4...};

我得到一个空的解决方案“{}”,但如果我这样做:

NSolve[Qforced[[1]] == hFree[[1]]*SA*(Tskin - T), T]

我得到一个答案。我想做的是这个(用Java编写):

ArrayList answerSets = new ArrayList<ArrayList<Double>>;
for (int i = 0; i < Qforced.size(),i++ ){
  ArrayList<Double> temp = new ArrayList<Double.
  for (int j = 0; k < hFree.size()){
    double Q = Qforced.get(i);
    double h = hFree.get(j);
    double T = -(Q/(h*SA)) - Tskin;
    temp.add(T);
  }
  answerSets.add(temp);
}

answerSets 将是长度为 Q.size() 的数组列表,每个元素都是 Q.size() 的数组列表,其中包含表达式“T = -(Q/(h*SA)) - Tskin”的解

我不想写 NSolve Qforced^2 次。我经常遇到这个问题,我似乎找不到任何解释我想要做什么的文档。有任何想法吗?

提前致谢!

4

1 回答 1

2

您想为所有可能的索引组合求解方程吗?如果是这样,您可以使用Outer[]避免写方程 N^2 次

Outer[NSolve[#1 == #2 * SA * (Tskin - T), T]&, Qforced, hFree]

如果您只需要选择输出的某些部分NSolve(如果有多个解决方案),您可以更改NSolve[...]&为具体说明在NSolve[...][[part]]&哪里。partPart[]

于 2013-06-01T10:13:27.563 回答