С Новым годом! Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/14: Рейтинг темы: голосов - 14, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 01.03.2011
Сообщений: 4
1

Диф. уравнение MatLab

01.03.2011, 14:38. Показов 2783. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно написать м-функцию для решения примерно такого уравнения
du/dt=(a/b)*((u+b+x)^2-(u-b+x)^2)) (1)

//я только начинаю работать с матлабом поетому извените за простые вопросы, хочу использовать матлабовские dll-ки.

в это уравнение передаются значения a,b,x.

я пробовал следующи вариант

Matlab M
1
2
3
4
5
6
7
function [t,u] ode45_1(f,tspan(масив 2х елементов Т12), u0,x,a,b)
[t,u]=ode45(@f,tspan,u0,x,a,b)
end
 
function f (u,x,a,b)
f=(a/b)*((u+b+x)^2-(u-b+x)^2)) 
end
ну это какой то схематический вариант вышел, надеюсь вы поможете.
спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.03.2011, 14:38
Ответы с готовыми решениями:

диф. уравнения.(Matlab)
Нужно решить дифференциальное уравнение x'=exp(y) x(0)=1 y'=4y+x y(0)=1

Диф.ур в любим методами в Matlab
Добрый день! Можно решит дифференциальный уравнения или система дифференциальный уравнения любимы ...

диф. уравнения, как записать в MatLab
1) ysinx=y' , y(0)=1. 2) y'''=5x+4 3) y'''tgx-y''-1=0 4) y''-10y'+9y=0 5) y''+3y'=0 ,...

Диф. уравнение
Доброго времени суток.Нужно написать функцию которая вычислит отношение жидкости в резервуаре от...

6
2834 / 2131 / 86
Регистрация: 02.05.2010
Сообщений: 3,195
01.03.2011, 17:50 2
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
clear
clc
T0=0;
global a b x
a=0.2;b=3;x=4;
interval=[0:0.05:1];
[t,u]=ode45(@FF1,interval,T0);
plot(t,u,' r  ');
legend('u(t)');
grid on
 
function F=FF1(t,u)
global a b x 
F=(a./b).*((u+b+x).^2-(u-b+x).^2);

Оба файла сохранить в одной папке
Миниатюры
Диф. уравнение MatLab  
0
0 / 0 / 0
Регистрация: 01.03.2011
Сообщений: 4
01.03.2011, 19:37  [ТС] 3
спасибо,
мне нужно сделать в одном м-файле, в который я передаю T0, a, b, x, interval

Matlab M
1
2
3
4
5
6
7
function DU (a,b,x,interval,T0)
[t,u]=ode45(@FF1,interval,T0)
end
function F=FF1(t,u)
global a b x 
F=(a./b).*((u+b+x).^2-(u-b+x).^2);
end
вот так как нибуть можна сделать???

Добавлено через 6 минут
или так?

Matlab M
1
2
3
4
function [u,t]=DU(a,b,x,interval,T0)
FF1=(a./b).*((u+b+x).^2-(u-b+x).^2);
[t,u]=ode45(@FF1,interval,T0)
end
0
2834 / 2131 / 86
Регистрация: 02.05.2010
Сообщений: 3,195
01.03.2011, 20:24 4
В одном файле подпрограмма-функция и вызывающая программа не получится.
Можно решить в символьном виде так:
dsolve('Du=(a/b)*((u+b+x)^2-(u-b+x)^2)')
ans =
-x+exp(4*a*t)*C1
0
0 / 0 / 0
Регистрация: 01.03.2011
Сообщений: 4
01.03.2011, 21:09  [ТС] 5
что значит
ans =
-x+exp(4*a*t)*C1
???

в символьном виде так

Matlab M
1
2
3
function [u,t]=DU(a,b,x,interval,T0)
[t,u]=ode45(@'Du=(a/b)*((u+b+x)^2-(u-b+x)^2)',interval,T0)
end
???
0
2834 / 2131 / 86
Регистрация: 02.05.2010
Сообщений: 3,195
01.03.2011, 21:15 6
Цитата Сообщение от vikuk Посмотреть сообщение
что значит
ans =
-x+exp(4*a*t)*C1
Это результат интегрирования диф.уравнения u(t)=-x+exp(4*a*t)*C1, C1-константа, значение которой определяется из начального условия.
0
0 / 0 / 0
Регистрация: 01.03.2011
Сообщений: 4
02.03.2011, 12:26  [ТС] 7
есть такая м-функция, для решения диф. ур. 1 порядка:


Matlab M
1
2
3
4
5
6
7
8
9
function [t,u] ode45_1(strfunk, tspan, u0)
[t,u]=ode45(@odefunc, tspan,u0,[],strfunk)
end
 
function dudt (t,u,strfunc)
strfunction=strcat(strfunk,'+0*t+*u')
F=inline(strfunction);
dudt=feval(F,t,u)
end
-----------
мне нужно передать в функцию еще значения трех параметров.
есть вариант при формирувание strfunk конвертировать флоат то стрінг, таким образом формируя то что надо. но я думал может есть какой нибуть прямой метод.
вообще то я хочу сделать матлабовскую dll, которую подключаю в VS2008
0
02.03.2011, 12:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.03.2011, 12:26
Помогаю со студенческими работами здесь

Диф. уравнение
Всем привет помогите с диф. уравнением. x'=y+x-4; x(0)=1; y'=2y-x; y(0)=0;

Диф. уравнение 1 порядка
Решите дифференциальное уравнение первого порядка (t^2+1)у'+2ty=0 численно и аналитически, с учетом...

Дифференциальное уравнение в Matlab
Добрый вечер, помогите пожалуйста решить дифференциальное уравнение второго порядка в matlab:(Буду...

Дифференциальное уравнение в MATLAB
Доброго дня всем! Помогите пожалуйста решить дифференциальное уравнение. 3 месяца не могу...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru