我试着用下面的方法来求解双曲方程,以求x和y。我想知道在fsolve中使用相同的方程两次来找到第一个x然后是y是否有意义。我的代码如下:
from scipy.optimize import *
from numpy import *
import math
a = 1/(a_6**2)
b = 1/(b_6**2)
def function_hyper(loc):
x = loc[0]
y = loc[1]
F = empty((2))
F[0] = a*pow(x, 2) - b*pow(y, 2) - 1
我用Dymola建立了一个简单的模型,在不同的阶段使用了不同的方程,但令我惊讶的是Dymola无法处理这个简单的模型。经过指数降阶后,系统似乎是奇异的。
我的问题是:
在使用Modelica时是一个常见的问题吗?如果是这样的话,我应该如何修改这个模型,我知道当我用der(x)=0替换x=100方程时,模型工作得很好,但是我想知道对于更复杂的情况是否有一个通用的规则。如果能提供详细的解释,我将不胜感激。
下面是模型的代码:
model ErrorWhenUsingIf
Real x(start=100);
equation
if time<=0.5