| 5 | 1/1 | 返回列表 |
| 查看: 1039 | 回復(fù): 5 | ||||
| 當(dāng)前只顯示滿足指定條件的回帖,點擊這里查看本話題的所有回帖 | ||||
[求助]
matlab出錯 求助高手解答
|
||||
|
function fun=weifen11 global r x ; A ,B, C ,D, F (r) ,G(r) ,H(r) 賦值 x=zeros(2,1); x0=[1 100]; tspan=[0 1]; fun=@(t,x)[I*(x(2)+M)*jifen1-J*x(2)*jifen2-0.1*x(2) -K*x(1)*jifen3-0.01*x(1)]; function a=jifen1 a=Roberg(f1,0,1.25*10^-6) function y1= f1 y1=F.*2.*pi.*r.*A.*(D.*H.*x(1,1)+C.*G.*x(2,1))/(1+C.*G.*x(2,1)+B.*F.*x(2,1)+D.*H.*x(1,1)); %n2 end end function b=jifen2 b=Roberg(f2,0,1.25*10^-6) function y2=f2 y2=G.*2.*pi.*r.*A.*(1+B.*F.*x(2))/(1+C.*G.*x(2)+B.*F.*x(2)+D.*H.*x(1)); end end function c=jifen3 c=Roberg(f3,0,1.25*10^-6) function y3=f3 y3=H*2*pi.*r.*A.*(1+B.*F.*x(2))/(1+C.*G.*x(2)+B.*F.*x(2)+D.*H.*x(1)); %n1 end end options=odeset('reltol',1e-6,'abstol',1e-8); [t,x]=ode45(fun,tspan,x0,options); plot(t,x) end 運行出錯: ??? Subscripted assignment dimension mismatch. Error in ==> Roberg at 12 T(1,1)=(h/2)*(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b)); Error in ==> weifen11>jifen1 at 22 a=Roberg(f1,0,1.25*10^-6) Error in ==> weifen11>@(t,x)[I*(x(2)+M)*jifen1-J*x(2)*jifen2-0.1*x(2);-K*x(1)*jifen3-0.01*x(1)] at 18 fun=@(t,x)[I*(x(2)+M)*jifen1-J*x(2)*jifen2-0.1*x(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 ==> weifen11 at 40 [t,x]=ode45(fun,tspan,x0,options); |
|
謝謝你~~上個問題解決了。我又重新調(diào)試了一下 如下: function fun=weifen11 global r x ; A B C D F(r) G(r) H(r) 賦值 fun=@(t,x)[-K.*x(1).*jifen3-0.01.*x(1) I.*(x(2)+M).*jifen1-J.*x(2).*jifen2-0.1.*x(2)]; function a=jifen1 a=Roberg(f1,0,1.25*10^-6) function y1= f1 y1=F.*2.*pi.*r.*A.*(D.*H.*x(1)+C.*G.*x(2))./(1+C.*G.*x(2)+B.*F.*x(2)+D.*H.*x(1)); %isen2 end end function b=jifen2 b=Roberg(f2,0,1.25*10^-6) function y2=f2 y2=G.*2.*pi.*r.*A.*(1+B.*F.*x(2))./(1+C.*G.*x(2)+B.*F.*x(2)+D.*H.*x(1)); %isan1 end end function c=jifen3 c=Roberg(f3,0,1.25*10^-6) function y3=f3 y3=H.*2.*pi.*r.*A.*(1+B.*F.*x(2))./(1+C.*G.*x(2)+B.*F.*x(2)+D.*H.*x(1)); %ipn1 end end x0=[10 10]; tspan=[0 1]; options=odeset('reltol',1e-6,'abstol',1e-8); [t,x]=ode45(weifen11,tspan,x0,options) plot(t,x) end 運行出錯 ??? Maximum recursion limit of 500 reached. Use set(0,'RecursionLimit',N) to change the limit. Be aware that exceeding your available stack space can crash MATLAB and/or your computer. Error in ==> besschk at 50 end 我實在弄不懂了,謝謝幫忙啊~~ |
新蟲
![]() |
專家經(jīng)驗: +4 |

無蟲
![]() |
專家經(jīng)驗: +4 |
|
你的程序一定使用了遞歸調(diào)用,MATLAB限制了遞歸調(diào)用的次數(shù),默認(rèn)是500次 所謂遞歸就是自己調(diào)用自己,因為這樣比較占用資源,MATLAB為了防止死循環(huán),所以限制了遞歸次數(shù) 你可以使用 set(0,'RecursionLimit',1000)將遞歸次數(shù)修改為1000次 我覺得你的函數(shù)修改下比較好 function fun=weifen11(t,x) global r x ; A B C D F(r) G(r) H(r) 賦值 a=Roberg(f1,0,1.25*10^-6) b=Roberg(f2,0,1.25*10^-6) c=Roberg(f3,0,1.25*10^-6) fun=[-K.*x(1).*c-0.01.*x(1) I.*(x(2)+M).*a-J.*x(2).*b-0.1.*x(2)]; function y1= f1(x) y1=F.*2.*pi.*r.*A.*(D.*H.*x(1)+C.*G.*x(2))./(1+C.*G.*x(2)+B.*F.*x(2)+D.*H.*x(1)); %isen2 function y2=f2(x) y2=G.*2.*pi.*r.*A.*(1+B.*F.*x(2))./(1+C.*G.*x(2)+B.*F.*x(2)+D.*H.*x(1)); %isan1 function y3=f3(x) y3=H.*2.*pi.*r.*A.*(1+B.*F.*x(2))./(1+C.*G.*x(2)+B.*F.*x(2)+D.*H.*x(1)); %ipn1 |

| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 考研調(diào)劑 +11 | Amber00 2026-03-31 | 11/550 |
|
|---|---|---|---|---|
|
[考研] 275求調(diào)劑 +7 | waltzh 2026-04-01 | 7/350 |
|
|
[考研] 材料0856 英一數(shù)二 323 求調(diào)劑 +8 | 袁sy 2026-04-01 | 8/400 |
|
|
[考研] 求0861交通運輸專碩or材料專碩調(diào)劑 +4 | 勒布朗@ 2026-03-31 | 4/200 |
|
|
[考研] 0805求調(diào)劑 +6 | 是水分 2026-03-31 | 6/300 |
|
|
[考研] 一志愿中國科學(xué)院大學(xué)265求調(diào)劑 +7 | 恬淡ye 2026-03-31 | 8/400 |
|
|
[考研] 土木304求調(diào)劑 +5 | 頂級擦擦 2026-03-31 | 5/250 |
|
|
[考研] 一志愿南師大0703化學(xué) 275求調(diào)劑 +5 | Ripcord上岸 2026-03-27 | 5/250 |
|
|
[考研] 生醫(yī)工0831調(diào)劑求推薦 +4 | 小熊睿睿_s 2026-03-27 | 6/300 |
|
|
[考研] 材料專碩調(diào)劑 +13 | 椰椰。 2026-03-29 | 13/650 |
|
|
[考研] 289求調(diào)劑 +3 | Acesczlo 2026-03-29 | 4/200 |
|
|
[考研] 334求調(diào)劑 +7 | Trying] 2026-03-31 | 7/350 |
|
|
[考研] 274求調(diào)劑 +6 | xiao愛同學(xué) 2026-03-30 | 6/300 |
|
|
[考研] 本科211總分289,08工學(xué)真心求調(diào)劑 +3 | utopiaE 2026-03-30 | 3/150 |
|
|
[考研] 328求調(diào)劑 +8 | 嗯滴的基本都 2026-03-27 | 8/400 |
|
|
[考研] 一志愿華理,數(shù)一英一285求A區(qū)調(diào)劑 +8 | AZMK 2026-03-25 | 12/600 |
|
|
[考研] 壓國家一區(qū)線,求導(dǎo)師收留,有恩必謝! +7 | 迷人的哈哈 2026-03-28 | 7/350 |
|
|
[考研] 復(fù)試調(diào)劑 +3 | raojunqi0129 2026-03-28 | 3/150 |
|
|
[考研] 材料與化工(0856)304求B區(qū)調(diào)劑 +8 | 邱gl 2026-03-27 | 8/400 |
|
|
[考研] 中國科學(xué)院深圳先進技術(shù)研究院-光纖傳感課題組招生-中國科學(xué)院大學(xué)、深圳理工大學(xué)聯(lián)培 +5 | YangTyu1 2026-03-26 | 5/250 |
|