| 3 | 1/1 | 返回列表 |
| 查看: 1273 | 回復(fù): 2 | ||||
huawdong金蟲 (正式寫手)
|
[求助]
matlab用fsolve解三元非線性方程出現(xiàn)問題 已有1人參與
|
|
首先定義了三個(gè)syms 變量 syms pH; syms S_CO3H0; syms S_CaOH0; 通過一系列方程運(yùn)算 最后得到netcharge,netCa,netCO3 三個(gè)變量,而這三個(gè)變量 包含符號(hào)變量syms pH; syms S_CO3H0; syms S_CaOH0; 利用inline函數(shù) 把符號(hào)變量轉(zhuǎn)化成函數(shù) 如下: ionnumber=inline(netcharge)%將靜電荷的字符運(yùn)算轉(zhuǎn)化為函數(shù) ioncalcium=inline(netCa)%將固體表面表面凈鈣數(shù)的字符運(yùn)算轉(zhuǎn)化為函數(shù) ioncarbonate=inline(netCO3)%將固體表面表面凈碳酸根數(shù)的字符運(yùn)算轉(zhuǎn)化為函數(shù) 運(yùn)行顯示 Inline function: ionnumber(S_CO3H0,S_CaOH0,pH) = 2.*10.^(-212./25-log(10.^(-1033./100+log(10.^(-6328041889942893./562949953421312+pH))./log(10)+pH))./log(10))+10.^(-63./5+pH+log(10.^(-212./25-log(10.^(-1033./100+log(10.^(-6328041889942893./562949953421312+pH))./log(10)+pH))./log(10)))./log(10))+10.^(-16523792166633873./1407374883553280+pH+log(10.^(-212./25-log(10.^(-1033./100+log(10.^(-6328041889942893./562949953421312+pH))./log(10)+pH))./log(10)))./log(10))+10.^(-pH)-10.^(-6328041889942893./562949953421312+pH)-10.^(-14+pH)-2.*10.^(-1033./100+log(10.^(-6328041889942893./562949953421312+pH))./log(10)+pH)-7309029776373667./4611686018427387904.*S_CO3H0.*10.^(-212./25-log(10.^(-1033./100+log(10.^(-6328041889942893./562949953421312+pH))./log(10)+pH))./log(10))./(10.^(-pH))-3245861258160355./2048.*S_CaOH0.*10.^(-pH)+3715691980681023./295147905179352825856.*S_CO3H0./(10.^(-pH))+2096085705667255581572830407036923613418137./64903710731685345356631204115251200000000000000000.*S_CaOH0./(10.^(-pH)) Inline function: ioncalcium(S_CaOH0,pH) = 63904114710604247279./4611686018427387904.*S_CaOH0+3245861258160355./2048.*S_CaOH0.*10.^(-pH)+2096085705667255581572830407036923613418137./64903710731685345356631204115251200000000000000000.*S_CaOH0./(10.^(-pH))-4786177578236657./576460752303423488 Inline function: ioncarbonate(S_CO3H0,pH) = S_CO3H0+3715691980681023./295147905179352825856.*S_CO3H0./(10.^(-pH))+7309029776373667./4611686018427387904.*S_CO3H0.*10.^(-212./25-log(10.^(-1033./100+log(10.^(-6328041889942893./562949953421312+pH))./log(10)+pH))./log(10))./(10.^(-pH))-4786177578236657./576460752303423488 用fsolve 解上面那三個(gè)方程等于0的解 如下 fsolve('ionnumber,ioncalcium,ioncarbonate',[8.3,0.002,0.002]) 運(yùn)行結(jié)果: ??? Error using ==> fsolve FSOLVE only accepts inputs of data type double. Error in ==> carbonate at 48 fsolve('ionnumber','ioncalcium','ioncarbonate',[8.3,0.002,0.002]) 求高手解答 |

主管區(qū)長(zhǎng) (職業(yè)作家)
![]() |
專家經(jīng)驗(yàn): +1059 |
|
以下代碼完整復(fù)制進(jìn)一個(gè)m文件,運(yùn)行即可: 計(jì)算結(jié)果: x = 7.523258389170919 0.000000174719325 0.000082481725874 三個(gè)方程的殘差fval = 1.0e-015 * 0.116631222290336 0.001734723475977 -0.180411241501588 |

主管區(qū)長(zhǎng) (職業(yè)作家)
![]() |
專家經(jīng)驗(yàn): +1059 |

| 3 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|