1樓:匿名使用者
1、matlab的符號運算是藉助於其它符號運算核心完成的,2008a之前是用maple,2008b之後用mupad,不同版本對符號運算的具體支援可能存在差別,例如,你說的第一個問題,我在6.5和2007b、2013a等幾種版本下測試,用這兩種寫法都可以得到相同的結果:
[x y]=solve(eq1,eq2,x,y)
[x y]=solve(eq1,eq2)
所以,談到符號運算的問題時,最好說明自己使用的版本,以便有針對性地解決。
至於說兩種寫法的區別,前面一種指定把哪個變數作為未知數,後一種寫法由符號運算核心自動確定,對於x、y、a、b這樣的四個變數而言,兩種寫法沒有區別。
2、subs和eval這兩個函式的最主要區別是,subs適用於結果中仍然存在符號量的情況,得到的結果一般是解析表示式,而eval則適用於結果是具體的數值的情況,不能再含有未知量。
就實際測試的結果看,幾種版本用eval都可以得到相同的結果,但用subs的情況則有差別:6.5和2007b會導致出錯,而2013a不報錯,但得到的結果中仍然有a(1)等符號。
這一點也許正意味著,matlab可能真的將a(1)這樣的元素當成了一個新變數的名字。
3、其實用符號運算解方程,比較合理的做法是先定義符號變數,然後用符號變數(而不是用字串)寫方程:
a=[2 1]; b=[1 1];
syms x y;
eq1=a(1)*x+a(2)*y-4;
eq2=b(1)*x+b(2)*y-3;
[x, y]=solve(eq1,eq2,x,y)
這段**在各種版本下都能正確執行,而且得到的結果無論用subs(x)、double(x)還是eval(x)都可以轉換為數值。
2樓:數碼答疑
符號解方程,直接寫方程式
3樓:匿名使用者
直接查幫助文件,很詳細的
求解matlab符號運算的問題
4樓:匿名使用者
這是因為在數值計算中,1e-10已經小於matlab在最小數了,所以直接被認為是0
在符號運算時,並不進行數值運算,所以結果是1
這說明了matlab中數值計算的誤差傳遞問題。學過數值計算的就會明白的
matlab符號運算化簡問題
5樓:我行我素
你再仔細算一下,這兩個式子應該不相等,只要包含sqrt(...)就有可能出現兩個根,被開方數不相等就出現結果不同
6樓:匿名使用者
為什麼不直接試試 r-s 呢 不知道你要簡化幹嘛 就是要簡化
也要看看幫助呀
matlab符號賦值運算問題
7樓:匿名使用者
可以使用subs來賦值,比如:>> syms x>> f = x^2 + x
f =x^2 + x
>> subs(f, x, 2)ans = 6>>
MATLAB符號運算中先指數運算再自然對數運算不能化簡(即log exp x 不能化簡)
兔子和小強 因為log exp x 不一定等於x。比如x 2 pi 1i 1i是虛數 那麼 log exp x log 1 0看下他人在matlab answers上的回答 matlab中語句f x,y exp x.2 3 sin x.2 2 y 中 x,y 是什麼意思? 59分粑粑 matlab中...
matlab簡單問題關於,matlab簡單問題 關於fzero
醉蝶翩翩 我也很好奇 就試了一下 fzero x x 2 1,0.05 時,ans 1,fzero是一個數值搜尋過程,依賴於函式特性,值的指定,以及matlab所能識別的最小步長。如果想計算更準確,可以用符號函式求解0點。符號函式不用關心具體的函式值,完全當做符號處理,所以,不存在上述不穩定因素。 ...
matlab的符號解是什麼,matlab的符號解是什麼
符號解即對有符號的代數式子,用符號進行推導,得出的結果中含有代數符號,比如 求解方程 a x 2 b x c 0 solve a x 2 b x c ans 1 2 a b b 2 4 a c 1 2 1 2 a b b 2 4 a c 1 2 是符號,你應該把符號轉換為變數處理。 x的多項式,那麼...