首页
学习
活动
专区
圈层
工具
发布

误差
EN

Stack Overflow用户
提问于 2015-08-23 16:59:29
回答 1查看 234关注 0票数 0

因此,我试图创建一个Runge函数,这是我的代码:

代码语言:javascript
复制
function [t,U] = RK(f, n, eta, interv)
h = (interv(2)-interv(1))/n;
t = interv(1):h:interv(2);

v(1) = eta(1);
w(1) = eta(2);
for i=1:n
    k1 = f([v(i),w(i)]);
    k2 = f([v(i),w(i)]+h*k1/2); %f(t(i)+h/2, u(:,i)+h*k1/2);
    k3 = f([v(i),w(i)]+h*k2/2);
    k4 = f([v(i),w(i)]+h*k3);

    v(i+1) = v(i) + h*(k1(1)+2*k2(1)+2*k3(1)+k4(1))/6;
    w(i+1) = w(i) + h*(k1(2)+2*k2(2)+2*k3(2)+k4(2))/6;
end
U = [v;w];
end

如果U是由2行和n+1列组成的矩阵,下面是我尝试执行此函数时的问题,例如:

代码语言:javascript
复制
RK(sin, 10, [0,1], [5,15])

我得到了错误的not enough input arguments,但是当我试图以脚本的形式执行代码并将f替换为sin时,每件事都是有效的,我得到了U矩阵,有人能知道解决方案是什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-23 17:15:53

您正在使用sin作为函数句柄。只要添加@符号,您就设置好了。

代码语言:javascript
复制
RK(@sin, 10, [0,1], [5,15])
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32169143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档