Re: [問題] ode45利用For...end寫法已回收

看板MATLAB作者 (姊夫)時間16年前 (2009/06/29 13:21), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《pbrokeeggq (口亨)》之銘言: : 各位matlab的高手 : 小弟有一個題目關於ode45需要利用for...end的語法來寫 : 但是小弟不知道如何利用for...emd的語法寫 : 不知道有沒有大大能幫忙解題 : 小弟會感激不盡 : 題目如下面網址 : 此為小弟在知識+上所發問的問題 : http://tinyurl.com/mkgh38 : 拜託各位大大 function file function xdot=test(t,x) xdot=[x(2);sin(t)-3*x(2)-x(1)]; ========================================= script file close all; clear all; clc dx = [0;0]; time = 40; dt = 0.01; t1 = 0; t2 = t1 + dt; t = [t1 t2]; y_data = dx; t_data = [0]; for i = 0:dt:time [time_temp dy] = ode45(@test, t, dx, []); dx = [dy(end,1); dy(end,2)]; t1 = t2; t2 = t2 + dt; t = [t1 t2]; y_data = [y_data dx]; t_data = [t_data; time_temp(end)]; end figure(1) plot(t_data, y_data(1,:)); hold on plot(t_data, y_data(2,:),'r'); xlabel('Time (t)'); ylabel('y1(t)&y2(t)'); title('t 與y1(t)&y2(t)的相對圖形'); ====================================================== 簡單來說用for loop就是不斷更新時間區間t1 & t2以及起始條件dx 不過老實說原PO的寫法我是前陣子才知道....Orz 之前解ode45我都是用這方法寫的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.135.98.54 ※ 編輯: k84420491 來自: 140.135.98.54 (06/29 13:23)
文章代碼(AID): #1AI4z5gS (MATLAB)
文章代碼(AID): #1AI4z5gS (MATLAB)