[問題] 如何將user輸入的變數帶入ode中求解?已回收

看板MATLAB作者 (時鐘)時間14年前 (2011/08/17 17:30), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
先說明一下題目 目前有三個方程式如下: dA/dt=-ka*A A(0)=a0 dI/dt=ka*A-kb*I I(0)=0 dP/dt=kb*I P(0)=0 a0、ka、kb這三個都是要使用者自行輸入的變數 然後帶入ode中求解 我目前只會做到先自行將三個變數設定一個值去計算 程式如下: (目前是先另a0=10,ka=1,kb=2) function dy=test(t,y) dy=zeros(3,1); dy(1)=-1*y(1); dy(2)=1*y(1)-2*y(2); dy(3)=2*y(2); end 然後去計算與作圖([J]/a0 vs ka*t) >>options=odeset('reltol',1e-4,'abstol',[1e-4 1e-4 1e-4]); >>[T,Y]=ode45(@test,[0 10],[10 0 0],options); %希望能將初始值設定的地方利用a0代替 >>plot(1*T,(Y(:,1))/10,1*T,(Y(:,2))/10,1*T,(Y(:,3))/10) %這邊希望能設定成 plot(ka*T,(Y(:,1))/a0) 這樣的形式 目前的問題就是我只會手動去設定值 但是那三個變數是要給使用者自行設定的 煩請各位高手解答 小弟感激不盡 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.43.188
文章代碼(AID): #1EIufDCR (MATLAB)
文章代碼(AID): #1EIufDCR (MATLAB)