24小时热门版块排行榜    

查看: 2939  |  回复: 2

unicorn111

铜虫 (初入文坛)

[求助] 求助一个matlab程序的问题 已有1人参与

m文件如下
function R = R4(f,g,m,n,a,b,xa,ya,ua,va,N)
f=@(u)(u);
g=@(v)(v);
m=@(x,y,u)(5.487*(10^20)*(16*x*y/pi+(1-4*y)*(1/pi+log(4*x)))*x/(sqrt(x*x+y*y)-3468*u));
n=@(x,y,v)(5.487*(10^20)*(16*x*y/pi+(1-4*y)*(1/pi+log(4*x)))*y/(sqrt(x*x+y*y)-3468*(v-1)));
h=(b-a)/N;
T=zeros(1,N+1);
X=zeros(1,N+1);
Y=zeros(1,N+1);
U=zeros(1,N+1);
V=zeros(1,N+1);
for n=1:N
    K1=feval(f,U(n));
    K2=feval(f,U(n)+h/2*K1);
    K3=feval(f,U(n)+h/2*K2);
    K4=feval(f,U(n)+h*K3);
    X(n+1)=X(n)+h*(K1+2*K2+2*K3+K4)/6;
    L1=feval(g,V(n));
    L2=feval(g,V(n)+h/2*L1);
    L3=feval(g,V(n)+h/2*L2);
    L4=feval(g,V(n)+h*L3);
    Y(n+1)=Y(n)+h*(L1+2*L2+2*L3+L4)/6;
    M1=feval(m,X(n),Y(n),U(n));
    N1=feval(n,X(n),Y(n),V(n));
    M2=feval(m,X(n)+h/2*K1,Y(n)+h/2*L1,U(n)+h/2*M1);
    N2=feval(n,X(n)+h/2*K1,Y(n)+h/2*L1,V(n)+h/2*N1);
    M3=feval(m,X(n)+h/2*K2,Y(n)+h/2*L2,U(n)+h/2*M2);
    N3=feval(n,X(n)+h/2*K2,Y(n)+h/2*L2,V(n)+h/2*N2);
    M4=feval(m,X(n)+h*K3,Y(n)+h*L3,U(n)+h*M3);
    N4=feval(n,X(n)+h*k3,Y(n)+h*L3,V(n)+h*N3);
    U(n+1)=U(n)+h*(M1+2*M2+2*M3+M4);
    V(n+1)=V(n)+h*(N1+2*N2+2*N3+N4);
    R=[X' Y' U' V'];
   

end




然后命令行输入
R4('f','g','m','n',0,250,0,0,0,1,250)后出错

错误使用 feval
参数必须包含字符矢量或函数句柄。

出错 R4 (line 24)
    N1=feval(n,X(n),Y(n),V(n));
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

unicorn111

铜虫 (初入文坛)

求问怎么改
2楼2017-05-08 12:21:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1314168apple

金虫 (知名作家)

【答案】应助回帖

感谢参与,应助指数 +1
很多错误,
1、函数如何定义都不知道。f、g、m、n属于函数,不能够在输入处。
2、定义n为函数,在循环的地方再次使用n使之变为数值。
3、xa,ya,ua,va不知道用在那里?
4、大小写不注意 K3、k3。
5、T也不知所谓。
6、f、g的函数也多此一举(我这里不修改了)。

X(1)、Y(1)、U(1)、V(1)的值的为零,这不符合。
看你的命令好像是希望计算微分方程,用的是4-5阶Runge-Kutta 。其实可以用自带命令ode45.
function R = R4(a,b,N)
f=@(u)(u);
g=@(v)(v);
m=@(x,y,u)(5.487*(10^20)*(16*x*y/pi+(1-4*y)*(1/pi+log(4*x)))*x/(sqrt(x*x+y*y)-3468*u));
k=@(x,y,v)(5.487*(10^20)*(16*x*y/pi+(1-4*y)*(1/pi+log(4*x)))*y/(sqrt(x*x+y*y)-3468*(v-1)));
h=(b-a)/N;
T=zeros(1,N+1);
X=zeros(1,N+1);
Y=zeros(1,N+1);
U=zeros(1,N+1);
V=zeros(1,N+1);
for n=1:N
    K1=feval(f,U(n));
    K2=feval(f,U(n)+h/2*K1);
    K3=feval(f,U(n)+h/2*K2);
    K4=feval(f,U(n)+h*K3);
    X(n+1)=X(n)+h*(K1+2*K2+2*K3+K4)/6;
    L1=feval(g,V(n));
    L2=feval(g,V(n)+h/2*L1);
    L3=feval(g,V(n)+h/2*L2);
    L4=feval(g,V(n)+h*L3);
    Y(n+1)=Y(n)+h*(L1+2*L2+2*L3+L4)/6;
    M1=feval(m,X(n),Y(n),U(n));
    N1=feval(k,X(n),Y(n),V(n));
    M2=feval(m,X(n)+h/2*K1,Y(n)+h/2*L1,U(n)+h/2*M1);
    N2=feval(k,X(n)+h/2*K1,Y(n)+h/2*L1,V(n)+h/2*N1);
    M3=feval(m,X(n)+h/2*K2,Y(n)+h/2*L2,U(n)+h/2*M2);
    N3=feval(k,X(n)+h/2*K2,Y(n)+h/2*L2,V(n)+h/2*N2);
    M4=feval(m,X(n)+h*K3,Y(n)+h*L3,U(n)+h*M3);
    N4=feval(k,X(n)+h*K3,Y(n)+h*L3,V(n)+h*N3);
    U(n+1)=U(n)+h*(M1+2*M2+2*M3+M4);
    V(n+1)=V(n)+h*(N1+2*N2+2*N3+N4);
end
R=[X' Y' U' V'];


R4(0,250,250)

ans =

     0     0     0     0
     0     0   NaN   NaN
   NaN   NaN   NaN   NaN
   NaN   NaN   NaN   NaN
。。。。。。。。。。。。。
为了最终理解你所不理解的,你必须经历一条愚昧无知的道路。为了占有你从未占有的东西,你必须经历被剥夺的道路。为了达到你现在所不在的名位,你必须经历那...
3楼2017-05-11 09:13:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 unicorn111 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 286分人工智能专业请求调剂愿意跨考! +3 lemonzzn 2026-03-17 3/150 2026-03-19 23:58 by 23Postgrad
[考研] 329求调剂 +5 想上学吖吖 2026-03-19 5/250 2026-03-19 23:56 by 23Postgrad
[考研] 0817 化学工程 299分求调剂 有科研经历 有二区文章 +18 rare12345 2026-03-18 18/900 2026-03-19 22:36 by 学员8dgXkO
[考博] 东华理工大学化材专业26届硕士博士申请 +8 zlingli 2026-03-13 8/400 2026-03-19 16:32 by 轻松不少随
[考研] 271材料工程求调剂 +6 .6lL 2026-03-18 6/300 2026-03-19 15:41 by haoshis
[考研] 材料与化工求调剂 +7 为学666 2026-03-16 7/350 2026-03-19 14:48 by 尽舜尧1
[考研] 281求调剂(0805) +9 烟汐忆海 2026-03-16 19/950 2026-03-19 11:42 by laoshidan
[考研] 312求调剂 +8 陌宸希 2026-03-16 9/450 2026-03-18 12:39 by Linda Hu
[考研] 0703化学求调剂 总分331 +3 ZY-05 2026-03-13 3/150 2026-03-18 10:58 by macy2011
[考研] 268求调剂 +6 简单点0 2026-03-17 6/300 2026-03-18 09:04 by 无际的草原
[考研] 277调剂 +5 自由煎饼果子 2026-03-16 6/300 2026-03-17 19:26 by 李leezz
[考研] 考研化学学硕调剂,一志愿985 +4 张vvvv 2026-03-15 6/300 2026-03-17 17:15 by ruiyingmiao
[考研] 085601求调剂 +4 Du.11 2026-03-16 4/200 2026-03-17 17:08 by ruiyingmiao
[考研] 290求调剂 +3 p asserby. 2026-03-15 4/200 2026-03-17 16:35 by wangkm
[考研] 东南大学364求调剂 +5 JasonYuiui 2026-03-15 5/250 2026-03-16 21:28 by 木瓜膏
[考研] 070300化学学硕求调剂 +6 太想进步了0608 2026-03-16 6/300 2026-03-16 16:13 by kykm678
[考研] 材料与化工 323 英一+数二+物化,一志愿:哈工大 本人本科双一流 +4 自由的_飞翔 2026-03-13 5/250 2026-03-14 19:39 by hmn_wj
[考研] 266求调剂 +4 学员97LZgn 2026-03-13 4/200 2026-03-14 08:37 by zhukairuo
[考研] 304求调剂 +7 7712b 2026-03-13 7/350 2026-03-13 21:42 by peike
[考研] 311求调剂 +3 冬十三 2026-03-13 3/150 2026-03-13 20:41 by JourneyLucky
信息提示
请填处理意见