Matlab - черчение с петлей - PullRequest
0 голосов
/ 19 декабря 2018

Я новичок в Matlab и пытаюсь перебрать уравнение от 1 до 1000 и отобразить результат, но все значения получаются одинаковыми, а график неверен.

Вот моя текущая попытка, но переменная Rm дает только один результат (вместо 1000 отдельных):

Ds = 1.04e-10;
Gamma = 1.9;
Omega = 1.09e-29;
Deltas = 2.5e-10;
Boltzmann = 1.3806e-23;
T = 1123.15;
Beta = 0.83;
Zo = 6.7;
EtaNi = 0.39;
EtaYSZ = 0.61;
Rm0 = 0.29;
RmYSZ0 = 0.265;
lambda = 4.70e-3;

C = Ds * ((Gamma * Omega * Deltas) / (2 * Boltzmann * T)) * (Beta / ((1 - Beta^2) * ((1 + Beta^2)^0.5) * ((1 + Beta)^3))) * Zo * (EtaNi/((EtaNi/Rm0) + (EtaYSZ/RmYSZ0)));

tinit=1;                        % Initial time value (h)
tend=1000;                      % End time value (h)
tinc=1;                         % Increment in time value (h)
t= [tinit:tinc:tend];           % Time vector
n = 1000;
for i=1:n
     Rm(i) = (((5*C)/lambda) * (1 - exp(-lambda*i)) + (Rm0)^5)^(1/5);  
end
plot(t,Rm);

Ожидаемый результат - экспоненциальная кривая, любая помощь будет оценена

1 Ответ

0 голосов
/ 19 декабря 2018

Ваш срок до R0 - это экспонента, которая колеблется от 0 до 4.5e-27.R0 ^ 5 составляет 0,0021.Точности с плавающей запятой недостаточно, чтобы сохранить первое слагаемое, когда оно добавляется ко второму.Итак, (5C / L * (...) + Rm0 ^ 5) == Rm0 ^ 5, поэтому он постоянен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...