|
add_dir |
|
|
|
Короче, есть система ОДУ. Решаю ее с помощью dsolve:
F:=dsolve ({d1, d2, q(0)=1, w(0)=0}, {q(t), w(t)}, numeric, output=listprocedure);
Потом:
fq := eval (q(t), F);
animate (pointplot, [ [[t, fq(t)]], symbol=circle, symbolsize=10],
t=0..2000, frames=60);
Т.е. хочу, чтобы шарик бегал соответственно поведению q(t). Он мне пишет:
Error, (in animate) incorrect first argument
При этом plot (fq(t), t=0..2000) работает замечательно. Что делать?
|
|
|
|
 |
|
maxal |
|
|
add_dir писал(а): fq := eval (q(t), F);
Надо:
fq := t -> eval (q(t), F);
|
|
|
|
 |
|
add_dir |
|
|
Попробовал t->eval(...), но выдает то же самое 
|
|
|
|
 |
|
add_dir |
|
|
|
Вот код:
u:=x->proc(x);
if sin(x)<0 then RETURN (0) else RETURN (1) end if;
end;
d := diff(q(x), x) + u(q(x))=0;
F:=dsolve ({d, q(0)=2}, {q(x)}, numeric, output=listprocedure);
Выдает такую ошибку:
Error, (in f) unable to store '-proc (x) if sin(x) < 0 then RETURN(0) else RETURN(1) end if end proc' when datatype=float[8]
Что делать?
Если писать просто u:=proc(x); то выдает вообще вот это после задания д.у. d:
Error, (in u) cannot determine if this expression is true or false: sin(q(x)) < 0
|
|
|
|
 |