24小时热门版块排行榜    

查看: 837  |  回复: 4

小鱼118

银虫 (小有名气)

[求助] MATLAB程序调整

function gaosi()
    i=1;
    for N=1:0.1:6
        [T,Y]=ode45(@last00,[0.001,1000],[0.0000001,0.0001])
        JI(i)=max(Y(:,1))
        JIm(i)=max(Y(:,2));
        NN(i)=N;
        i=i+1;
    end
plot(NN,JI)
xlabel('N');
ylabel('Φ_{int}');
hold on;
end
function dy=last00(t,y)
dy=zeros(2,1);
dy(1)=dy(2);
dy(2)=y(2)*(1/60)*(1+4*(exp(-y(1)*0.05^(1/2))+exp(-y(1)*0.15^(1/2))+exp(-y(1)*0.25^(1/2))+...
    exp(-y(1)*0.35^(1/2))+exp(-y(1)*0.45^(1/2))+exp(-y(1)*0.55^(1/2))+exp(-y(1)*0.65^(1/2))+...
    exp(-y(1)*0.75^(1/2))+exp(-y(1)*0.85^(1/2))+exp(-y(1)*0.95^(1/2)))+2*(exp(-y(1)*0.1^(1/2))+...
    exp(-y(1)*0.2^(1/2))+exp(-y(1)*0.3^(1/2))+exp(-y(1)*0.4^(1/2))+exp(-y(1)*0.5^(1/2))+...
    exp(-y(1)*0.6^(1/2))+exp(-y(1)*0.7^(1/2))+exp(-y(1)*0.8^(1/2))+exp(-y(1)*0.9^(1/2)))+exp(-y(1)))-...
0.807*log(1/(N*N))/(0.7846+log(1/(N*N)))*y(2)*(1-(1-exp(2.6*y(1)))/(2.6*y(1)))-0.4117*0.1238/(0.7846+log(1/(N*N)))*y(2)-0.5891*0.1238/(0.7846+log(1/(N*N)))*y(2)*((1-exp(-30*y(1)))/(30*y(1)))-...
(1-0.1238/(0.7846+log(1/(N*N))))*y(2)-5.8e-16/(8*0.15)*7.444e15*0.1238/(0.7846+log(1/(N*N)))*30*y(2)*y(2)
end

运行结果为
??? Undefined function or variable 'N'.

Error in ==> gaosi>last00 at 18
dy(2)=y(2)*(1/60)*(1+4*(exp(-y(1)*0.05^(1/2))+exp(-y(1)*0.15^(1/2))+exp(-y(1)*0.25^(1/2))+...

Error in ==> funfun\private\odearguments at 110
f0 = feval(ode,t0,y0,args{:});   % ODE15I sets args{1} to yp0.

Error in ==> ode45 at 173
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...

Error in ==> gaosi at 4
        [T,Y]=ode45(@last00,[0.001,1000],[0.0000001,0.0001])

求高手指点
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

好好爱自己
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

luomia

木虫 (著名写手)

【答案】应助回帖


感谢参与,应助指数 +1
dbb627: 金币+1, 欢迎交流 2012-11-12 08:56:50
你的函数表达式dy=last00(t,y)里面需要把参数加进去,dy=last00(t,y,N),然后在ode45(@last00,[0.001,1000],[0.0000001,0.0001])
里面把参数值传递给表达式,这个你可以看看ODE45的help文件。现在的这个函数没法传递函数的参数到ode45.
一次次萍水相逢
2楼2012-11-10 09:12:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小鱼118

银虫 (小有名气)

引用回帖:
2楼: Originally posted by luomia at 2012-11-10 09:12:24
你的函数表达式dy=last00(t,y)里面需要把参数加进去,dy=last00(t,y,N),然后在ode45(@last00,,)
里面把参数值传递给表达式,这个你可以看看ODE45的help文件。现在的这个函数没法传递函数的参数到ode45....

麻烦把改好的程序发一下可以吗?我帮同学求助的,他不懂“然后在ode45(@last00,[0.001,1000],[0.0000001,0.0001])
里面把参数值传递给表达式”的意思
好好爱自己
3楼2012-11-10 09:28:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

luomia

木虫 (著名写手)

★ ★
dbb627: 金币+2, 谢谢应助! 2012-11-12 08:57:05
引用回帖:
3楼: Originally posted by 小鱼118 at 2012-11-10 09:28:57
麻烦把改好的程序发一下可以吗?我帮同学求助的,他不懂“然后在ode45(@last00,,)
里面把参数值传递给表达式”的意思...

ode45(@last00,[0.001,1000],[0.0000001,0.0001])
里面的函数体是@last00,这个函数带有参数,可以看一下ode45关于带参数函数的使用方法
ode45(@last00,[0.001,1000],[0.0000001,0.0001],N)
N就是对应的参数
一次次萍水相逢
4楼2012-11-10 10:56:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

luomia

木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★
小鱼118: 金币+5, ★★★★★最佳答案, 非常感谢,我同学成功了! 2012-11-10 13:56:25
dbb627: 金币+1, 感谢应助 2012-11-12 08:57:21
引用回帖:
4楼: Originally posted by luomia at 2012-11-10 10:56:31
ode45(@last00,,)
里面的函数体是@last00,这个函数带有参数,可以看一下ode45关于带参数函数的使用方法
ode45(@last00,,,N)
N就是对应的参数...

程序如下,,[0.001,1000],[0.0000001,0.0001]这两个参数可能不是很合理,可以自己调整一下。
function gaosi()
    NN=1:0.1:6;
    JI=zeros(size(NN));
    JIm=zeros(size(NN));

    for i=1:length(NN)
        N=NN(i);
        [T,Y]=ode45(@last00,[0.01,100],[0.001,0.01],[],N);
        JI(i)=max(Y(:,1));
        JIm(i)=max(Y(:,2));
        
    end
plot(NN,JI)
xlabel('NN');
ylabel('Φ_{int}');
hold on;

function dy=last00(t,y,N)

dy=[y(2);y(2)*(1/60)*(1+4*(exp(-y(1)*0.05^(1/2))+exp(-y(1)*0.15^(1/2))+exp(-y(1)*0.25^(1/2))+...
    exp(-y(1)*0.35^(1/2))+exp(-y(1)*0.45^(1/2))+exp(-y(1)*0.55^(1/2))+exp(-y(1)*0.65^(1/2))+...
    exp(-y(1)*0.75^(1/2))+exp(-y(1)*0.85^(1/2))+exp(-y(1)*0.95^(1/2)))+2*(exp(-y(1)*0.1^(1/2))+...
    exp(-y(1)*0.2^(1/2))+exp(-y(1)*0.3^(1/2))+exp(-y(1)*0.4^(1/2))+exp(-y(1)*0.5^(1/2))+...
    exp(-y(1)*0.6^(1/2))+exp(-y(1)*0.7^(1/2))+exp(-y(1)*0.8^(1/2))+exp(-y(1)*0.9^(1/2)))+exp(-y(1)))-...
0.807*log(1/(N*N))/(0.7846+log(1/(N*N)))*y(2)*(1-(1-exp(2.6*y(1)))/(2.6*y(1)))-0.4117*0.1238/(0.7846+log(1/(N*N)))*y(2)-0.5891*0.1238/(0.7846+log(1/(N*N)))*y(2)*((1-exp(-30*y(1)))/(30*y(1)))-...
(1-0.1238/(0.7846+log(1/(N*N))))*y(2)-5.8e-16/(8*0.15)*7.444e15*0.1238/(0.7846+log(1/(N*N)))*30*y(2)*y(2)];
end

end
一次次萍水相逢
5楼2012-11-10 12:41:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 小鱼118 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 XLGfUIdOmEAO 2026-08-27 3/150 2026-08-28 00:49 by 3RAFyYXYSwGS
[基金申请] 哪位高人中了,把查询到的截图贴出来让我看看,让我长长见识 +5 yuleib84 2026-08-26 6/300 2026-08-28 00:02 by yudaoqian88
[基金申请] 申请删除本帖 +6 lyz123lyz 2026-08-27 7/350 2026-08-27 17:31 by 宁静致远sy
[基金申请] 看板上这么多中的,有点像50人群里49个人都是骗子的那种感觉…… +5 a089 2026-08-26 6/300 2026-08-27 14:05 by jonewore
[文学芳草园] 梦想 +3 myrtle 2026-08-26 3/150 2026-08-27 10:01 by angelyueyi
[基金申请] 为什么 国际(地区)合作与交流项目 没有放榜? 10+3 majunge000 2026-08-26 11/550 2026-08-27 08:42 by 北京莱茵编辑
[教师之家] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 LIbGuocjEEYw 2026-08-26 4/200 2026-08-27 04:33 by Ie9AyIAvGbvs
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 LIbGuocjEEYw 2026-08-26 4/200 2026-08-27 02:01 by Ie9AyIAvGbvs
[基金申请] 我不理解! +15 Edward_pc 2026-08-26 23/1150 2026-08-26 20:34 by zzuzxg
[基金申请] 怎么查啊 +5 huang1991js 2026-08-26 5/250 2026-08-26 16:09 by Equinoxhua
[基金申请] 范进中举一文的中心思想 +9 炎黄贵胄 2026-08-22 10/500 2026-08-26 15:40 by semaglutide
[基金申请] 能否退出参与的面上项目解除限项 +23 koalala 2026-08-24 26/1300 2026-08-26 14:29 by 宝贝虫子
[基金申请] 出来了 +9 trojank 2026-08-26 9/450 2026-08-26 14:25 by 宝贝虫子
[基金申请] 国合里面能看到了 +7 一怀馨秋 2026-08-26 7/350 2026-08-26 11:23 by zhaosm1982
[基金申请] 项目信息和经费信息在系统里都可以看到了 +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
[基金申请] 国合现在查不到了吗? +10 chengyan1220 2026-08-24 20/1000 2026-08-26 08:57 by peasantsprig
[基金申请] 在坚冰还盖着北海的时候,我看到了怒放的梅花。 (金币+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
[基金申请] 明天应该可查了!? +6 chengyan1220 2026-08-23 6/300 2026-08-25 19:45 by zfd97
[基金申请] 建议基金发布提前给出明确的时间点 +13 kulium 2026-08-21 16/800 2026-08-24 16:27 by superceng
[教师之家] 跳槽后在研项目怎么办? +5 简单化xn 2026-08-22 10/500 2026-08-23 12:38 by 简单化xn
信息提示
请填处理意见