簡體   English   中英

輸入矩陣到ode45的功能文件

[英]Input matrix to function file of ode45

我有一個代碼(要求用戶提供大量輸入),這將給我一個焦慮矩陣(比如A),我必須使用它來求解ODE X'= AX的系統。 如何在ode45的函數文件(.m文件)中包含此矩陣A。 如果我將代碼包含在功能文件中,如下所示:

function xp=g_test(t,x);
k=input('something');
A=some manipulation of inputs;
xp=A*x;
end

Matlab在每個時間步都要求輸入(通常我的問題有30k個時間步)。 那么,如何將矩陣A包含/傳遞給函數?

您可以創建一個返回函數句柄函數

function odeFcn = makeODE(a,b,c)  
    A = some_function(a, b, c);
    odeFcn = @(t,x) A*x;
end

現在,您可以使用輸入矩陣a, b, c調用ode45

outputVector = ode45(makeODE(a,b,c), [t0, t1], x0);

靈感來自gnovice的回答采取這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM