首页 文章
  • 1 votes
     answers
     views

    用matlab求解单循环的微分方程

    我的机械系统有以下等式: xdot = Ax+ Bu 我想在一个循环中解决这个等式,因为在每个步骤中我都需要更新你,但求解器如 ode45 或 lsim 解决了时间间隔的微分方程 . for i = 1:10001 if x(i,:)>= Sin1 & x(i,:)<=Sout2 U(i,:) = Ueq - (K*(S/Alpha)) el...
  • 1 votes
     answers
     views

    使用MATLAB 's ' decic'函数实现一致初始条件的收敛失败

    我有一组高度非线性的隐式ODE,我需要使用ode15i等隐式求解器来积分方程 . 为了使用ode15i,您必须获得衍生物和因变量的一致初始条件 . MATLAB有一个内置函数'decic',可以计算一致的IC,但是,当我执行该函数时,我得到以下错误: “DECIC的融合失败 . ” 现在,一般来说,如果你的方程式不一致,'decic'会给你一个警告,要求你释放一些Y0的变量 . 但在我的情况下,...
  • -1 votes
     answers
     views

    如何在Matlab中求解微分方程组

    对于家庭作业,我的教授要求我们使用matlab解决微分方程组 . 使用mathworks网站,我做到了 syms f(t) g(t) h(t) [f(t), g(t), h(t)] = dsolve(diff(f) == .25*g*h,... diff(g) == -2/3*f*h,... diff(h) == .5*f*g, f(0) == 1, g(0) == -2, h(0) == 3) ...
  • 3 votes
     answers
     views

    使用Matlab ODE求解器进行收敛

    嗨,我正在解决初始值ODE问题,并希望能够绘制收敛 . 我已经检查了文档并发现在每个时间步计算错误,但我找不到返回此值的方法 . 有没有人有任何想法,也许是通过使用输出函数(来自odeset) . 谢谢
  • 0 votes
     answers
     views

    MATLAB如何使用ODE求解器? [关闭]

    我有一个ODE,我想消除 x . 有人可以在MATLAB中帮助我吗? 方程 dy/dx=(-((y^2)/(j*omega*eox)) + ((j*omega*(q^2)*nbt)/(1+(j*omega*tau0*e^(2*k*x)))) ) 常量值: eox = 8.85*10.^-12; omega = 1; j=-1.^(1/2); q=1.6*(10.^(-19)); nbt=(10...
  • 0 votes
     answers
     views

    Runge kutta整合用于暂停的响应

    我必须使用Runge Kutta积分来解决并绘制车辆悬架在特定时间间隔内的加速度响应 . 当绘制响应时,它应该具有多个振荡但是由于阻尼,振荡幅度将变小,直到加速响应消失 . 我不能让这种反应消失 . 查看我的最终结果,数组中的“z”组件继续保持等于它的初始条件,为零 . 我认为这可能是问题,但不知道如何解决它 . ODEint是我以前从未使用过的东西 . 这是我迄今为止的代码: 不要太费心我如何...
  • 0 votes
     answers
     views

    matlab for ode求解器中的循环

    我正在使用ODE求解器来解决我的ODE系统 . 现在我还想通过改变它们来计算各种参数的灵敏度 . 我的基本ODE求解程序类似于:功能: function F = ODE_site(t,y) %%Parameter block k1f=1e8; k1b=1e5; %%and so on %%Elementary rate block r1=k1f*y(1)-k1b*P*y(5); and so o...
  • 0 votes
     answers
     views

    Matlab理解ode求解器

    我有一个链接微分方程组,我用ode23求解器求解 . 当达到某个阈值时,其中一个参数会改变,这会改变我的函数的斜率 . 我使用调试功能跟踪了ode的行为,并注意到它在这个点附近开始跳回“时间” . 基本上它会生成更多的数据点 . 但是,这些并不都在最终的解决方案向量中表示 . 有人可以解释这种行为,特别是为什么不是所有计算值都能找到解决方案向量的方法? //编辑:为了澄清,当v从0更改为任何其他值...
  • 0 votes
     answers
     views

    Matlab ODE求解器中的时间步长计算

    我试图找出MATLAB如何使用例如 ode45 求解器来计算步长(而不是初始值)来解决ODE . 源代码非常复杂,所以有人知道它有用吗?
  • 1 votes
     answers
     views

    MATLAB中的DDE求解器

    有没有办法将C或Fortran DDE(延迟微分方程)求解器与MATLAB连接?标准MATLAB函数对我的应用程序来说很慢,我希望有一个更快的求解器 .
  • 2 votes
     answers
     views

    ODE系统的数值稳定性

    我必须对ODE系统进行数值求解,其形式如下: du_j/dt = f_1(u_j, v_j, t) + g_1(t)v_(j-1) + h_1(t)v_(j+1), dv_j/dt = f_2(u_j, v_j, t) + g_2(t)u_(j-1) + h_2(t)u_(j+1), 其中 u_j(t) 和 v_j(t) 是复数值标量函数的时间 t , f_i 和 g_i 被赋予函数, j =...
  • 0 votes
     answers
     views

    颂歌解决者Matlab

    我试图理解ode45的语法,我不明白为什么有时它是ode45(odefun,tspan,y0)和其他时间ode45(@odefun,tspan,y0) . 我想在函数odefun前面理解@的含义 . 特别是,我不清楚以下语法:(它应该解决方程y'= 2 * t) tspan = [0 5]; y0 = 0; [t,y] = ode45(@(t,y) 2*t, tspan, y0); @(t,...
  • 0 votes
     answers
     views

    使用Runge Kutta 4th Order解决Python中的ODE系统,意外错误

    我在解决Python中的物理问题时遇到了问题 . 这是一个ODE系统 . ODE System在某些时间点,必须注入一些剂量以提高值A. 我必须用四阶龙格库塔法解决这个问题 . 我以为我得到了它,但每次都会出现计算错误 . RuntimeWarning: overflow encountered 在短暂的计算时间之后,这些值会上升到无穷大......另一个问题是,在第3个循环中,Tr得到一个物...
  • 0 votes
     answers
     views

    scipy,odeint和质量守恒

    我在以下系统(ODE)中苦苦挣扎(k不是常数): def my_diff(y,t,k): f = np.zeros(4) f[0] = - k[0]*y[0] - k[1]*y[0] - k[2]*y[0]**2 f[1]= k[0]*y[0] f[2] = k[1]*y[0] f[3] = k[2]*y[0]**2 return f 正在发生三...
  • 0 votes
     answers
     views

    scipy odeint用于ODE系统的错误

    我试图重现下面显示的两个图表,它们是温度和浓度曲线随时间的变化 . 我已经检查了我的方法和代码一百万次但似乎无法在其中找到错误,但我无法重现这些图形 . 除了CA和T之外,所有值都是常量 . 这可能是scipy中odeint准确性的问题吗?任何帮助将非常感激! 这两个方程式如下: dCA / dt = q *(CAi-CA)/ V-k * CA. dT / dt = w *(Ti-T)/(Vp)d...
  • 1 votes
     answers
     views

    Scipy,odeint和输入到odeint输入功能的设置

    我通过odeint整合生物化学ODE(见下图),但主要的输入函数似乎是在调用时用奇数重新设置(或替换)输入参数 . 尽管参数'iu'(v的诱导率,应该在整个过程中保持不变)和'v'(结果之一,应该在整个odeint中变化)分别设置为100和0,如果在整个函数中打印,输出似乎是: '0.000999900009999 100 0 0 10 9 2 2 3' 虽然看起来应该更像这样: '0 0 0 ...
  • 0 votes
     answers
     views

    矢量化的SciPy颂歌解算器

    我的问题是关于当前scipy颂歌解决者 . 从scipy doc page开始,它们的用法是: # 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...
  • 1 votes
     answers
     views

    Scipy:腌制颂歌实例

    我正在进行长时间的模拟,其中涉及一个颂歌的整合 . 由于运行时间长,我决定生成回退,允许从检查点继续进行模拟 . 对于ode集成,我决定挑选scipy ode solver实例 . 此方法适用于可重入求解器'dopri5'和'dop853',但'vode'和'lsoda'失败 . 对于我的特殊问题,'vode'算法似乎是最快的,所以我感兴趣,是否可以绕过这个问题 . 我希望这是可能的,因为在重启时...
  • 12 votes
     answers
     views

    传递args for solve_ivp(新的SciPy ODE API)

    为了使用SciPy解决简单的ODE,我曾经使用odeint函数,其形式为: scipy.integrate.odeint(func, y0, t, args=(), Dfun=None, col_deriv=0, full_output=0, ml=None, mu=None, rtol=None, atol=None, tcrit=None, h0=0.0, hmax=0.0, hmin=0.0...
  • 0 votes
     answers
     views

    Python SciPy ODE解算器没有收敛

    我正在尝试使用scipy的ode求解器来绘制2D方程组之间的相互作用 . 我正在尝试通过以下代码块更改传递给解算器的参数: # define maximum number of iteration steps for ode solver iteration m = 1 #power of iteration N = 2**m #number of steps # setup a try-cat...
  • 0 votes
     answers
     views

    如何将更多数据传递到scipy.integrate.odeint

    我正在使用odeint并且需要传递随时间变化的力以及我正在积分的位置和速度 . 力是一个已知的数据阵列,所以它不需要解决,只是插入方程式 . 这是代码: def dr_dt(y, t): RHO = 1225.0 C_D = 0.75 A = 6.25e-4 G = 9.81 ...
  • 1 votes
     answers
     views

    用scipy求解python中的二维微分方程

    我是python的新手 . 我有一个简单的微分系统,它由两个变量和两个微分方程和初始条件组成 x0=1, y0=2 : dx/dt=6*y dy/dt=(2t-3x)/4y 现在我想解决这两个微分方程,我选择 odeint . 这是我的代码: import matplotlib.pyplot as pl import numpy as np from scipy.integrate impor...
  • 1 votes
     answers
     views

    当输出在scipy.integrate.odeint中达到0时停止集成

    我编写了一个代码,用于查看带有拖动的物体的抛射物运动 . 我正在使用scipy的odeint来执行前向Euler方法 . 集成将一直运行,直到达到时间限制 . 我想在达到这个极限时或者当ry = 0的输出时(即射弹已落地)停止积分 . def f(y, t): # takes vector y(t) and time t and returns function y_dot = F(t,y...
  • 2 votes
     answers
     views

    强制matlab ODE求解器使用dy / dx = 0 IF dy / dx为负

    我需要在数值上集成以下ODE系统: dA / dR = f(R,A,B)dB / dR = g(R,A,B) 我正在解决初始值稳定性问题的ODE . 在这个问题中,系统最初是稳定的,但在某个半径处变得不稳定 . 然而,虽然稳定,但我不希望幅度从起始值衰减(例如到O(10 ^ -5)),因为这是非物理的,因为系统的稳定性限于背景噪声幅度 . 振幅应保持在起始值1,直到系统不稳定 . 因此,我想在导数...
  • 3 votes
     answers
     views

    使用scipy odeint对具有相移变量的方程

    Basically ...我需要一种在微分方程中包含相移的方法 . 也就是说,我在我的系统函数的定义中返回了类似Y(t-3)的dY / dt . 像这个微分方程: dY/dt = a*Y(t) + b*Y(t-tau) 现在如果我尝试将其写为系统定义函数以传递给scipy.odeint,我就迷失了: def eqtnSystem(A,t): Y = A a = 1 ...
  • 0 votes
     answers
     views

    存储来自odeint刚性方程求解器的输出

    我想知道是否有办法将以下code的输出存储到增强矩阵或向量中 . size_t num_of_steps = integrate_const( make_dense_output< rosenbrock4< double > >( 1.0e-6 , 1.0e-6 ) , make_pair( stiff_system() , stiff_system_jac...
  • 0 votes
     answers
     views

    如何在MATLAB中解决ODE?

    我的教授 . 在做ODE时做了两个代码 function xdot= code(t,x); A=[-.5 0; 1 0]; B=[1 ; 0]; K=[1.5 1]; U=-K*x; xdot=A*x+B*U; ` 第二个是 [t,x]=ode23('code',[0 10],[1 1 ]'); figure(1); plot(t,x); grid 我不确定他为什么这样做?这就是我想要做的 ....
  • 0 votes
     answers
     views

    零向量返回错误

    我正在构建一个机器人模拟,它解决了不同输入速度值下的微分方程,该函数使用 [0 0 0]=[x y theta] 作为初始条件,然后每次迭代更新初始条件 . 当我使用for循环输入迭代次数时,我想要求解方程,它工作正常!但是,当我使用while循环来保持函数解决时,我输入速度(通过我的GUI中的编辑文本),我收到一条错误消息 KPATH返回长度为0的向量,但初始条件向量的长度为3 . 函数如何...
  • 1 votes
     answers
     views

    在matlab中求解微分方程组

    我试图在Matlab中求解微分方程组 . dn/du=(-2*u*n-K*(n*u-(1+g)))/(1+u^2+K*u*(u-(1+g)/n)) dxi/du=(1-u^2)/(1+u^2+K*u*(u-(1+g)/n)) df/du=(2*u+K*u^2*(u-(1+g)/n))/(1+u^2+K*u*(u-(1+g)/n)) K和gamma是常数 . 我有这样的初始条件: n(0)=...
  • 1 votes
     answers
     views

    针对BVP的射击方法解决方案的ode45 / fsolve问题

    我正在尝试使用拍摄方法解决MATLAB中的边界值问题 . 但是,当我尝试通过fsolve传递我的函数时,我收到警告:警告:t = -9.462647e 001失败 . 无法在不将步长减小到允许的最小值以下的情况下满足积分公差(2.273737e-013 )在时间t . 我已经尝试了一些常见的解决方法,比如使用不同的ODE求解器并改变ODE求解和fsolve中的容差,但无济于事 . 目前,当我在我的...

热门问题