求帮忙看一下这个求常微分方程的matlab程序哪里出了问题 5

程序如下:functiony=Euler(a,b,N,af);f=y+y.^2;h=(b-a)/N;x(1)=a;y(1)=af;ym(1)=af;yh(1)=af;yr... 程序如下:
function y=Euler(a,b,N,af);
f=y+y.^2;
h=(b-a)/N;
x(1)=a;
y(1)=af;
ym(1)=af;
yh(1)=af;
yr(1)=af;
jqj(1)=af;
for i=2:N+1
y(i)=y(i-1)+h*f(x(i-1),y(i-1));%Euler法
yh(i)=yh(i-1)+(h/4)*(f(x(i-1),yh(i-1))+3*f(x(i-1)+2*h/3,yh(i-1)+2*h*f(x(i-1),yh(i-1))/3));%Heun法
ym(i)=ym(i-1)+h*(f(x(i-1)+h/2,ym(i-1)+(h/2)*f(x(i-1),ym(i-1))));%Midpoint法
x(i)=a+(i-1)*h;
k1=h*f(x(i-1),yr(i-1));
k2=h*f(x(i-1)+h/2,yr(i-1)+k1/2);
k3=h*f(x(i-1)+h/2,yr(i-1)+k2/2);
k4=h*f(x(i),yr(i-1)+k3);
yr(i)=yr(i-1)+(k1+2*k2+2*k3+k4)/6;%RungeKutta法
jqj(i)=exp(t)./(16-exp(t));
end
[x',y',ym',yh',jqj']
er=sum((y-jqj).^2)%Euler法误差
erg=sum((ym-jqj).^2)%改进Euler法误差
erh=sum((yh-jqj).^2)%Heun法误差
err=sum((yr-jqj).^2)%RungeKutta法
plot(x,y,'r',x,ym','b',x,yh','k',x,yr,'y',x,jqj,'g');
legend('Euler法','Midpoint法','Heun法','RungeKutta法','精确解');
展开
 我来答
dukinkin
2014-12-06 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2444
采纳率:90%
帮助的人:896万
展开全部
第一句
f=@(x,y) y+y.^2;
追问
改了之后报错是“找不到 'Euler' 的完全匹配项”。这是什么意思
追答

你这个是函数m文件,运行要输入参数 a,b ,N,af

你按照下面,直接将其改为脚本m文件来运行

前面加几句定义 a ,b,N和af

clear,clc;
a=0;
b=1;
N=10;
af=1/15;
f=@(x,y) y+y.^2;
h=(b-a)/N;
x(1)=a;
y(1)=af; 
ym(1)=af;
yh(1)=af;
yr(1)=af;
jqj(1)=af;
for i=2:N+1
    y(i)=y(i-1)+h*f(x(i-1),y(i-1));%Euler法
    yh(i)=yh(i-1)+(h/4)*(f(x(i-1),yh(i-1))+3*f(x(i-1)+2*h/3,yh(i-1)+2*h*f(x(i-1),yh(i-1))/3));%Heun法
    ym(i)=ym(i-1)+h*(f(x(i-1)+h/2,ym(i-1)+(h/2)*f(x(i-1),ym(i-1))));%Midpoint法
    x(i)=a+(i-1)*h;
    k1=h*f(x(i-1),yr(i-1));
    k2=h*f(x(i-1)+h/2,yr(i-1)+k1/2);
    k3=h*f(x(i-1)+h/2,yr(i-1)+k2/2);
    k4=h*f(x(i),yr(i-1)+k3);
    yr(i)=yr(i-1)+(k1+2*k2+2*k3+k4)/6;%RungeKutta法
    jqj(i)=exp(x(i))./(16-exp(x(i)));
end
er=sum((y-jqj).^2)%Euler法误差
erg=sum((ym-jqj).^2)%改进Euler法误差
erh=sum((yh-jqj).^2)%Heun法误差
err=sum((yr-jqj).^2)%RungeKutta法
plot(x,y,'r',x,ym,'b',x,yh,'k',x,yr,'y',x,jqj,'g');
legend('Euler法','Midpoint法','Heun法','RungeKutta法','精确解');
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式