24小时热门版块排行榜    

查看: 668  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 0817 化学工程 299分求调剂 有科研经历 有二区文章 +3 rare12345 2026-03-18 3/150 2026-03-18 11:58 by djl2006
[考研] 0703化学求调剂 总分331 +3 ZY-05 2026-03-13 3/150 2026-03-18 10:58 by macy2011
[考研] 工科材料085601 279求调剂 +6 困于星晨 2026-03-17 6/300 2026-03-18 10:21 by kkcoco25
[考博] 26博士申请 +3 1042136743 2026-03-17 3/150 2026-03-17 23:30 by 轻松不少随
[考研] 268求调剂 +7 好运连绵不绝 2026-03-12 8/400 2026-03-17 20:28 by xilongliang
[考研] 277调剂 +5 自由煎饼果子 2026-03-16 6/300 2026-03-17 19:26 by 李leezz
[考研] 341求调剂 +5 捣蛋猪猪 2026-03-11 7/350 2026-03-17 19:09 by 捣蛋猪猪
[考研] 268求调剂 +8 一定有学上- 2026-03-14 9/450 2026-03-17 17:47 by laoshidan
[考研] 332求调剂 +6 Zz版 2026-03-13 6/300 2026-03-17 17:03 by ruiyingmiao
[考研] 290求调剂 +3 p asserby. 2026-03-15 4/200 2026-03-17 16:35 by wangkm
[考研] 26考研求调剂 +6 丶宏Sir 2026-03-13 6/300 2026-03-17 16:13 by 醉在风里
[考研] 一志愿苏州大学材料工程(085601)专硕有科研经历三项国奖两个实用型专利一项省级立项 +6 大火山小火山 2026-03-16 8/400 2026-03-17 15:05 by 无懈可击111
[考研] 材料工程专硕274一志愿211求调剂 +6 薛云鹏 2026-03-15 6/300 2026-03-17 11:05 by 学员h26Tkc
[考研] 278求调剂 +3 Yy7400 2026-03-13 3/150 2026-03-17 08:24 by laoshidan
[考研] 304求调剂 +4 ahbd 2026-03-14 4/200 2026-03-16 16:48 by 我的船我的海
[考研] 255求调剂 +3 李嘉慧, 2026-03-12 4/200 2026-03-14 16:58 by 有只狸奴
[考研] 材料与化工求调剂一志愿 985 总分 295 +8 dream…… 2026-03-12 8/400 2026-03-13 22:17 by 星空星月
[考研] 材料301分求调剂 +5 Liyouyumairs 2026-03-12 5/250 2026-03-13 14:42 by JourneyLucky
[考研] 308求调剂 +3 是Lupa啊 2026-03-12 3/150 2026-03-13 14:30 by 求调剂zz
[考研] 321求调剂(食品/专硕) +3 xc321 2026-03-12 6/300 2026-03-13 08:45 by xc321
信息提示
请填处理意见