ode15s代码中的错误消息

时间:2011-01-09 19:48:16

标签: matlab

我在matlab中将这些简单的代码写在单独的文件中。 当我运行此程序时,我收到此消息:

???尝试将SCRIPT ode15s作为函数执行:

d:\应用\ ode15s.m

==>中的错误ode15s at 2

[T,Y] = ode15s(@difdif,[0 40],[1 0 0]);

问题是什么。

««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

clc

[T,Y] = ode15s(@difdif,[0 40],[1 0 0]);

%plot(T,Y(:,3),'-o')

plot(T,Y(:,1),'-',T,Y(:,2),'-o',T,Y(:,3),'.')

«««««««««««««««««««««««««««««««««««««««««««««««««««

function dy = difdif(t,y)

dy = zeros(3,1);    % a column vector

dy(1) =-0.04*y(1)+10^4*y(2)*y(3);

dy(2) = 0.04*y(1)-10^4*y(2)*y(3)-3*10^7*y(2)^2;

dy(3) = 3*10^7*y(2)^2;

end

2 个答案:

答案 0 :(得分:2)

Why do I receive the error "Attempt to execute SCRIPT FILENAME as a function"?处理您的问题。 D:\app\ode15s.m可能是一个自制脚本,首先出现在MATLAB搜索路径中。内置ode15s.m的MATLAB不会按预期调用。更改MATLAB搜索路径中的顺序或重命名D:\app\ode15s.m

引用解决方案:which ode15s -all向您显示搜索路径上的所有实例。

答案 1 :(得分:0)

您将脚本命名为ode15s,其名称与内置函数相同。当matlab尝试执行ode15s(@difdif,[0 40],[1 0 0])时,它会找到脚本,而不是内置函数。重命名脚本。