2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Метод Рунге-Кутта дифф. уров.
Сообщение29.10.2014, 18:14 
Аватара пользователя
Добрый вечер всем.
Посмотрите пожалуйста, исправит, мой код на MatLab, где я мог ошибется, программа работает но график
не так.

код: М-файл
код: [ скачать ] [ спрятать ]
Используется синтаксис Matlab M
function dy=Run(x,y)
%Константы:
l=0.2;
mf=500;
eps=1e-5;
alw=50;
rw=0.05;
r1=0.3;
r2=1500;
c2=660;
la2=4;
la1=0.084;
al1=0.5;
al2=0.5;
et0=0.077;
r=8.314;
cp=1000;
v=1;
u=0.0001;
e=126000;
q=1513000;
k0=50000000000;
al0=(2*alw)/rw;
a1=((r1*(v+u)*cp+r2*c2*u)*l)/(al1*la1+al2*la2);
a2=(al0*l*l)/(al1*la1+al2*la2);
a3=(l*l*r1*q*et0*k0)/(al1*la1+al2*la2);
T=315;
T0=300;
Te=(q*et0)/(cp*(1-(r2*c2*u)/(r1*cp*(v+u))));
TETA=(T-T0)/(Te-T0);
dy=zeros(2,1);
dTETA=dy;
dy=dy*a1+TETA*a2*(Te-T0)-a3*exp(-e/(r*(T0+TETA*(Te-T0))));
end
 


В командном окне:
код: [ скачать ] [ спрятать ]
Используется синтаксис Matlab M
T=315;
T0=300;
q=1513000;
et0=0.077;
r2=1500;
c2=660;
r1=0.3;
cp=1000;
v=1;
u=0.00001;
Te=(q*et0)/(cp*(1-(r2*c2*u)/(r1*cp*(v+u))));
TETA=(T-T0)/(Te-T0);
[x,y]=ode45(@Run,[1 10],[TETA 0.1]);
plot(x,y)
 

 
 
 
 Re: Метод Рунге-Кутта дифф. уров.
Сообщение31.10.2014, 22:45 
Maik2013, у Вас получается, что функция Run не зависит от x,y. Чтобы функция Run зависела от переменных x,y, они должны использоваться в этой функции.

 
 
 [ Сообщений: 2 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group