реклама на сайте
подробности

 
 
> Решение кусочно заданой системы дифференциальных уравнений - Matlab
X-Shadow
сообщение Jan 14 2014, 04:12
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 31-08-06
Пользователь №: 19 988



Здравствуйте. Столкнулся с проблемой при решении системы дифференциальных уравнений которая представлена на рисунке в приложении. Эта система содержит два интервала. Из за того что это система уравнений второго порядка и я не знаю значений для первых производных на границах (y'(-20) и y'(10)) то это задача с граничными условиями и в теории может быть решена с помощью функции bvp4c. Проблема в том как прописать эту систему уравнений вместе с условием непрерывности в районе точки 0 (снизу изображения). Я попытался сделать следующее (функция для передачи в bvp4c):

Код
function [ dydx ] = tode( x , y )
dydx = zeros(2,1); % create zero array
dydx(1) = y(2);
if (x > 0)
    dydx(2) = b/a*((1+y(1))^(3/2)-1);
elseif (x <= 0)
    dydx(2) = 0;
end;
end


Однако эта функция не включает в себя условие с первыми производными. Подскажите пожалуйста как можно решить данную проблему? Спасибо.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
X-Shadow
сообщение Jan 16 2014, 04:12
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 31-08-06
Пользователь №: 19 988



Я задал этот вопрос на хелпе матлаба и там человек предложил решение http://www.mathworks.com.au/matlabcentral/...ential-equation. Опуская матлабовские функции этот мужик предлагает решить подобную задачу следующим образом (как я понял): разбить систему на 2 уравнения и решать их как будто 2 разных дифура с нач условиями. Значения первых производных не известны поэтому для начала приравнять обе к 0 (касательно правой части отрезка это верно т.к там она и равна нулю). Затем решить 2 уравнения отдельно друг от друга и проверить условие в районе точки 0. Если не сходятся то изменить начальное условие (увеличить или уменьшить начальное значение производной) и повторять пока не будут выполняться условия в районе точки 0. Все бы хорошо кроме одного нюанса - я точно знаю что производная в правом участке y'(10)=0 (ну или около нуля т.к в этом месте полупроводник имеет контакт с металлом и на границе т.к это оммический переход потенциалы должны быть равны а следовательно первая производная от функции потенциала тоже равна 0), это условие из физики. Т.е как бы мы это и не меняем. Но вот получается что второе уравнение никак не зависит от изменения параметров в первом. Фактически мы просто подгоняем решение первого уравнения чтобы оно сходилось с решением второго хотя на самом деле решение второго уравнения должно зависеть от граничного условия в точке х=-20 (в этой точке мы прикладываем потенциал U). Или может я чтото не так понял?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 17:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01428 секунд с 7
ELECTRONIX ©2004-2016