1樓:一路上的風景線
程式修改如下:
clear all;
clc;
syms x y;
h=[(1+x)*(1+y)/4;(1-x)*(1+y)/4;(1-x)*(1-y)/4;(1+x)*(1-y)/4];
for i=1:4
for j=1:4
f(i)=diff(h(i,1),x);
f2(i)=diff(h(i,1),y);
f(j)=diff(h(j,1),x);
f2(j)=diff(h(j,1),y);
f(i,j)=f(i)*f(j)+f2(i)*f2(j);
s(i,j)=int(int(f(i,j),x,-1,1),y,-1,1);
d1(1,i)=int(int(f(i),y,-1,1),x,-1,1)/4;
d2(1,i)=int(int(f2(i),y,-1,1),x,-1,1)/4;
endend
g1=4*d1'*d1
g2=4*d2'*d2
1)g1是乙個4維列向量與乙個4維行向量的乘積,得乙個4階矩陣。g1輸出正是乙個矩陣,若想把此矩陣放在word中,不妨用查詢替換去逗號就可以了!
2)因為g1與g2執行時跟迴圈變數i,j無關,調整在迴圈外面,可行性更高!
2樓:
format rat
eval(g1)
大家好matlab中符號運算和數值運算的區別是什麼
3樓:shine戚七七
兩者的根本區別是 : 數值計算的表示式、矩陣變數中不允許有未定義的自由變數 , 而符號計算可以含有未定義的符號變數。對於一般的程式設計軟體如 c, c + + 等語言實現數值計算還可以 , 但是實現符號計算並不是一件容易的事。
而 matlab 自帶有符號工具箱 symbolic math tooibox , 而且可以借助數學軟體 maple, 所以 matlab 也具有強大的符號運算功能。
一、 字串的定義
matlab 用單引號來定義字串。例如在指令視窗輸入:a= 』hello, this is a string』 ,則會輸出 a=hello, this is a string
二、 定義符號變數與符號表示式
在 matlab 指令視窗,輸入的數值變數必須提前賦值,否則會提示出錯。只有符號變數可以在沒有提前賦值的情況下合法地出現在表示式中,但是符號變數必須預先定義。
在 matlab 的資料型別中 , 字元型與符號型是兩種重要而又容易混淆的資料型別。
符號變數是利用指令 sym 和 syms 來建立 .
它們的使用格式為 :
s = sym( ′ a ′ ) 定義單個符號變數 s
syms a b c 定義多個符號變數 a, b, c
syms 命令的使用要比 sym 簡便 , 它一次可以定義多個符號變數 , 而且格式簡練。因此一般用 syms 來建立符號變數。注意各符號變數之間必須是空格隔開。
語句 syms x y z w
表示將 x,y,z 和 w 定義為符號變數。如果再輸入: p=sin(x)+cos+z+2*w, 是執行後 p 就表示表示式 sin(x)+cos(x)+z+2*w
三、 將數值表示式轉換為符號表示式
命令 sym 可將數值表示式轉成符號表示式,其語法為:
sym(『 數值表示式 』)
例如,在指令視窗輸入:
p=sym(『2+sqrt(5)』)
則得到輸出:
p=2+sqrt(5) ,此時p是乙個符號表示式,而不是乙個數值表示式。
四、 計算符號表示式的值
如果要計算前面的符號表示式p的值,則需要用 eval_r(p) 來計算p的近似值。即可輸入:
eval_r(p)
得到輸出: ans=4.2361
由於 p=sym(『2+sqrt(5)』) 實際上是乙個符號常數,所以也可以用 vpa 命令計算。
五、數值變數、符號變數、字元變數的相互轉化
數值變數、符號變數、字元變數的相互轉化在 matlab 工作空間中 , 數值、符號和字元是 3 種主要的資料型別。
matlab 可以利用命令來實現不同型別資料間的轉換。
4樓:刺忌輾
符號計算 存放的是精確資料,耗儲存空間 ,執行速度慢,但結果精度高; 數值計算則是以一定精度來計算的,計算結果有誤差,但是執行速度快。
5樓:匿名使用者
概念其實沒那麼複雜。
一般性講,數學計算包括數值計算(numerical calculation)和符號計算(symbolic calculation)。數值計算針對的是實際的數字,符號計算中包含數學符號,你也可以把符號計算理解為符號表示式及其推導,例如:
數值計算(numerical calculation):3x7+8x9-9x9 最後結果是12
符號計算(symbolic calculation):8x+3x-7x+666 最後結果是666+4x
matlab裡面用符號變數能不能進行數值運算 10
6樓:匿名使用者
不能的,符號變數不能構成矩陣或向量進行數值運算的。
只有把 sym y1 y2 刪除,對y1 ,y2具體賦值就能運算了。
7樓:匿名使用者
提示的錯誤內容是什麼?貼出來看看!
matlab中jacobian矩陣計算是符號矩陣,再如何對裡面的符號變數賦數值?
8樓:匿名使用者
方法:syms x y z;
j=jacobian([3*x;2*y+3*z;x*z],[x y z])
subs(j,,)
matlab中jacobian是用來計算jacobi矩陣的函式。
syms r l f
x=r*cos(l)*cos(f);
y=r*cos(l)*sin(f);
z=r*sin(l);
j=jacobian([x;y;z],[r l f])結果:j =
[ cos(l)*cos(f), -r*sin(l)*cos(f), -r*cos(l)*sin(f)]
[ cos(l)*sin(f), -r*sin(l)*sin(f), r*cos(l)*cos(f)]
[ sin(l), r*cos(l), 0 ]
matlab中矩陣寫入的問題,matlab中矩陣寫入txt文件的問題
521煙雨曉曉 先新建一個命名tt.txt的文件,在建一個m檔案,把這些copy進去就ok了。a 1 2 3 4 5 b 6 7 8 9 0 fid fopen tt.txt wt i size a j size b m max i 2 j 2 for k 1 m if k i 2 fprintf ...
如何得到MATLAB計算後的函式值
因為你沒有說明是什麼具體的函式,我就以多項式函式為例吧!matlab中有個函式叫polyval,用來計算多項式在某點的函式值。示例程式 我們有多項式 f x 3 x 2 2 x 1計算此函式在x 5處的值的 p 321 polyval p,5 同樣的再舉個例子 用mean函式就可以求平均值了a 13...
matlab怎麼撒矩陣中的部分元素
西西哩的小馬甲 a 50,提取的是第50行的元素,a 50 提取的是第50列的元素。以下是 a 0 2 3 4 5 6 7 8 9 b 1 0 1 0 1 0 0 0 0 k a b 1 c mat2cell k,sum b d sum a.b 一 電腦不能啟動的原因 系統不承認硬碟 此類故障比較常...