首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用MATLAB求解大量未定义的非线性方程组

用MATLAB求解大量未定义的非线性方程组
EN

Stack Overflow用户
提问于 2012-05-31 12:18:08
回答 1查看 1K关注 0票数 0

我会尝试描述我的问题,但最后有一些具体的问题。

我有一些困难,解决一个涡轮机问题,在Matlab。目的是用已知的物理测量和运行条件来计算涡轮的效率。为了做到这一点,我使用了科学论文中给出的方程式:http://www.sciencedirect.com/science/article/pii/S0196890409003124

在我的例子中的问题是,要知道效率,我需要出口气体参数(温度,压力,速度…)这又取决于效率。我主要在一个名为EES (工程方程求解器)的软件中解决了这个问题,在这个软件中,方程可以按任何顺序写入,程序对它们进行分组并自动求解。由于程序中的限制,我切换到了Matlab,这不允许我扩展这个问题。

在matlab中,我首先以一个可解的顺序将所有的方程写成一个函数,除了求解问题所需的两个退出参数之外。将两个退出参数设置为函数的输入。我使用两个基本方程(质量守恒和计算损失)作为输出,其中正确的解将这些方程设置为零。然后我试着用with来解决这个问题。

这件事并没有真正解决,我也找不到解决办法。现在,我给matlab所有的方程(27),并试图以类似的方式解决它们。这也不是很好。(“找不到解决办法。因为最后一步无效而停止”)。

在这些方程中,有一些逻辑式和if-式,我还使用流体参数库作为com-服务器,以便获得气体在压力和温度变化时的参数。这两种方法都不允许从-inf输入到+inf,也可能有一些不连续的地方.我想这可能是我出问题的原因。

所以,我想这不是典型的编程问题。我不知道代码本身会有多大帮助。如果你对解决这个问题有什么想法的话,那会有很大帮助的!不过,我也有一些具体的问题:

  1. 是否有可能以某种方式发送一个参数来解决问题,告诉它有些方程超出了界限?(在这种情况下,com-server发送错误消息,但我不知道如何自动使用它。)
  2. 是否可以给出一个范围来解决问题,类似于fzero?
  3. 函数的结果向量,我试图将其设置为零向量,其结果是由变化很大的方程得到的,因此值变化很大。误差容限在方程之间也有很大的变化。有什么聪明的方法来处理这件事吗?我刚刚将结果从不太精确的方程中除以,以减少值。
EN

回答 1

Stack Overflow用户

发布于 2017-07-22 17:54:55

constraints.

  • No,

  • ,你可以把方程写成最小化问题,然后在你不想发生的情况下加上“软”惩罚,或者只使用非线性最小二乘,把fsolve()放在一边。使用最小化求解器。

  • 是的。使用非线性最小二乘.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10833452

复制
相关文章

相似问题

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