我在Dymola (基于modelica的商业软件)中运行一个系统模型。模型研究了在强迫对流作用下多孔物质的传热传质问题。我问这个问题的问题是关于模型模拟过程中产生的误差。
具有模型当前设置的在给定的模拟时间(7200秒)内成功运行。但是它在日志文件中生成以下提示(在整个运行时间歇性地):
ERROR: Failed to solve non-linear system using Newton solver.
To get more information: Turn on Simulation/Setup/Debug/Nonlinear solver diagnostics/Detail
在按秩1更新协方差矩阵的项目中,我计算密度的次数非常多。我没有从头开始计算协方差,而是使用cholupdate函数将新样本添加到协方差中,并将新样本删除到协方差中。通过这种方式,更新被告知是$O(n^2)$,而不是协方差矩阵的$O(n^3)$ Cholesky分解。
persistent R
if (initialize) % or isempty(R)
% compute covariance V
R = chol(V);
else
R = cholupdate(R,xAdded);
detVar = prod(diag(R))^2;
Rt = R';
co
下面的动态数组包含一个非对称的n*n矩阵(n个<=100):
int **matrix;
matrix = new int*[n];
for (int i = 0; i < n; i++)
matrix[i] = new int[n];
有没有一种非常简单的方法来反转它?理想情况下,我将只使用STL中的内容或下载单个头文件。
我正在用python.I做一些科学的计算,我在解线性方程时遇到了麻烦,其中一些系数很大~ E13,有些系数很小~E-69,它给了我一个不准确的解。
代码中的公式非常简单,就像rate[0]=rate[1]=...=rate[6] rate[7]=0.I使用slove来获得解一样,但是rate[0]!=rate[1]=rate[2]=...虽然大多数是正确的,但是物理意义是完全错误的,即unacceptable.rate~rate6必须相等。
我尝试了一些提高准确性的方法。
#convert float to symbols
kf_ = [symbols(str(k)) for k in kf_
我有一个数据,它显示了3D空间中矢量的起点和终点坐标,这些矢量的方向是围绕3折螺旋轴:
x y z
0 38.522003 5.600998 129.203995 # start of v1
1 23.854996 66.576996 112.487000 # end of v1
2 4.417000 40.182999 121.309998 # start of v2
3 65.761993 27.550995 104.285004 # end of v2
4 50.272003
我有一个python代码,我正试图将其转换为Matlab代码。该代码用于对波浪进行基线校正。
def baseline_als(y, lam, p, niter=20):
L = len(y)
D = sparse.csc_matrix(np.diff(np.eye(L), 2))
w = np.ones(L)
for i in xrange(niter):
W = sparse.spdiags(w, 0, L, L)
Z = W + lam * D.dot(D.transpose())
z = spsolve(Z
我使用CUSP共轭梯度法来求解对称稀疏矩阵。我不知道为什么它不收敛。我使用的矩阵的维数不是很大(1K到100K)。同样的线性方程组很容易用MKL求解,因此矩阵不是病态的。然而,我尝试添加预处理程序,但没有结果:
对角预处理器和AINV (不完全Cholesky)给出了残差的无限增长(只要cg和bicgstab)。
下面是我的代码:
cusp::csr_matrix <int, float, cusp::device_memory> A (n, n, nnz);
for (i = 0; i < n + 1; i++)
A.row_offsets[i] = csrRow
当我使用fsolve时,程序会给我发送一个错误,但是我不知道为什么。我应该去找x(2) = 2.96e+13和x(1)= 2.72e+22。我试着用这个来解我的非线性方程:我有两个方程,两个不知道:
function y = f(x)
global x_rayon_droite
global z1
global r_droite
global x_rayon_gauche
global r_gauche
global y_rayon_droite
global y_rayon_gauche
x_rayon_droite=406
z1=2.72e+22
r_droite = 556.77
x