Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
06.10.2014, 19:19
Студворк — интернет-сервис помощи студентам
Maikl2020, друг мой, не торопись хвататься за прогонку! пока мы не разберемся с коэфициентами, результата не получим!
напиши единицы измерения возле каждого числа:
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;
Tv=315;
E=126000;
Q=1513000;
k0=50000000000;
u=0.001;
v=0.5;
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.10.2014, 19:19
Ответы с готовыми решениями:

Дифференциальное уравнение методом Рунге-Кутта.
нужно решить дфиеренциальное уравнение в matlab методом рунге-кутта. вот оно: dy/dt+a*y=b*Um*sin(w*t)

Решить дифференциальное уравнение методом Рунге-Кутта 4 порядка (ode45)
Добрый день! Необходимо решить дифференциальное уравнение методом Рунге-Кутта 4 порядка. Уравнение подготовил, а вот как реализовать...

Проинтегрировать дифференциальное уравнение второго порядка методом Рунге-Кутта
Здравствуйте, пожалуйста расскажите где я ошибся. проинтегрировать дифференциальное уравнение второго порядка методом Рунге-Кутта. ...

114
Всегда онлайн
 Аватар для Maikl2020
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,451
06.10.2014, 19:40  [ТС]
Зосима, ok

https://www.cyberforum.ru/cgi-bin/latex.cgi?T_{0}- температура в нормальных условиях (Кельвин);

https://www.cyberforum.ru/cgi-bin/latex.cgi?T_1, T_2 - температуры газа и пористой среды (K);

https://www.cyberforum.ru/cgi-bin/latex.cgi?u-скорость волны ФГГ (м/с);

https://www.cyberforum.ru/cgi-bin/latex.cgi?v -- скорость вдува газа (м/с);

https://www.cyberforum.ru/cgi-bin/latex.cgi?\rho_1, \rho_2 -истинные плотности газовой и твердой фаз (кг/м^3);

https://www.cyberforum.ru/cgi-bin/latex.cgi?c_p -теплоемкость смеси газов при постоянном давлении (м^2)/(с^2K);

https://www.cyberforum.ru/cgi-bin/latex.cgi?c_2 -теплоемкость твердой фазы (м^2)/(с^2K);

https://www.cyberforum.ru/cgi-bin/latex.cgi?\lambda_1, \lambda_2 - коэффициенты теплопроводности смеси газов и пористой среды соответственно (кгм)/(с^3K);

https://www.cyberforum.ru/cgi-bin/latex.cgi?\alpha_1 - объемное содержание газовой фазы;

https://www.cyberforum.ru/cgi-bin/latex.cgi?\alpha_2 - объемное содержание твердой фазы;

https://www.cyberforum.ru/cgi-bin/latex.cgi?Q - тепловой эффект реакции (м^2)/(с^2);

https://www.cyberforum.ru/cgi-bin/latex.cgi?E - энергия активации (кгм^2)/((с^2)моль К));

https://www.cyberforum.ru/cgi-bin/latex.cgi?R - универсальная газовая постоянная (кгм^2)/((с^2)моль К));

https://www.cyberforum.ru/cgi-bin/latex.cgi?k_0 - предэкспонент (1/с);

https://www.cyberforum.ru/cgi-bin/latex.cgi?\eta_0 - массовая концентрация недостающего компонента в исходном состоянии;
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
07.10.2014, 17:07
Цитата Сообщение от Maikl2020 Посмотреть сообщение
Я думаю с перво, перевести из Pascal в Matlab уравнение из методички
потом по аналогии свою уравнению пробовать. Потому, что мой уравнений тоже такая но чуть коэффициенты другие.
Тогда начинайте переводить,только ввод с консоли замените программным заданием".
Я бы перевел,но листинг с методички не копируется,а Pascal не знаю.
Можно,конечно с 0,но играться с аппроксимированием,когда есть готовый вариант не хочу.
Когда заработает пример с методички перейдем к вашим коэффициентам.
0
Всегда онлайн
 Аватар для Maikl2020
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,451
07.10.2014, 18:43  [ТС]
S_el,
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
user crt;
const mf=500;
eps=1e-5;
R=8.31;
type
  vector=array[1..mf] of real;
var
i,j,N:integer;
T,Ts,Tn, alfa, beta:vector;
ai,bi,ci,fi,max:real;
lamda, ro, c,h,tau:real;
kapa,Te,q,k0,E:real;
T0,L_end, time:real;
f,g:text;
begin
clrscr;
Writeln('N');
Readln(N);
Writeln('t_end');
Readln(t_end);
Writeln('L');
Readln(L);
Writeln('lamda');
Readln(lamda);
Writeln('ro');
Readln(ro);
Writeln('c');
Readln(c);
Writeln('kapa');
Readln(kapa);
Writeln('Te');
Readln(Te);
Writeln('q');
Readln(q);
Writeln('k0');
Readln(k0);
Writeln('E');
Readln(E);
Writeln('T0');
Readln(T0);
H:=L/(N-1);
tau:t_end/100;
  for i:=1 to N do
    T[i]:=T0;
   time:=0;
while time<t_end do
begin
 time:time+tau;
alfa[1]:=2*tau*lamda/(2*tau*(lamda+kapa*h)+ro*c*sqr(h));
beta[1]:=(ro*c*sqr(h)*T[1]+2*tau*kapa*h*Te)/(2*tau*(lamda+kapa*h)+ro*c*sqr(h));
   for i:=1 to N do
   Tn[i]:=T[i];
   repeat
for i:=1 to N do 
Ts[i]:=T[i];
  for i:=2 to N-1 do 
begin
  ai:=lamda/sqr(h);
  bi:=2*lamda/sqr(h)+ro*c/tau;
  ci:=lamda/sqr(h);
  fi:=-ro*c*Tn[i]/tau-q*k0*ro*exp(-R/(R*T[i]));
alfa[i]:=ai/(bi-ci*alfa[i-1]);
beta[i]:=(ci*beta[i-1]-fi)/(bi-ci*alfa[i-1]);
end;
   T[N]:=(ro*c*sqr(h)-Tn[N]+2*tau*(lamda*beta[N-1]+kapa*h*Te))/
         (ro*c*sqr(h)+2*tau*(lamda*(1-alfa[N-1])+kapa*h));
         
  for i:=N-1 downto 1 do 
T[i]:=alfa[i]*T[i+1]+beta[i];
max:abs(T[1]-Ts[1]);
  for i:=2 to N do 
     if max<abs(T[i]-Ts[i]) then max:=abs(T[i]-Ts[i]);
until max<=eps;
end;
    Assign (f,'res.txt');
    Writeln('L');
    Writeln('N');
    Writeln('lamda');
    Writeln('ro');
    Writeln('c');
    Writeln('T0');
    Writeln('kapa');
    Writeln('Te');
    Writeln('q');
    Writeln('k0');
    Writeln('E');
    Writeln('h');
    Writeln('tau');
    Writeln('t');
    close
Assign(g, 'tempr,txt');
 Rewrite(g);
  for i:=1 to N do
      Writeln(g,' ', h*(i-1):10:8,' ',(T[i]-273):8:5);
close(g);
end.
 
t=600;
L=0.2;
T0=298;
lamda=0.7;
ro=1500;
c=750;
kapa=40;
Te=243;
q=10^3;
k0=3*10^4;
E=8*10^4;
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
07.10.2014, 22:30
Maikl2020, 17-18 строки,чему равно N?
0
Всегда онлайн
 Аватар для Maikl2020
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,451
08.10.2014, 08:06  [ТС]
S_el, Ну я тоже не знаю на методичка не указана, может N=10 или 100 не боле
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
08.10.2014, 09:41
Maikl2020, теперь вопрос по Паскалю,там в блоки begin...end оборачивается любой оператор или можно записывать без них если оператор всего 1?
0
Всегда онлайн
 Аватар для Maikl2020
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,451
08.10.2014, 10:20  [ТС]
S_el, Я о Pascal-е тоже плоха знаю но, если оператор всего 1, всё равно надо написать begin...end.

Еще мы хотели провести это программу на MatLab не так ли?
Или вы хотите с перво на Pascale провести все это?
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
08.10.2014, 10:39
Цитата Сообщение от Maikl2020 Посмотреть сообщение
Еще мы хотели провести это программу на MatLab не так ли?
Правильно,мы переводим с Pascal на Matlab.

Только вы сразу уточните насколько ваше уравнение отличается от примера из методички?

Цитата Сообщение от Maikl2020 Посмотреть сообщение
Я о Pascal-е тоже плоха знаю но, если оператор всего 1, всё равно надо написать begin...end.
Смотрите,вот в 42 строке цикл отрабатывает безо всяких begin-end.
0
Всегда онлайн
 Аватар для Maikl2020
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,451
08.10.2014, 12:37  [ТС]
S_el, Смотрите,вот в 42 строке цикл отрабатывает безо всяких begin-end.
да тут итерация идет.

Добавлено через 2 минуты
Еще как Вы делайте, что мои сообщения на четырехугольник берёте?
0
08.10.2014, 12:43

Не по теме:

Цитата Сообщение от Maikl2020 Посмотреть сообщение
Еще как Вы делайте, что мои сообщения на четырехугольник берёте?
Я выделяю текст из вашего сообщения и под курсором появляется прямоугольник с надписью "цитировать". Если на него нажать,выделенный текст оборачивается в тег quote.
Можно это-же проделать вручную:
скопировать текст собеседника,слева открыть тегом quote=Ник,цитируемого пользователя текст/quote <- закрывающий тег

0
Всегда онлайн
 Аватар для Maikl2020
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,451
09.10.2014, 12:36  [ТС]
S_el,
Цитата Сообщение от S_el Посмотреть сообщение
Правильно,мы переводим с Pascal на Matlab.
извиняюсь за беспокойства что нибудь получился?
0
09.10.2014, 17:45

Не по теме:

Цитата Сообщение от Maikl2020 Посмотреть сообщение
извиняюсь за беспокойства что нибудь получился?
На выходных разберусь :)

0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
12.10.2014, 23:49
Лучший ответ Сообщение было отмечено Maikl2020 как решение

Решение

Maikl2020,
Разобрался с примером из методички:
главная программа:
Matlab M
1
2
3
4
5
6
clear,clc
[T,x]=funcp(600);
T2=funcp(1800);
T3=funcp(3600);
plot(x,T,x,T2,x,T3)
grid on
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
function [T,x] = funcp(t_end)
%UNTITLED Summary of this function goes here
%   Detailed explanation goes here
 
L=0.2;
lamda=0.7;
ro=1500;
c=750;
kapa=40;
Te=243;
q=10^3;
k0=3*10^4;
E=8*10^4;
 mf=500;
eps=1e-5;
R=8.31;
 
T=zeros(1,mf);
Ts=zeros(1,mf);
Tn=zeros(1,mf);
alfa=zeros(1,mf);
beta=zeros(1,mf);
 
N=500;% количество пространственных узлов
T0=298;% - начальная температура
h=L/(N-1);% шаг по x
tau= t_end/100;%шаг по t
 
  for i=1: N 
    T(i) =T0;
  end;
  time =0;
while (time<t_end)
 
 time=time+tau;
alfa(1) =2*tau*lamda/(2*tau*(lamda+kapa*h)+ro*c*h*h);
beta(1)=(ro*c*(h*h)*T(1)+2*tau*kapa*h*Te)/(2*tau*(lamda+kapa*h)+ro*c*h*h);
   for i =1 :N 
   Tn(i)=T(i);
   end;
  while(1==1)
for i=1:N  
Ts(i)=T(i);
end
  for i=2:N-1 
 
  ai =lamda/(h*h);
  bi =2*lamda/(h*h)+ro*c/tau;
  ci =lamda/(h*h);
  fi =-ro*c*Tn(i)/tau-q*k0*ro*exp(-E/(R*T(i)));
alfa(i) =ai/(bi-ci*alfa(i-1));
beta(i)=(ci*beta(i-1)-fi)/(bi-ci*alfa(i-1));
  end;
   T(N)=(ro*c*(h*h)*Tn(N)+2*tau*(lamda*beta(N-1)+kapa*h*Te))/(ro*c*(h*h)+2*tau*(lamda*(1-alfa(N-1))+kapa*h));
         
  for i=N-1:-1:1  
T(i) =alfa(i)*T(i+1)+beta(i);
  end;
max=abs(T(1)-Ts(1));
  for i=2:N  
     if(max<abs(T(i)-Ts(i))) 
         max =abs(T(i)-Ts(i));
     end
  end
     if(max<=eps) 
         break;
     end
  
  end
  
end;
for i=1:N
    x(i)=h*(i-1);
end
T=T-273;
 
end
Получились такие графики:
Миниатюры
Нелинейное дифференциальное уравнение - метод Рунге-Кутта  
2
Всегда онлайн
 Аватар для Maikl2020
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,451
13.10.2014, 09:01  [ТС]
S_el, Спасибо большой!
Теперь мне придется свою уравнению подгонят тут.
0
Всегда онлайн
 Аватар для Maikl2020
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,451
15.10.2014, 11:45  [ТС]
S_el, Здравствуй! Я подгонял свою уравнения на Вашу программу но график получается как у методичка. Посмотрите пожалуйста, очень нужен, не как не пойму в чем дело.
Я тут добавил полностью свою задачу как решил.
Matlab M
1
2
3
[T,x]=fun1(1800);
plot(x,T)
grid on
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
function [T,x] = fun1(t_end)
%UNTITLED Summary of this function goes here
%   Detailed explanation goes here
%Константы 
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;
Tv=315;
E=126000; 
Q=1513000;
k0=50000000000;
Al0=(2*alw)/Rw;
FFi=R2*c2/R1/cp;
kap=(al1*la1+al2*la2)/(R2*c2+R1*cp);
a0=Al0/(R2*c2+R1*cp);
a1=(R1*k0*Q*et0)/(R2*c2+R1*cp);
a2=v/(1+FFi);
 
T=zeros(1,mf);
Ts=zeros(1,mf);
Tn=zeros(1,mf);
alfa=zeros(1,mf);
beta=zeros(1,mf);
 
N=500;% количество пространственных узлов
T0=298;% - начальная температура
h=L/(N-1);% шаг по x
tau= t_end/100;%шаг по t
 
  for i=1: N 
    T(i) =T0;
  end;
  time =0;
while (time<t_end)
 
 time=time+tau;
alfa(1) =0;
beta(1)=1200;
   for i =1 :N 
   Tn(i)=T(i);
   end;
  while(1==1)
for i=1:N  
Ts(i)=T(i);
end
  for i=2:N-1 
 
  ai =kap/(h*h);
  bi =1/tau+(2*kap)/(h*h)+a2/h;
  ci =a2/h+kap/(h*h);
  fi =-1/tau+a0*(T(i)-T0)-a1*exp(-E/(R*T(i)));
alfa(i) =ai/(bi-ci*alfa(i-1));
beta(i)=(ci*beta(i-1)-fi)/(bi-ci*alfa(i-1));
  end;
   %T(N)=(ro*c*(h*h)*Tn(N)+2*tau*(lamda*beta(N-1)+kapa*h*Te))/(ro*c*(h*h)+2*tau*(lamda*(1-alfa(N-1))+kapa*h));
         
  for i=N-1:-1:1  
T(i) =alfa(i)*T(i+1)+beta(i);
  end;
max=abs(T(1)-Ts(1));
  for i=2:N  
     if(max<abs(T(i)-Ts(i))) 
         max =abs(T(i)-Ts(i));
     end
  end
     if(max<=eps) 
         break;
     end
  
  end
  
end;
for i=1:N
    x(i)=h*(i-1);
end
T=T-273;
end
Вложения
Тип файла: pdf TIKHR.pdf (118.7 Кб, 2 просмотров)
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
15.10.2014, 14:26
Цитата Сообщение от Maikl2020 Посмотреть сообщение
Посмотрите пожалуйста, очень нужен, не как не пойму в чем дело.
Давайте разбираться,начнем с аппроксимации,затем граничные условия и коэффициенты.
Аппроксимация.
1.В вашем случае в уравнение добавляется частная производная по x, функция в правой части и константа.А также коэффициенты.Ну еще и экспонента умножается на функцию,правильно?
2.Параметр Q умножить на "этта-нулевое" находится в показатели экспоненты или нет?
0
Всегда онлайн
 Аватар для Maikl2020
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,451
15.10.2014, 17:16  [ТС]
Цитата Сообщение от S_el Посмотреть сообщение
1.В вашем случае в уравнение добавляется частная производная по x, функция в правой части и константа.А также коэффициенты.Ну еще и экспонента умножается на функцию,правильно?
2.Параметр Q умножить на "этта-нулевое" находится в показатели экспоненты или нет?
Да.

Мы проверили все физические параметр все верно вроде.
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
15.10.2014, 20:55
Maikl2020, а на 2-ой вопрос какой ответ?
0
Всегда онлайн
 Аватар для Maikl2020
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,451
15.10.2014, 21:19  [ТС]
S_el,
Цитата Сообщение от S_el Посмотреть сообщение
а на 2-ой вопрос какой ответ?
извините пожалуйста.

Все там умножается то есть https://www.cyberforum.ru/cgi-bin/latex.cgi?Q\cdot\eta_{0}\cdot\rho_{0}\cdot k_{0}\cdot\exp(-E/RT)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.10.2014, 21:19

Уравнение, метод Рунге-Кутта 4 порядка
Есть решение 18 задания: h=1; x=0:h:25; xi=0; yi=0; N=25/h; y=zeros(size(x)); y(1)=1; for i=1:N ...

Нелинейное дифференциальное уравнение второго порядка
Привет всем! Помогите пожалуйста решить это уравнение. Из-за нелинейности ничего не получается( коэффициенты b и betta( зависит от cos(wt))...

Метод Рунге-Кутта
Здравствуйте, помогите пожалуйста решить проблему. Решаю простой дифур dy=-2*x*y Создаю m-файл function dy=fu(x,y) dy=-2*y*x^2; ...

Метод Рунге-Кутта
Необходимо решить дифф. уравнение методом Рунге-Кутта 4-го порядка. {y}^{'}={t}^{2}-y, y(0)=1, y(t)=-{e}^{-t}+{t}^{2}-2*t+2 function...

Метод Рунге-Кутта 4 порядка
Помогите исправить ошибки % моя функция для вычисления значений function res = myfunc (x, y) res = y + (1 + x) * y * y; end ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru