24小时热门版块排行榜    

查看: 669  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 材料专业求调剂 +3 hanamiko 2026-03-18 3/150 2026-03-18 16:30 by 30660438
[考研] 266求调剂 +5 阳阳哇塞 2026-03-14 9/450 2026-03-18 15:05 by stone_128
[考研] 311求调剂 +6 26研0 2026-03-15 6/300 2026-03-18 14:43 by haxia
[考研] 302求调剂 +10 呼呼呼。。。。 2026-03-17 10/500 2026-03-18 12:45 by Linda Hu
[考研] 工科材料085601 279求调剂 +6 困于星晨 2026-03-17 6/300 2026-03-18 10:21 by kkcoco25
[考研] 0703化学336分求调剂 +6 zbzihdhd 2026-03-15 7/350 2026-03-18 09:53 by zhukairuo
[考研] 考研求调剂 +3 橘颂. 2026-03-17 4/200 2026-03-17 21:43 by 有只狸奴
[考研] 材料与化工求调剂 +6 为学666 2026-03-16 6/300 2026-03-17 20:15 by peike
[考研] 285化工学硕求调剂(081700) +9 柴郡猫_ 2026-03-12 9/450 2026-03-17 10:18 by Sammy2
[考研] 267一志愿南京工业大学0817化工求调剂 +6 SUICHILD 2026-03-12 6/300 2026-03-17 09:24 by 雾散后相遇lc
[考研] 304求调剂 +3 曼殊2266 2026-03-14 3/150 2026-03-16 16:39 by houyaoxu
[考研] 0703化学调剂,求各位老师收留 +8 秋有木北 2026-03-14 8/400 2026-03-16 15:21 by 哦哦123
[考研] 285求调剂 +6 ytter 2026-03-12 6/300 2026-03-16 15:05 by njzyff
[考研] 22408总分284求调剂 +3 InAspic 2026-03-13 3/150 2026-03-15 11:10 by zhq0425
[考研] 本科南京大学一志愿川大药学327 +3 麦田耕者 2026-03-14 3/150 2026-03-14 20:04 by 外星文明
[考研] 材料与化工 323 英一+数二+物化,一志愿:哈工大 本人本科双一流 +4 自由的_飞翔 2026-03-13 5/250 2026-03-14 19:39 by hmn_wj
[考研] 297一志愿上交085600求调剂 +5 指尖八千里 2026-03-14 5/250 2026-03-14 17:26 by a不易
[考研] 255求调剂 +3 李嘉慧, 2026-03-12 4/200 2026-03-14 16:58 by 有只狸奴
[考研] [0860]321分求调剂,ab区皆可 +4 宝贵热 2026-03-13 4/200 2026-03-13 22:01 by 星空星月
[考研] 工科278分求调剂 +5 周慢热啊 2026-03-12 7/350 2026-03-13 15:49 by JourneyLucky
信息提示
请填处理意见