關於matlab的矩陣的數值計算和符號計算

時間 2021-05-05 18:18:43

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 一 電腦不能啟動的原因 系統不承認硬碟 此類故障比較常...