2014 dxdy logo

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

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





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


07/01/12
15
Вот пытаюсь решить простейшее ДУ (упростил ситуацию донельзя)
$\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
3050
Донецк, Украина
См. в справке сколько должно быть аргументов у (задающей правую часть уравнения) функции и как её передавать в 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
15
Спасибо!
Оба варианта зафурычили!

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

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

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



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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