回覆列表
-
1 # 使用者52510796211
-
2 # 使用者9662297337979
可能你的程式格式有問題。如把程式碼整合在一起,可以來寫
function ode45_main( )
clear all;%清除記憶體中的變數和和函式
tspan=[0,0.245]; %定義變數的求解區間
y0=[0.449/0.09846,0.1021/0.09846,0.1057/0.09846,0.019/0.09846,0.2327/0.09846,0.085/0.09846,1.01325,1,1273];%定義初始值-v=0.669;
[z,y]=ode45(@redu_model_fun,tspan,y0);
A=[z,y];
disp(" z, y ")
disp(A)
end
function dy=redu_model_fun(z,y)
n=y(1)+y(2)+y(3)+y(4)+y(5)+y(6);
。。。。。。
dy(9)=1/(y(8)*SigmaNC)*(-SigmarH-y(8)*dy(7)-y(7)*dy(8)-SigmaRC*y(9));
end
然後,儲存為 ode45_main.m 檔案
執行可得
可以用“function?main”宣告主函式,即主程式,同時也要合理使用全域性變數,向多個函式傳遞中間引數值,具體方法如下
1、編寫一段程式,計算(A+B+C)/D的功能,直接引用自定義add函式即可實現此求和做除的功能,其中A、B、C作為全域性變數,不需作為函式引數輸入,因為D為宣告全域性變數,所以要作為函式引數輸入
2、從中可以看到全域性變數的使用方法,即先要宣告再賦值,最後如果在函式中直接使用,需要在函式體中再次宣告該變數為全域性定義
4、這裡加入下圖第一句主函式宣告語句後,編譯框會自動識別出函式範圍,使函式變為可摺疊狀態,不像之前,無法區分主程式和函式
5、程式識別出函式後,即可進行摺疊,如果一個程式中有較長的主程式和較多函式,即可邊編輯程式,邊進行摺疊,使其看起來更簡潔
6、此時執行後,就沒有錯誤提示,可以直接計算出結果,根據計算公式,可以知道此結果是正確的