Matlab中如何對sym裡面的字元賦值,給出數值結果

2021-03-23 11:17:07 字數 6240 閱讀 3756

1樓:匿名使用者

將一系列帶有字母的公式存入sym裡面,例如a+b 現在對a和b賦值,計算得到y的數值。 syms a b y=a+b; vpa(y) a=1; b=1; 求y的值

2樓:匿名使用者

回答matlab中如何對sym裡面的字元賦值,給出數值結果?

將一系列帶有字母的公式存入sym裡面,例如a+b現在對a和b賦值,計算得到y的數值。symsaby=a+b;vpa(y)a=1;b=1;求y的值

程式設計 matlab

matlab 中如何將乙個字串賦值給乙個變數?

3樓:匿名使用者

單個表示直接輸入:y=syms x

x不管是什麼型的都會變成字串賦值給y。

整體乙個符號變數:y=sym('表示式')如果覺得好,別忘記採用哦。。。

matlab用了solve,結果是sym啊,怎麼看具體數值

4樓:匿名使用者

執行了你的程式,存在著下列幾個問題:

1、用下列這個**求解,其t、y值是無法代入方程的。

x=solve('465*sin(x)+200=120*cos(t*1.2+pi/3)+369*sin(x-y)','x');

所以軟體會提示有關sym的資訊。

2、如要顯示x值,其該語句最後不能有分號(

)。

由於你給出的t、y值是以一組向量形式存放的,

因此要計算你的x值必須要用迴圈語句(如for。。。end語句)來求解。

需要在t、y值後面增加如下**:

n=length(t);

x=zeros(n,1);

for i=1:n

syms x1

t1=t(i);y1=y(i);

x(i)=vpasolve(465*sin(x1)+200==120*cos(t1*1.2+pi/3)+369*sin(x1-y1));

end

x

執行結果形式

matlab中sym符號變數不是乙個固定的數,怎麼轉變為double型別?

5樓:匿名使用者

你的這種寫法是不是有問題?比如 sym 可能應該是syms、j 這個變數是不必要的、syms 函式放在迴圈裡似乎不大好(雖然對結果應該沒什麼影響)。

至於轉變,賦值語句(sum=3之類)具有最高的許可權,會無視該變數原來是什麼。

另外,對符號變數及符號函式而言,subs——替換——比較常用,比如 y=x+1,z=subs(y,x,3)得到的結果是把 x 替換成 3 並計算,即 z = 4

6樓:匿名使用者

構造乙個sym型變數x:

>> x = sym('10')

x =10

檢視x的型別:

>> class(x)

ans =sym

轉換為double型:

>> y = double(x)

y =10

檢視y的型別:

>> class(y)

ans =double

matlab中sym 的用法

7樓:幻翼高達

matlab中sym有6種用法,「sym x;」是不正確的用法。

1、s = sym(a)

將非符號物件(如,數字,表示式,變數等)a轉換為符號物件,並儲存在符號變數s中。

2、x = sym('x')

建立符號變數x,其名字是'x'。示例:alpha = sym('alpha')。

3、x = sym('x', 'real')

這裡假設x是實數,因此有x的共軛conj(x)等於x。示例:r = sym('rho','real')。

4、k = sym('k', 'positive')

這裡建立乙個正的(實數)符號變數。

5、x = sym('x', 'clear')

建立乙個沒有額外屬性的純形式上的符號變數x(例如,建立符號變數x,但是並沒指定它是正的或它是乙個實數)。

6、s = sym(a, flag)

把乙個數值標量或矩陣轉換為符號型的物件。這裡flag引數的值可以是:'r', 'd', 'e', or 'f',它指定了對浮點數進行轉換時的規則。

擴充套件資料:

matlab常用函式:

1、zeros

(1)zeros(n):n*n 全零矩陣。

(2)zeros(m,n):m*n全零矩陣。

(3)zeros(d1,d2,d3……dn):生成 d1*d2*d3*……*dn 全零矩陣或陣列。

(4)zeros(size(a)):生成與矩陣a大小相同的全零矩陣。

2、ones

(1)ones(n):n*n 全1矩陣。

(2)ones(m,n):m*n全1矩陣。

(3)ones(d1,d2,d3……dn):生成d1*d2*d3*……*dn的全1矩陣或陣列。

(4)ones(size(a)):生成與矩陣a大小相同的全1矩陣。

3、size

(1)size(a):對於矩陣a,函式size(a)返回一行向量。

該行向量的第乙個元素表示矩陣的行,第二個元素表示矩陣的列。

(2)size(a, 1):表示獲取矩陣a的行數。

(3)size(a, 2):表示獲取矩陣a的列數。

8樓:柒月黑瞳

1、在matlab中,sym用於建立符號數字、符號變數、符號物件。

2、符號物件的型別是sym,可以通過class(s)來驗證,這裡s是乙個符號物件。

3、符號變數的優點是,使用符號變數運算得到的只是乙個解析解,例如,在符號變數運算過程中pi就用pi表示,而不是具體的近似數值3.14或3.14159。

4、使用符號變數進行運算能最大限度減少運算過程中因捨入造成的誤差。符號變數也便於進行運算過程的演示。

5、語法格式:

s = sym(a)將非符號物件(如,數字,表示式,變數等)a轉換為符號物件,並儲存在符號變數s中。

x = sym('x')

建立符號變數x,其名字是'x'。示例:alpha = sym('alpha')

x = sym('x', 'real')

這裡假設x是實數,因此有x的共軛conj(x)等於x。示例:r = sym('rho','real')

k = sym('k', 'positive')

這裡建立乙個正的(實數)符號變數。

x = sym('x', 'clear')

建立乙個沒有額外屬性的純形式上的符號變數x(例如,建立符號變數x,但是並沒指定它是正的或它是乙個實數)。為了相容舊的matlab版本,x = sym('x','unreal')的功能和x = sym('x', 'clear')一樣。

s = sym(a, flag)

把乙個數值標量或矩陣轉換為符號型的物件。這裡flag引數的值可以是:'r', 'd', 'e', or 'f',它指定了對浮點數進行轉換時的規則:

'f':表示「floating-point」。這樣,所有的數值都用n*2^e或-n*2^e這種形式表示。

n和e都為整數,且n不小於0。例如,sym(1/10, 'f')被轉換為3602879701896397/36028797018963968。

'r':表示「rational」(有理數形式)。這裡,所有的浮點數都被表示成形如p/q(分數形式)、p*pi/q、2^q、10^q、sqrt(p)等形式(p、q都是符號型的有理數)。

這種表示方法減少了表示式中因捨入造成的誤差。但有時候這種方法並不能準確表示乙個值。如果找不到最逼近的有理數來表示乙個浮點數,這個數就會被表示成p*2^q(其中p、q都是較大的整數)這種形式,以期來準確的表示它的值。

例如,sym(4/3,'r')將產生符號量'4/3',但sym(1+sqrt(5),'r')將被表示成7286977268806824*2^(-51)。

'e':表示「estimate error」。這種形式會在'r'的基礎上新增乙個由包含eps的符號表示式表示的誤差值。

這個誤差值表示乙個有理數的理論值和用浮點數形式表示的實際值之間的誤差。例如,sym(3*pi/4,'e')將被表示成3*pi/4*(1+3143276*eps/65)。

'd':表示「decimal」(十進位制)。我們知道,在實際生活中我們習慣用十進位制,但計算機中則用二進位制,乙個簡單的十進位制浮點數3.

14用二進位制表示便不能準確的表示。因此,更好的減少誤差的方法便是在計算機中引入十進位制來表示乙個數。這種情況下,數字都取自呼叫vpa函式後產生的數字集合。

雖然用16位有時候並不能準確表示乙個浮點數,但大多數情況下,我們也許並不希望用超過16位數字來表示乙個浮點數。例如,通過呼叫digits(10),我們得到的浮點數都由10位數字構成,sym(4/3,'d')將產生1.333333333這個符號數字。

雖然呼叫digits(20)後我們可以使用20位數字來表示乙個浮點數, 這樣sym(4/3,'d')就是 1.3333333333333332593,但是我們看到只有前16位數值是準確的,後面的幾位數值已經產生了誤差,因此大多數情況下用超過16位的數字來表示乙個浮點數是不必要的。

9樓:匿名使用者

>> sym('x')

ans =

x>> sym x

ans =

xsym('x')與sym x等同

10樓:沉淪街角的寂寞

sym 定義符號量的

sym 定義乙個符號變數

syms 定義多個符號變數

matlab中怎樣把sym型變數變為double型變數

11樓:匿名使用者

構造乙個sym型變數x:

>> x = sym('10')

x =10

檢視x的型別:

>> class(x)

ans =

sym轉換為double型:

>> y = double(x)

y =10

檢視y的型別:

>> class(y)

ans =

double

12樓:匿名使用者

double(sym型變數)

double(x)

matlab怎麼將符號變數轉換成字元

13樓:死就死住宿

比如某個符號變數為sym格式,這你可以從matlab主桌面的workspace那兒檢視該變數的名稱及型別。比如該符號變數叫aa。

bb=char(aa) %這樣就使該符號變數的值變成字串形式了,並賦值給bb

然後你就可以把這個字串再轉化為其它形式,如轉化為數值形式,str2num(bb)。這樣就得到了乙個數值

14樓:匿名使用者

你指的是sym型別的吧

clear,clc;

syms x

fx=x^2+x+5

f=char(fx)

數值的話可以用num2str

matlab中如何把符號變數轉化為數值變數?

15樓:匿名使用者

有點奇怪,你通過sym2poly得到了數值型的係數矩陣coeff,然後又怎麼會得到sym型別的零點呢?

如果zeropoint是數值型別,可以改為

disp(['在',mat2str(zeropoint),'處取得極值']);

如果zeropoint是符號型別,可以改為

disp(['在',mat2str(double(zeropoint)),'處取得極值']);

或者disp(['在',char(zeropoint),'處取得極值']);

matlab中如何分析函式之間各變數對結果的影響程度

單一變數法,具體為其他變數不變,讓乙個變數以一定的步長變化,畫出輸出結果,然後計算每個變數的相關函式即可,看一下相關程度。有多個影響因素的時候如何確定函式關係matlab 就比如說有abcde五個變數五個資料 如何求他們 已知多個影響因素的資料,可以用matlab的擬合函式來求出其數學模型的係數。例...

matlab中如何對一組資料進行fft變換後得到頻譜圖

1 直接對其使用來ceil函式,源 可以向上取整 即大於等於給定數bai據的最du小整數。2 使用zhifloor函式可以進行向下取dao整。如圖,將矩陣a中的每個元素取小於等於該元素的最大整數。3 使用fix函式則可以去除小數部分。對於大於0的元素相當於floor,對於小於0的元素相當於ceil。...

matlab中如何繪製餅形圖

1 雙擊matlab軟體圖示,開啟matlab軟體,可以看到matlab軟體的介面。2 使用直接輸入法建立乙個陣列u,用來作為圓餅圖的資料。3 使用函式pie u 繪製圓餅圖。4 並檢視圓餅圖。5 下面要重新繪製圓餅圖,並將某一部分給割開進行表述,在matlab軟體的命令列視窗中,輸入 clc 點選...