亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Scipy 頌歌 - 每個時間步長 tx 中的參數值不同

Scipy 頌歌 - 每個時間步長 tx 中的參數值不同

慕桂英546537 2022-09-27 10:38:57
我正在嘗試使用 SciPy 模擬一些動態模型。我有模型定義:def model(y, t, control_signal):    dy/dt = some_function_of_time_and_y    return dy我定義了要模擬模型的時間戳列表:。我想使用為每個時間戳定義的值來模擬模型。我試圖通過使用:t_list=np.linspace(0, 5, 100)control_signalcontrols = [list_of_values]scipy.integrate.odeint(model, 0, t_list, args=(controls))但是我得到的似乎是我的被解釋為模型的狀態,而不是每個時間戳中的輸入。如何為每個時間戳傳遞值?The size of the array returned by func (5) does not match the size of y0 (1).controlscontrols謝謝!
查看完整描述

1 回答

?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

在中,您可以將插值模式定義為“零保持”或階數為0樣條曲線,即分段常數,帶有'kind=“zero”。使用它來定義控件的時間依賴性。scipy.interpolate.interp1d


contfunc = interp1d(t_list,control, kind="zero");


def model(y, t, control_signal):

    u = contfunc(t);

    dydt = some_function_of_time_and_y_and_u

    return dydt

維度錯誤可能是另一個問題。若要對此進行調試,請使用調試器(如果可用),或者為輸入和輸出的大小/形狀添加 print 語句。狀態和導數應該是相同大小的平面數組。


不要忘記將最大時間步長設置為小于控件的步長,這應該無關緊要,但可能是奇怪錯誤的來源。


查看完整回答
反對 回復 2022-09-27
  • 1 回答
  • 0 關注
  • 106 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號