本文试图用牛顿-费舍尔( Newton )的(线性互补问题)(线性互补问题)的牛顿-费舍尔公式,对牛顿方程组的不同迭代子解的结果进行分析。到目前为止,我已经实现了精确的求解器-Gauss,并且用bicg 作为J*h = -p方程的子求解器(其中J是jacobian方程,p是Fischer函数的值,h是我的实现步骤)。
在代码的一部分,我实现了bicg和精确的求解器:
if itt
% use iterative solver for newton eq
while ~all(fischer(x, A*x+b) == 0) & its < max_it
我的问题是关于当前的赋值颂歌求解者。在中,它们的用法是:
# A problem to integrate and the corresponding jacobian:
from scipy.integrate import ode
y0, t0 = [1.0j, 2.0], 0
def f(t, y, arg1):
return [1j*arg1*y[0] + y[1], -arg1*y[1]**2]
def jac(t, y, arg1):
return [[1j*arg1, 1], [0, -arg1*2*y[1]]]
# The integration:
r =
我有一个奇怪的现象,尽管对于稀疏矩阵,scipy.sparse.linalg.eigs应该更快,但我发现它比scipy的普通eigvals方法运行得慢
In [4]: %timeit m.calc_pde_numerical_jacobian(m.initial_state)
10 loops, best of 3: 41.2 ms per loop
In [5]: %timeit m.calc_pde_analytic_jacobian(m.initial_state)
1000 loops, best of 3: 1.42 ms per loop
In [6]: %timeit m.c
我正在尝试编写自己的逻辑回归代码,并比较最大化对数似然的不同方法。使用牛顿-CG方法,我得到错误消息"ValueError: setting a array element with a sequence“。环顾四周,如果要最小化的函数返回非skalar,则此错误似乎会上升,但这里不是这种情况。我需要下面给出的三个方法来给出相同的结果(大致),但是当在我的真实数据上运行时,一个不收敛,另一个给出比初始猜测更差的LL,第三个根本不运行。
为什么我收到ValueError消息?我如何修复它?
我的代码(使用虚拟数据,实际数据约为100个测量值)如下:
import numpy as np
我正在使用JModelica同时执行许多模拟。很好地抑制求解者的统计数据,例如
Final Run Statistics: ---
Number of steps : 691
Number of function evaluations : 904
Number of Jacobian evaluations : 16
Number of function eval. due to Jacobian eval. : 896
Number of error t
我用Dymola建立了一个简单的模型,在不同的阶段使用了不同的方程,但令我惊讶的是Dymola无法处理这个简单的模型。经过指数降阶后,系统似乎是奇异的。
我的问题是:
在使用Modelica时是一个常见的问题吗?如果是这样的话,我应该如何修改这个模型,我知道当我用der(x)=0替换x=100方程时,模型工作得很好,但是我想知道对于更复杂的情况是否有一个通用的规则。如果能提供详细的解释,我将不胜感激。
下面是模型的代码:
model ErrorWhenUsingIf
Real x(start=100);
equation
if time<=0.5
K是一个大型稀疏矩阵,而y是一个向量。在从t1到t1+dt的特定时间步长dt
Method1:expm通向:
K = ...
y = ...
y = expm(-1i*dt*K)*y; %new y
Method2:
ode45提供了:
K = ...
y = ...
y0 = y;
[T, Y] = ode45(@(t,y)dy(y,K),[t1 t1+dt],y0);
y = Y(end,:).'; %new y
其中:
function ydot = dy(y,K)
ydot = -1i*K*y;
对于大型稀疏矩阵,这两种方法给出了不同的结果。哪一个是正确的?
我试图用牛顿法求解一些非线性系统,解的精度对我的问题很重要。
在不使用符号计算软件的情况下,如何通过C++或其他类似的编程语言计算一般非线性多项式系统的Jacobian?对我来说,困难主要是:
- as accurate as symbolic Jacobian
- an algorithm suitable for general nonlinear system cases
- only dependent on C++ or similar programming languages;
如果我不得不用有限差分法来获得近似雅可比,所选择的步长将如何影响最终解的精度?如何
在牛顿法中,求解非线性方程组需要找到雅可比矩阵和雅可比矩阵逆的行列式。
这是我的组件函数,
real function f1(x,y)
parameter (pi = 3.141592653589793)
f1 = log(abs(x-y**2)) - sin(x*y) - sin(pi)
end function f1
real function f2(x,y)
f2 = exp(x*y) + cos(x-y) - 2
end function f2
对于2x2的情形,我计算雅可比矩阵和雅可比矩阵的逆的行列式,
x = [2,2]
h = 0.
在运行时,我有代码应该正确地使用拉格朗日乘数来找到函数的最大值/最小值:
clear all
syms x y L;
f = x^4+2*y^4;
g = x^2+5*y^2+2*y^2-10;
firstpart=jacobian(f,[x y])-L*jacobian(g,[x y]);
[Lsoln,xsoln,ysoln]=solve(firstpart,x^2+5*y^2+2*y^2-10);
subs(f,{x,y},{xsoln,ysoln})
% The coordinates that correspond with the greatest an
我很难理解为什么gekko不能为我的优化问题找到一个解决方案。它适用于某些数据,但具体而言,我得到以下消息:
**********************************************
Steady State Optimization with Interior Point Solver
**********************************************
Info: Exact Hessian
********************************************************************
我试图为某些输出vairables创建一个Jacobian矩阵,该矩阵涉及keras模型中的特定输入特性。例如,如果我有一个具有100个输入特性和10个输出变量的模型,并且希望针对输出50-70创建一个输出2、3和4的Jacobian,我可以这样创建jacobian:
from keras.models import Model
from keras.layers import Dense, Input
import tensorflow as tf
import keras.backend as K
import numpy as np
input_ = Input(shape=(100,
我在上遇到了一个奇怪的问题。下面是一个最低限度的工作示例:
import sys
import time
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
from scipy.integrate import ode, complex_ode
def fun(t):
return np.exp( -t**2 / 2. )
def ode_fun(t, y):
a, b = y
f = fun(t)
c = np.conjugate(b)
dt_a = -2j*f
我在用时间序列数据模拟50系列CSTRs动态模式(m.options.imode=4)的化学反应器时,得到了跟随误差。稳定状态运行得很好。此外,动态模拟似乎适用于一个更简单的模型与15个CSTRs。
这个问题有解决办法吗?
MUMPS returned INFO(1) =-13 - out of memory when trying to allocate 219104583 bytes.
In some cases it helps to decrease the value of the option "mumps_mem_percent".
WARNING: Proble
import numpy as np
a = np.array([[1,2,3],
[4,5,6],
[7,8,9]])
b = np.array([[1,2,3]]).T
c = a.dot(b) #function
jacobian = a # as partial derivative of c w.r.t to b is a.
我正在阅读关于jacobian的文章,试图构建一个,从我到目前为止所读到的,这个python代码应该被认为是jacobian。我理解得对吗?