Matlab中數值計算和符號計算的區別,比如在解線性方程組的

2021-05-15 06:19:20 字數 5040 閱讀 7806

1樓:匿名使用者

在matlab中,數值計算直接輸入你的命令,matlab會給出相應的數值結果。而符號計算需要事先定義符號,用syms命令,計算後結果為符號公式。

2樓:端奕琛斯昭

數值計算時matlab的優勢所在,大部分工程問題也只能得到數值解符合運算

即解析運算

得到解析式子

例如:傅立葉變換

fourier

是符號運算

fft是數值運算

matlab中數值運算與符號運算有何異同

3樓:淚之夢幻

數學計算有數值計算與符號計算之分。這兩者的根本區別是 : 數值計算的表示式、矩陣變數中不允許有未定義的自由變數 , 而符號計算可以含有未定義的符號變數。

對於一般的程式設計軟體如 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樓:匿名使用者

數值運算:求出具體的數值,不含符號。(如解方程,求出未知數=1.565656 ,不是未知數=ab+c)

符號運算:結果用符號表示。

許多問題,只有數值解,沒有符號解。

5樓:匿名使用者

沒覺得有什麼值得注意的啊

只不過matlab有計算符號的功能吧,可以自動合併同類項,化簡式子什麼的。

別的軟體沒這樣的。

寫出非線性方程,積分,微分方程的matlab數值計算和符號計算的方法.

6樓:

這麼複雜的問題。你分開問或許還有人答。

數值方法:

解非線性方程(組)用fsolve

解一階常微分方程(組)用ode系列函式

符號計算方法:

解非線性方程(組)用solve

解常微分方程(組)用dsolve

7樓:匿名使用者

微分方程初值問題數值解法,主要介紹了求解常微分方程的matlab符號法、常微分方程數值解的基本原理等內容;第7章為非線性方程求解,主要介紹了求解非線性方程的matlab符號

關於大學裡面計算方法(數值分析)中,解線性方程組,利用到雅可比迭代和sor迭代的利用matlab求解問題

8樓:匿名使用者

下面是我寫的,放心用去啦~~~

%超鬆弛迭代(sor方法)

function [x k flag]=sor(a, b, eps ,w,maxl)

%a為方程組的係數矩陣

%b為方程組的右端向量

%eps為精度要求

%maxl為最大迭代次數,預設值為100

%w為超鬆弛因子,預設值為1

%x為方程組的解

%k為迭代次數

%flag為指標變數

%賦初值:

if nargin<5 maxl=100;end

if nargin<4 w=1;end

if nargin<3 eps=1e-5;end

n=length(b); k=0;

x=zeros(n,1); y=zeros(n,1); flag='ok';

%開始迭代:

while true

y=x; %y,z均為輔助變數

for i=1:n

z=b(i);

for j=1:n

if j~=i

z=z-a(i,j)*x(j);

endend

if abs(a(i,i))<1e-10|k==maxl

flag='failure';return;

endz=z/a(i,i);x(i)=(1-w)*x(i)+w*z;

endif norm(y-x,inf)

break;

endk=k+1;

end%jacobi迭代法解線性方程組

function [x k flag]=jacobi(a, b, eps ,maxl)

%a為方程組的係數矩陣

%b為方程組的右端向量

%eps為精度要求

%maxl為最大迭代次數,預設值為100

%x為方程組的解

%k為迭代次數

%flag為指標變數

%賦初值:

if nargin<4 maxl=100;end

if nargin<3 eps=1e-5;end

n=length(b); k=0;

x=zeros(n,1); y=zeros(n,1); flag='ok';

%開始迭代:

while 1

for i=1:n

y(i)=b(i);

for j=1:n

if j~=i

y(i)=y(i)-a(i,j)*x(j);

endend

if abs(a(i,i))<1e-10|k==maxl

flag='failure';return;

endy(i)=y(i)/a(i,i);

endif norm(y-x,inf)

break;

endx=y; k=k+1;

end稍微除錯肯定可以通過,都是經過測試的,記得給我分數呦,謝啦~~~

9樓:匿名使用者

不好意思,我只有數值分析第五版的答案!呵呵

如何用matlab解符號方程組

10樓:匿名使用者

方程組為非線性方程組,可以用fsolve函式求數值解

什麼是matlab數值計算概念

11樓:匿名使用者

《matlab數值計算方法》系統地介紹了常見數學問題的各種數值解法及其內在的邏輯聯絡,並用matlab作為演算法實現工具,為快速掌握理論打下堅實的基礎。《matlab數值計算方法》共分10章,主要內容包括matlab概論、matlab基礎知識、matlab資料的圖形表示、插值法和資料擬合、數值積分、常微分方程初值問題數值解法、非線性方程求解、求解線性代數方程組和計算矩陣特徵值的迭代法、線性方程組的數值解法,以及matlab在數值計算中的綜合應用。(如果對你有幫助,請設定「好評」,謝謝!)

12樓:昱婷漫步

數值計算是相對於符號運算來將的,得到數值解,符號運算可以得到解析式結果。

例如求兩個訊號sin(x)和cos(x)之和,符號運算可以得到sin(x)+cos(x),數值計算則需要提供兩個數值向量,求和,得到一個數值型的向量。

matlab 符號方程結果怎麼變成數值?

13樓:屈國慶四川巴中

在你的語言後面加上一句

eval(h);

就可以了,效果見下圖

14樓:mcr董事長

h=solve('1+a*x+b*x^2+c*x^3=0');

a=1;

b=2;

c=3;

eval(h)

ans =

-0.7839

0.0586 + 0.6495i

0.0586 - 0.6495i

或者>> subs(h)

ans =

-0.7839

0.0586 + 0.6495i

0.0586 - 0.6495i

15樓:轉基因牛

a=a(1);

b=a(2);

c=a(3);

syms x;

d = 1+a*x+b*x^2+c*x^3;

h=solve(d)

matlab符號運算帶入數值,大家好matlab中符號運算和數值運算的區別是什麼

subs 函式,我也是今天才看到的 subs a b,a,2 就是把a b裡面的a用2替換 subs x y,y,3 就是把x y裡面的y用3替換 大家好matlab中符號運算和數值運算的區別是什麼 兩者的根本區別是 數值計算的表示式 矩陣變數中不允許有未定義的自由變數 而符號計算可以含有未定義的符...

matlab進行數值計算,化簡的問題

試試以下兩種方法,肯定有可以的 1 double lamd 2 eval lamd 不行可以找我,可以的話求採納 你試試這個eval lamd 因為我不知道你的資料什麼型別,不好判斷,我估計這個函式差不多 matlab中如何進行結果化簡?30 matlab符號數學工具箱提供的兩個化簡函式simpli...

在matlab中怎麼給點的數值以顏色深淺來表示並附上題目

help一下 抄襲set函式然 後看一下例子 link?url awdxr56mrhcglekazrn2sjgdvlyplr4tvo8xpl9mk wb5p3msbwh0e0btj4sdg vuhvn0fzza7nqs t upkgn matlab實現矩陣裡數值的大小對應顏色的深淺 資料如果存在矩陣...