Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab函数误差_Matlab - Fatal编程技术网

Matlab函数误差

Matlab函数误差,matlab,Matlab,我对matlab相当陌生,正在学习一些示例,我有以下代码: function [T,Y] = heun(f,a,b,ya,m) h = (b - a)/m; T = zeros(1,m+1); Y = zeros(1,m+1); T(1) = a; Y(1) = ya; for j=1:m, k1 = feval(f,T(j),Y(j)); p = Y(j) + h*k1; T(j+1) = a + h*j; k2 = feval(f,T(j+1),p);

我对matlab相当陌生,正在学习一些示例,我有以下代码:

function [T,Y] = heun(f,a,b,ya,m)
h = (b - a)/m;
T = zeros(1,m+1);
Y = zeros(1,m+1);
T(1) = a;
Y(1) = ya;
for j=1:m,
    k1 = feval(f,T(j),Y(j));
    p  = Y(j) + h*k1;
    T(j+1) = a + h*j;
    k2 = feval(f,T(j+1),p);
    Y(j+1) = Y(j) + h*(k1 + k2)/2;
end
获得自:


我发现错误“heun”需要更多的输入参数才能运行,它被另存为一个名为heun的m文件,我正在尝试将此方法用于另一个问题,但无法使此代码正常工作。有人能帮忙吗?

请确保使用5个输入参数调用heun()。在您显示的代码中,f、a、b、ya、m是heun()希望收到的5个数量。

问题不在于您显示的代码,而在于您使用它的方式。

从你提供的链接中可以看到

% Sample call
%   [T,Y] = heun('f',a,b,ya,m)
% Inputs
%   f    name of the function
%   a    left  endpoint of [a,b]
%   b    right endpoint of [a,b]
%   ya   initial value
%   m    number of steps
% Return
%   T    solution: vector of abscissas
%   Y    solution: vector of ordinates

要使用此函数,您需要为其提供5个输入参数。除非您向我们展示调用
heun
的代码,否则我们无法执行任何操作

嗯,我认为对Matlab中的函数用法有一些基本的误解。 如果我给你一个如何使用函数的例子,也许你能理解这个问题

1-将上述函数保存到名为heun.m的新Matlab函数**中

2-写下你想要评估的函数。由于您想使用Heun的方法,您应该熟悉该函数的含义。。。该函数需要有两个输入参数,并返回一个输出参数。可以将其描述为out=myFunction(in1,in2)

3-将函数作为Matlab函数**保存到与heun.m相同的目录中,并将其命名为myFunction.m

4-现在创建一个新的Matlab脚本**,并根据需要命名它。在这个脚本中,您可以调用函数heun.m(它本身正在使用函数myFunction…)计算某些内容。例如,您可以使用以下行调用heun.m:

f = @myFunction; % or: f = 'myFunction';
a = -2;
b = 3;
ya = 2;
m = 4;

[T,Y] = heun(f, a, b, ya, m);
顺便说一下:@myFunction在本例中是一个函数句柄。你可以在mathworks主页上找到更多信息,或者使用我写的备选方案作为评论

**我希望您知道Matlab脚本和Matlab函数之间的基本区别。如果没有,请查看以下页面:


功能,功能,功能。。。嗯,尽管“function”这个词经常被使用,但我希望我能有所帮助。

这是因为m在任何地方都有定义吗?我不太清楚你的意思,当你调用函数时,你应该给它发送5个输入,如
heun(f,a,b,ya,m)
对不起,我对matlab相当陌生,你的意思是只在heun的两边加引号吗?编辑你的问题,展示你是如何调用heun的()现在。你能告诉我们你是如何使用这个函数的吗?好的,我想用这个方法绘制Y与T的图。我们不想对你“想要”的东西进行解释。我们希望您向我们展示用于执行heun()的命令。你是怎么做到的?让我们看看你写的那句话!我猜接下来的情节是(T,Y);