2014 dxdy logo

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

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




Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.
 
 Matlab, численное решение ДУ (ode23, ode...)
Сообщение01.04.2017, 06:22 


07/01/12
69
Вот пытаюсь решить простейшее ДУ (упростил ситуацию донельзя)
$\frac{dx}{dt}=-x$

Пробую через анонимную функцию
Код:
f = @(xx) -xx;
[t1,x] = ode23(f,[0 1],1);

Получаю:
Цитата:
??? Error using ==> @(xx)-xx
Too many input arguments.

Error in ==> odearguments at 111
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.

Error in ==> ode23 at 172
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...

Error in ==> k23_48 at 36
[t1,x] = ode23(f,[0 1],1);

-------------------
Выношу в отдельный m-файл
Код:
function f=ff(xx)
f=-xx;

Делаю
Код:
[t1,x] = ode23(ff,[0 1],1);

Получаю:
Цитата:
??? Input argument "xx" is undefined.
Error in ==> ff at 2
f=-xx;

Что не так с синтаксисом?

 Профиль  
                  
 
 Re: Matlab, численное решение ДУ (ode23, ode...)
Сообщение01.04.2017, 08:12 
Заслуженный участник


12/07/07
4522
См. в справке сколько должно быть аргументов у (задающей правую часть уравнения) функции и как её передавать в ode23.
Используется синтаксис Matlab M
>> [t1,x] = ode23(@ff,[0 1],1);
??? Error using ==> ff
Too many input arguments.

Error in ==> C:\MATLAB6p5\toolbox\matlab\funfun\private\odearguments.m
On line 104  ==> f0 = feval(ode,t0,y0,args{:});

Error in ==> C:\MATLAB6p5\toolbox\matlab\funfun\ode23.m
On line 154  ==> [neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, args, ...

Добавляем второй аргумент
Используется синтаксис Matlab M
function f=ff(t, xx)
f=-xx;
Теперь [t1,x] = ode23(@ff,[0 1],1); или [t1,x] = ode23('ff',[0 1],1); будет работать.

 Профиль  
                  
 
 
Сообщение01.04.2017, 09:24 


07/01/12
69
Спасибо!
Оба варианта зафурычили!

 i  GAA:
Если будут новые вопросы по этой теме, то создайте, пожалуйста, после чтения справки и учебников новую ветку. Эта ветка закрыта.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 3 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: gris


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group