<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/265255</link>
    <title>MATLAB Central Newsreader - Problem with using ODE solvers</title>
    <description>Feed for thread: Problem with using ODE solvers</description>
    <language>en-us</language>
    <copyright>&amp;copy;1994-2012 by MathWorks, Inc.</copyright>
    <webmaster>webmaster@mathworks.com</webmaster>
    <generator>MATLAB Central Newsreader</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>60</ttl>
    <image>
      <title>MathWorks</title>
      <url>http://www.mathworks.com/images/membrane_icon.gif</url>
    </image>
    <item>
      <pubDate>Sat, 07 Nov 2009 19:10:04 -0500</pubDate>
      <title>Problem with using ODE solvers</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/265255#692921</link>
      <author>Markthomas </author>
      <description>I am trying to run an ODE case usin ode45... the scripts are seen below:&lt;br&gt;
---------------------------------------------code 1------------------------------------------------------------------&lt;br&gt;
function varargout = odefile_V2(t,T,flag,tau,ET,R1,rho1,L1,C1,R3,R2,rho2,L2,C2,rho3,L3,C3)&lt;br&gt;
&lt;br&gt;
switch flag&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case ''&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;varargout{1} = f(t,T,tau,ET,R1,rho1,L1,C1,R3,R2,rho2,L2,C2,rho3,L3,C3);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case 'init'&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[varargout{1:3}] = init(tau,ET,R1,rho1,L1,C1,R3,R2,rho2,L2,C2,rho3,L3,C3);&lt;br&gt;
end&lt;br&gt;
&lt;br&gt;
%--------------------------------------------------------------------------&lt;br&gt;
function dydt = f(t,T,tau,ET,R1,rho1,L1,C1,R3,R2,rho2,L2,C2,rho3,L3,C3)&lt;br&gt;
&lt;br&gt;
dydt(1) = (-(ET*(T(1)^4-(1200*(1-exp(-t/tau)))^4)+(R1*ET*(T(1)^4-(1200*(1-exp(-t/tau)))^4)+T(1)-T2(t))/R2)/rho1/L1/C1+4*ET*R1*(1200*(1-exp(-t/tau)))^3*((1200/tau)*exp(-t/tau)))/(4*ET*R1*T(1)^3+1);&lt;br&gt;
dydt(2) = (R3*ET*R1*T(1)^4+R3*T(1)+(-R3-R2)*T(2)-R3*ET*R1*(1200*(1-exp(-t/tau)))^4+R2*T(3))/R2/R3/rho2/L2/C2;&lt;br&gt;
dydt(3) = (T(2)-T(3))/R3/rho3/L3/C3;&lt;br&gt;
&lt;br&gt;
function [tspan,y0,options] = init(tau,ET,R1,rho1,L1,C1,R3,R2,rho2,L2,C2,rho3,L3,C3)&lt;br&gt;
tspan = [0; 100];&lt;br&gt;
y0 = [300; 300; 300];&lt;br&gt;
options = [];&lt;br&gt;
---------------------------------------------code 2------------------------------------------------------------------&lt;br&gt;
clear; clc; close all&lt;br&gt;
% Material @ Node 0&lt;br&gt;
T0_0 = 300;&lt;br&gt;
% Material @ Node 1&lt;br&gt;
T1_0 = 300;&lt;br&gt;
K1 = 60;&lt;br&gt;
rho1 = 8000;&lt;br&gt;
C1 = 440;&lt;br&gt;
L1 = .07;&lt;br&gt;
% Material @ Node 2&lt;br&gt;
T2_0 = 300;&lt;br&gt;
K2 = 1.4;&lt;br&gt;
rho2 = 1300;&lt;br&gt;
C2 = 1500;&lt;br&gt;
L2 = .04;&lt;br&gt;
% Material @ Node 2&lt;br&gt;
T3_0 = 300;&lt;br&gt;
K3 = 50;&lt;br&gt;
rho3 = 7500;&lt;br&gt;
C3 = 400;&lt;br&gt;
L3 = .02;&lt;br&gt;
%Resistances&lt;br&gt;
R1 = L1/(2*K1);&lt;br&gt;
R2 = R1 + (L2/(2*K2));&lt;br&gt;
R3 = (L2/(2*K2)) + (L3/(2*K3));&lt;br&gt;
% Other Constants&lt;br&gt;
ET = 4e-8;&lt;br&gt;
tau = 50;&lt;br&gt;
&lt;br&gt;
[t,T]=ode45('odefile_V2',tau,ET,R1,rho1,L1,C1,R3,R2,rho2,L2,C2,rho3,L3,C3);&lt;br&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br&gt;
i keep getting errors and was hoping somebody was able to figure out what is going wrong.  I have rewritten the code several times and can't seem to get it to work... any help would be great! &lt;br&gt;
&lt;br&gt;
Thanks!&lt;br&gt;
MT</description>
    </item>
    <item>
      <pubDate>Sat, 14 Nov 2009 23:40:20 -0500</pubDate>
      <title>Re: Problem with using ODE solvers</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/265255#694810</link>
      <author>Chris </author>
      <description>If I understand this code correctly, then I believe you might have a similar problem since it seems like the ode45 function needs the following arguments. &lt;br&gt;
&lt;br&gt;
ode45(function, time span, initial conditions) &lt;br&gt;
&lt;br&gt;
However, with your ode45 function: &lt;br&gt;
[t,T]=ode45('odefile_V2',tau,ET,R1,rho1,L1,C1,R3,R2,rho2,L2,C2,rho3,L3,C3);&lt;br&gt;
&lt;br&gt;
tau is probably suppose to be the time span, which I think is suppose to be a function. &lt;br&gt;
&lt;br&gt;
But, I am still learning the MATLAB, so a lot of your other code still looks too advanced for me. &lt;br&gt;
&lt;br&gt;
&quot;Markthomas &quot; &amp;lt;cutonem@clarkson.edu&amp;gt; wrote in message &amp;lt;hd4gmc$amd$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; I am trying to run an ODE case usin ode45... the scripts are seen below:&lt;br&gt;
&amp;gt; ---------------------------------------------code 1------------------------------------------------------------------&lt;br&gt;
&amp;gt; function varargout = odefile_V2(t,T,flag,tau,ET,R1,rho1,L1,C1,R3,R2,rho2,L2,C2,rho3,L3,C3)&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; switch flag&lt;br&gt;
&amp;gt;     case ''&lt;br&gt;
&amp;gt;         varargout{1} = f(t,T,tau,ET,R1,rho1,L1,C1,R3,R2,rho2,L2,C2,rho3,L3,C3);&lt;br&gt;
&amp;gt;     case 'init'&lt;br&gt;
&amp;gt;         [varargout{1:3}] = init(tau,ET,R1,rho1,L1,C1,R3,R2,rho2,L2,C2,rho3,L3,C3);&lt;br&gt;
&amp;gt; end&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; %--------------------------------------------------------------------------&lt;br&gt;
&amp;gt; function dydt = f(t,T,tau,ET,R1,rho1,L1,C1,R3,R2,rho2,L2,C2,rho3,L3,C3)&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; dydt(1) = (-(ET*(T(1)^4-(1200*(1-exp(-t/tau)))^4)+(R1*ET*(T(1)^4-(1200*(1-exp(-t/tau)))^4)+T(1)-T2(t))/R2)/rho1/L1/C1+4*ET*R1*(1200*(1-exp(-t/tau)))^3*((1200/tau)*exp(-t/tau)))/(4*ET*R1*T(1)^3+1);&lt;br&gt;
&amp;gt; dydt(2) = (R3*ET*R1*T(1)^4+R3*T(1)+(-R3-R2)*T(2)-R3*ET*R1*(1200*(1-exp(-t/tau)))^4+R2*T(3))/R2/R3/rho2/L2/C2;&lt;br&gt;
&amp;gt; dydt(3) = (T(2)-T(3))/R3/rho3/L3/C3;&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; function [tspan,y0,options] = init(tau,ET,R1,rho1,L1,C1,R3,R2,rho2,L2,C2,rho3,L3,C3)&lt;br&gt;
&amp;gt; tspan = [0; 100];&lt;br&gt;
&amp;gt; y0 = [300; 300; 300];&lt;br&gt;
&amp;gt; options = [];&lt;br&gt;
&amp;gt; ---------------------------------------------code 2------------------------------------------------------------------&lt;br&gt;
&amp;gt; clear; clc; close all&lt;br&gt;
&amp;gt; % Material @ Node 0&lt;br&gt;
&amp;gt; T0_0 = 300;&lt;br&gt;
&amp;gt; % Material @ Node 1&lt;br&gt;
&amp;gt; T1_0 = 300;&lt;br&gt;
&amp;gt; K1 = 60;&lt;br&gt;
&amp;gt; rho1 = 8000;&lt;br&gt;
&amp;gt; C1 = 440;&lt;br&gt;
&amp;gt; L1 = .07;&lt;br&gt;
&amp;gt; % Material @ Node 2&lt;br&gt;
&amp;gt; T2_0 = 300;&lt;br&gt;
&amp;gt; K2 = 1.4;&lt;br&gt;
&amp;gt; rho2 = 1300;&lt;br&gt;
&amp;gt; C2 = 1500;&lt;br&gt;
&amp;gt; L2 = .04;&lt;br&gt;
&amp;gt; % Material @ Node 2&lt;br&gt;
&amp;gt; T3_0 = 300;&lt;br&gt;
&amp;gt; K3 = 50;&lt;br&gt;
&amp;gt; rho3 = 7500;&lt;br&gt;
&amp;gt; C3 = 400;&lt;br&gt;
&amp;gt; L3 = .02;&lt;br&gt;
&amp;gt; %Resistances&lt;br&gt;
&amp;gt; R1 = L1/(2*K1);&lt;br&gt;
&amp;gt; R2 = R1 + (L2/(2*K2));&lt;br&gt;
&amp;gt; R3 = (L2/(2*K2)) + (L3/(2*K3));&lt;br&gt;
&amp;gt; % Other Constants&lt;br&gt;
&amp;gt; ET = 4e-8;&lt;br&gt;
&amp;gt; tau = 50;&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; [t,T]=ode45('odefile_V2',tau,ET,R1,rho1,L1,C1,R3,R2,rho2,L2,C2,rho3,L3,C3);&lt;br&gt;
&amp;gt; ------------------------------------------------------------------------------------------------------------------------&lt;br&gt;
&amp;gt; i keep getting errors and was hoping somebody was able to figure out what is going wrong.  I have rewritten the code several times and can't seem to get it to work... any help would be great! &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Thanks!&lt;br&gt;
&amp;gt; MT</description>
    </item>
  </channel>
</rss>

