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定義函式的問題,關於MATLAB定義函式的問題
你把上面式子存到m file裡,不過a 這一行最後的分號應該是英文字元下的,執行就可以得到結果了 請輸入狀態矩陣a 12 0 1 請輸入狀態矩陣b 1 3 請輸入狀態矩陣c 1 0 請輸入狀態矩陣d 0 a x1x2x11 2x201 b u1x11x2 3c x1 x2y110 d u1y1 0c...
關於MATLAB的問題 N size(ra N 1這裡的N(1)是啥意思啊
n size r size bai函式返回值是du一個矩陣或者向量的zhi 維度向量,比如對於一dao個2行3列的矩回陣r,n 2,3 a n 1 對於一個向答量這個語句表示把其第一個元素賦給a。比如n 2,3 則a 2。matlab中的n size x,2 是什麼意思 就是構造一個新的矩陣x,它的...
c語言運算子號的意義,c語言運算子號的意義
1級 左結合 圓括號 下標運算子 指向結構體成員運算子 結構體成員運算子。2級 右結合 邏輯非運算子 按位取反運算子 字首增量運算子 字首減量運算子 正號運算子 負號運算子 型別 型別轉換運算子 指標運算子 地址運算子 sizeof長度運算子。3級 左結合 乘法運算子 除法運算子 取餘運算子。4級 ...