| 10 | 1/1 | 返回列表 |
| 查看: 1969 | 回復(fù): 9 | ||
津津愛睡覺金蟲 (小有名氣)
|
[求助]
Matlab小白,急需計(jì)算一個(gè)模型,求懂的大神看看怎么修改。萬(wàn)分感謝 已有2人參與
|
|
Matlab小白,急需計(jì)算一個(gè)模型,解微分方程組,求懂的大神看看怎么修改。萬(wàn)分感謝 function dy = funct(t,y) I = 50 % mA F = 96487 % C/mol c0 = 10 % mM Vol = 3.344 % ml Q = 6.5 % ml/min A = 33.75 % cm2 syms x eqn = 0.86*x+0.4*(x*exp(-asinh(theta/(-2*x)))+x*exp(asinh(theta/(-2*x))))==y(3) cma = double(solve(eqn,x)) cmion = (y(3)-0.86*cma)/0.4 phi_sp = asinh(-3/y(2)) phi_ele = asinh(-3/cma) phi_mem = (I*170)/(-1.12*F*(cma.*cosh(phi_ele)+y(2).*cosh(phi_sp))) J = -(1.12*1e-3/170)*(2*cma.*cosh(phi_ele)-2*y(2).*cosh(phi_sp))+3*phi_mem dy=zeros(3,1); dy(1) = (1e4*I/A)/(116*F) dy(2) = -J/(250e-6*0.5)+(c0-y(2))/(0.5*(Vol/Q)*60) dy(3) = J/(290*1e-6) end clear all; c0=10 tspan=[0 600] [t,y] = ode45(@funct,tspan,[0 c0 1.66*c0]) plot(t, y(:,2)) xlabel('t'),ylabel('c') 錯(cuò)誤使用 odearguments (line 92) FUNCT 返回的矢量的長(zhǎng)度為 2,但初始條件矢量的長(zhǎng)度為 3。FUNCT 返回的矢量和初始條件矢量的元素?cái)?shù)目必須相同。 出錯(cuò) ode45 (line 113) [neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ... |

鐵蟲 (小有名氣)

金蟲 (小有名氣)
|
function dydt = funct(t,x, y) I = 50; % mA F = 96487; % C/mol c0 = 10; % mM Vol = 3.344; % ml Q = 6.5; % ml/min A = 33.75; % cm2 y1=y(1); y2=y(2); y3=y(3); y3 = 0.86*x+0.4*(x*exp(-asinh(y1/(-2*x)))+x*exp(asinh(y1/(-2*x)))) phi_sp = asinh(-3/y2) phi_ele = asinh(-3/x) phi_mem=(I*170)/(-1.12*F*(x*cosh(phi_ele)+y2*cosh(phi_sp))) J =-(1.12*1e-3/170)*(2*x*cosh(phi_ele)-2*y2*cosh(phi_sp))+3*phi_mem dy1dt = (1e4*I/A)/(116*F) dy2dt = -J/(250e-6*0.5)+(c0-y2)/(0.5*(Vol/Q)*60) dy3dt = J/(290*1e-6) end clear all; I = 50; % mA F = 96487; % C/mol c0 = 10; % mM Vol = 3.344; % ml Q = 6.5; % ml/min A = 33.75; % cm2 tspan=[0 600] x0=c0 [t,x,y] = ode45(@funct,tspan, c0, [0 c0 1.66*c0]) plot(t, theta) xlabel('t'),ylabel('c') 出錯(cuò) ode45 (line 113) [neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ... 改了程序,現(xiàn)在錯(cuò)誤變成這樣。公式就是想解一個(gè)三個(gè)未知數(shù)的微分方程組,但是里面有未知數(shù) |

金蟲 (小有名氣)
|
function dydt = funct(t,x, y) I = 50; % mA F = 96487; % C/mol c0 = 10; % mM Vol = 3.344; % ml Q = 6.5; % ml/min A = 33.75; % cm2 y1=y(1); y2=y(2); y3=y(3); y3 = 0.86*x+0.4*(x*exp(-asinh(y1/(-2*x)))+x*exp(asinh(y1/(-2*x)))) phi_sp = asinh(-3/y2) phi_ele = asinh(-3/x) phi_mem=(I*170)/(-1.12*F*(x*cosh(phi_ele)+y2*cosh(phi_sp))) J =-(1.12*1e-3/170)*(2*x*cosh(phi_ele)-2*y2*cosh(phi_sp))+3*phi_mem dy1dt = (1e4*I/A)/(116*F) dy2dt = -J/(250e-6*0.5)+(c0-y2)/(0.5*(Vol/Q)*60) dy3dt = J/(290*1e-6) end clear all; I = 50; % mA F = 96487; % C/mol c0 = 10; % mM Vol = 3.344; % ml Q = 6.5; % ml/min A = 33.75; % cm2 tspan=[0 600] x0=c0 [t,x,y] = ode45(@funct,tspan, c0, [0 c0 1.66*c0]) plot(t, theta) xlabel('t'),ylabel('c') 出錯(cuò) ode45 (line 113) [neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ... 改了程序,現(xiàn)在錯(cuò)誤變成這樣。公式就是想解一個(gè)三個(gè)未知數(shù)的微分方程組,但是里面有未知數(shù) |

金蟲 (小有名氣)



鐵蟲 (小有名氣)

金蟲 (小有名氣)
|
dy(1)=a*y(1)+b*y(2); y(2)=c*y(1)+d*y(3); dy(3)=-e*y(2)*(y(3)-t)/y(1); function daedi a=-0.2; b=0.5; c=0.1; d=-1; e=0.3; y0=[0.8;0.5;0.1]; %初值,y0(2)=0.5是猜測(cè)值 options=optimset('display','off'); y0(2)=fsolve(@(y2)y2-(c*y0(1)+d*y0(3)),y0(2),options); %求出相容的初值y0(2) % 求解微分方程 [t,y]=ode45(@(t,y)myodefun(t,y,a,b,c,d,e),[0,20],y0); figure('numbertitle','off','name','DAE 求解示例 方法1.2') plot(t,y) legend('y1(t)','y2(t)','y3(t)') function dy=myodefun(t,y,a,b,c,d,e) dy=zeros(3,1); % dy(2)=0很重要,否則反求出y(2)后會(huì)被積分 % 先求解代數(shù)方程,順序很重要 cons=@(y2)y2-(c*y(1)+d*y(3)); % 隱式代數(shù)約束 options=optimset('display','off'); % 關(guān)閉提示 y(2)=fsolve(cons,y(2),options); %用上次的y(2)作為猜測(cè)值 dy(1)=a*y(1)+b*y(2); dy(3)=-e*y(2)*(y(3)-t)/y(1); 現(xiàn)在通過這個(gè)例子已經(jīng)可以運(yùn)行,想問您怎么繼續(xù)編寫這個(gè)例子中y(2)隨t的動(dòng)態(tài)變化呢 感謝感謝 |

金蟲 (小有名氣)
|
dy(1)=a*y(1)+b*y(2); y(2)=c*y(1)+d*y(3); dy(3)=-e*y(2)*(y(3)-t)/y(1); function daedi a=-0.2; b=0.5; c=0.1; d=-1; e=0.3; y0=[0.8;0.5;0.1]; %初值,y0(2)=0.5是猜測(cè)值 options=optimset('display','off'); y0(2)=fsolve(@(y2)y2-(c*y0(1)+d*y0(3)),y0(2),options); %求出相容的初值y0(2) % 求解微分方程 [t,y]=ode45(@(t,y)myodefun(t,y,a,b,c,d,e),[0,20],y0); figure('numbertitle','off','name','DAE 求解示例 方法1.2') plot(t,y) legend('y1(t)','y2(t)','y3(t)') function dy=myodefun(t,y,a,b,c,d,e) dy=zeros(3,1); % dy(2)=0很重要,否則反求出y(2)后會(huì)被積分 % 先求解代數(shù)方程,順序很重要 cons=@(y2)y2-(c*y(1)+d*y(3)); % 隱式代數(shù)約束 options=optimset('display','off'); % 關(guān)閉提示 y(2)=fsolve(cons,y(2),options); %用上次的y(2)作為猜測(cè)值 dy(1)=a*y(1)+b*y(2); dy(3)=-e*y(2)*(y(3)-t)/y(1); 現(xiàn)在通過這個(gè)例子已經(jīng)可以運(yùn)行,想問您怎么繼續(xù)編寫這個(gè)例子中y(2)隨t的動(dòng)態(tài)變化呢 感謝感謝 |

| 10 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 085600,一志愿鄭州大學(xué),280分求調(diào)劑 +5 | Wuqi725 2026-03-05 | 5/250 |
|
|---|---|---|---|---|
|
[考研] 新疆大學(xué)地質(zhì)與礦業(yè)工程學(xué)院招生 +3 | another12 2026-03-04 | 5/250 |
|
|
[考研] 一志愿蘇大材料工程專碩293求調(diào)劑 +3 | 鋼鐵大炮 2026-03-04 | 3/150 |
|
|
[考研] 289求調(diào)劑 +3 | 馳光絕景 2026-03-04 | 3/150 |
|
|
[考研] 考研282分求調(diào)劑,接受跨專業(yè) +4 | 劉淄博 2026-03-04 | 6/300 |
|
|
[考研] 一志愿清華深研院材料專碩294分,專業(yè)課111分,本科中南大學(xué)材料,有六級(jí),有工作經(jīng)驗(yàn) +3 | H14528 2026-03-04 | 3/150 |
|
|
[考研] 材料328求調(diào)劑 +10 | 一個(gè)蘿卜02 2026-03-03 | 10/500 |
|
|
[考研] 293求調(diào)劑 +3 | 是樂渝哇 2026-03-04 | 3/150 |
|
|
[考研] 環(huán)境調(diào)劑 +7 | 柒槿levana 2026-03-01 | 7/350 |
|
|
[考研] 325求調(diào)劑 +5 | 學(xué)家科 2026-03-04 | 5/250 |
|
|
[考研] 281求調(diào)劑 +3 | Y?l?h 2026-03-04 | 3/150 |
|
|
[考研]
|
旅行中的紫葡萄 2026-03-03 | 4/200 |
|
|
[考研] 0703化學(xué)306調(diào)劑 +4 | 26要上岸 2026-03-03 | 4/200 |
|
|
[考研] 一志愿中科大能動(dòng)297求調(diào)劑,本科川大 +3 | 邵11 2026-03-03 | 3/150 |
|
|
[考研]
|
glwshine 2026-03-02 | 5/250 |
|
|
[考研] 調(diào)劑 +5 | 13853210211 2026-03-02 | 7/350 |
|
|
[考研] 化工335求調(diào)劑 +5 | 摸摸貓貓頭 2026-03-02 | 5/250 |
|
|
[考研] 11408,學(xué)碩276求調(diào)劑 +3 | 崔wj 2026-03-02 | 5/250 |
|
|
[考研] 295求調(diào)劑。一志愿報(bào)考鄭州大學(xué)化學(xué)工藝學(xué)碩,總分295分 +8 | yl1 2026-03-02 | 9/450 |
|
|
[考研] 290求調(diào)劑 +9 | 材料專碩調(diào)劑; 2026-02-28 | 11/550 |
|