ode45 with boundary conditions

36 次查看(过去 30 天)
Rick
Rick 2014-10-11
评论: Rick 2014-10-11
Hello,
If I have boundary conditions such as at x = 0, the temperature is T1, and at x = L, temperature is T2, how do I incorporate that into ode45? can you span two different parameters? I am trying to solve fourier's law of condution
Qdot = -kA dT/dx
Here is my code, but when I run it the temperature at the end is not 300 like I want it to be
k0 = 5;
beta = 10;
k = @(T) k0*(1+beta*T);
xspan = [0 10]; % meters
L = 10; % meters
T1 = 300;
Tf = 100;
A = 10;
Qdot = ((-k0*A)/L)*(Tf + (beta/2)*Tf^2 - T1 + (beta/2)*T1^2);
dTdx = @(x,T) Qdot/(-k(T)*A);
[X, T] = ode45(dTdx,xspan,T1);
plot(X,T)
xlabel('distance (meters)')
ylabel('Temperature (C)')
title('Temperature vs. distance')

回答(2 个)

Marc
Marc 2014-10-11
Try using bvp4c or bvp5c for boundary value problems.
ode45 is a initial value problem.
  1 个评论
Rick
Rick 2014-10-11
I have never seen this function. How can I incorporate it into this problem? It seems like the second argument for the boundary conditions is a function handle, but I just want the boundary conditions to be at x=0, T=T1, and at x=L, T=T2

请先登录,再进行评论。


haMed
haMed 2014-10-11
Your Problem is discretized on x and you are integrating the resulting ode problem by ode-solver.
In this case I try to include the boundary conditions in the discretized equations. Or to represent the boundary conditions as states.
  1 个评论
Rick
Rick 2014-10-11
I don't understand your response. How can I do whatever you are trying to say?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Ordinary Differential Equations 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by