首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算四次方差

计算四次方差
EN

Stack Overflow用户
提问于 2011-12-15 16:54:40
回答 2查看 410关注 0票数 1

我正在使用Modelica来求解一个热传递问题的方程组,其中一个方程是辐射,它写为

代码语言:javascript
运行
复制
Ta^4-Tb^4 

有没有人可以说,如果方程写成:

代码语言:javascript
运行
复制
(Ta-Tb)(Ta+Tb)(Ta^2+Tb^2)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-17 18:40:30

这个问题没有一个明确的答案。这是因为Modelica规范用于正式定义问题陈述,但它没有说明工具如何解决这些方程。此外,由于大多数Modelica工具无论如何都会进行符号操作,因此很难预测它们会对这样的等式采取什么步骤。例如,一个工具可以很好地将其自己转换为Horner多项式(无需您的手动干预)。

如果你要求解非线性系统等式中的温度,要小心负温度解。当这些温度是非线性问题中的迭代变量时,您应该调查"start“属性以指定初始(正)猜测。

票数 2
EN

Stack Overflow用户

发布于 2011-12-15 17:21:50

我会说,有两个原因可以解释为什么拆分成(Ta-Tb)(Ta+Tb)(Ta^2+Tb^2)更慢,而不是更快。

  1. (Ta^2+Tb^2)需要2次乘法和1次加法,即(Ta-Tb)(Ta+Tb)(Ta^2+Tb^2)需要4次乘法和3次加法。另一方面,我猜Ta^4-Tb^4是这样做的:((Ta^2)^2 - (Tb^2)^2),这意味着1次加法和4次multiplications.
  2. Mathematica,,就像更通用的编译器一样,可能非常清楚如何优化这些非常简单的表达式。这意味着在计算时间方面,使用简单的模式通常更安全,因为简单的模式很容易被篡改并转换为超高效的机器代码。

我可能显然是错的,但我看不出(Ta-Tb)(Ta+Tb)(Ta^2+Tb^2)可以更快的任何理由。希望能有所帮助。

奥斯卡

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8517421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档