matlab中符号变量的设置 matlab 怎么给符号变量赋值

matlab\u4e2d\u53d8\u91cf\u5982\u4f55\u5b9a\u4e49\uff1f

2408\u4e0b\u5217\u53ef\u4f5c\u4e3amatlab\u5408\u6cd5\u53d8\u91cf\u540d\u7684\u662f\u7b97\u6cd5\u6e90\u7801\u4e91\u8bfe\u5802

\u7528subs(W)\u628a\u7b26\u53f7\u8868\u8fbe\u5f0f\u91cc\u9762\u7684\u7b26\u53f7\u91cf\u7528\u5f53\u524d\u5de5\u4f5c\u533a\u4e2d\u7684\u540c\u540d\u53d8\u91cf\u66ff\u6362\uff0c\u4e5f\u5c31\u662f\u7528\u6237\u6240\u8981\u7684\u8d4b\u503c\u4e86\u3002
\u5176\u5b9e\u4efb\u4f55\u77e9\u9635\u7684\u5143\u7d20\u90fd\u53ef\u4ee5\u76f4\u63a5\u4f5c\u4e3a\u53d8\u91cf\u6765\u4f7f\u7528\uff0c\u80fd\u5426\u4f5c\u4e3a\u53d8\u91cf\u7684\u552f\u4e00\u5224\u65ad\u6807\u51c6\u5c31\u662f\u5b83\u662f\u5426\u80fd\u591f\u653e\u5728\u8d4b\u503c\u7b26\u53f7\uff08\uff1d\uff09\u7684\u5de6\u8fb9\u3002
matlab\u4e2dsubs()\u662f\u7b26\u53f7\u8ba1\u7b97\u51fd\u6570\uff0c\u8868\u793a\u5c06\u7b26\u53f7\u8868\u8fbe\u5f0f\u4e2d\u7684\u67d0\u4e9b\u7b26\u53f7\u53d8\u91cf\u66ff\u6362\u4e3a\u6307\u5b9a\u7684\u65b0\u7684\u53d8\u91cf\u3002

\u6269\u5c55\u8d44\u6599\uff1a
\u5e38\u7528\u8c03\u7528\u65b9\u5f0f\u4e3a\uff1a
R = subs(S, new) \u5229\u7528new\u7684\u503c\u4ee3\u66ff\u7b26\u53f7\u8868\u8fbe\u5f0fS\u4e2d\u7684\u9ed8\u8ba4\u7b26\u53f7\u3002
R = subs(S) \u7528\u7531\u8c03\u7528\u51fd\u6570\u6216Matlab\u5de5\u4f5c\u7a7a\u95f4\u4e2d\u83b7\u53d6\u7684\u503c\u66ff\u4ee3\u4e86\u5728\u7b26\u53f7\u8868\u8fbe\u5f0fS\u4e2d\u7684\u6240\u6709\u5f53\u524d\u7684\u53d8\u91cf\u3002
R = subs(S, old, new) \u5229\u7528new\u7684\u503c\u4ee3\u66ff\u7b26\u53f7\u8868\u8fbe\u5f0f\u4e2dold\u7684\u503c\u3002old\u4e3a\u7b26\u53f7\u53d8\u91cf\u6216\u662f\u5b57\u7b26\u4e32\u53d8\u91cf\u540d\u3002
\u53c2\u8003\u8d44\u6599\u6765\u6e90\uff1a\u767e\u5ea6\u767e\u79d1-MATLAB

1、syms命令是创建多个符号变量的简捷写法,

syms a b positive

相当于

a = sym('a','positive');
b = sym('b','positive');

所以,这种写法,a和b都是正的。

 

2、如果只想声明b是正数,那就考虑分开写:

syms a
syms b positive

但是,如果先syms a b,经过一系列操作后,再声明syms b positive,也是有效的(但很显然只对声明为正之后的操作有效)。下面是一个例子:

>> syms b
>> Dt=sym('Dirac(t-b)') 
Dt = 
Dirac(t-b)
 
>> laplace(Dt) 
ans = 
laplace(Dirac(-t+b),t,s)
 
>> syms b positive
>> laplace(Dt) 
ans = 
exp(-b*s)

值得特别指出的是,clear b并不会清除b的positive属性,例如在上面的代码后面,如果再进行下面的操作:

>> clear b
>> laplace(Dt) 
ans = 
exp(-b*s)
 
>> syms b real
>> laplace(Dt) 
ans = 
exp(-s*b)-exp(-s*b)*Heaviside(-b)
 
>> syms b unreal
>> laplace(Dt) 
ans = 
laplace(Dirac(-t+b),t,s)

也就是说,除非用命令改变b的属性(或者用clear mex或clear all之类的做法强制重启符号计算内核),前面声明的positive或real属性会一直有效。

 

3、2011b之前的MATLAB,对符号变量的限定只有三种选择:复数(unreal,默认),实数(real),或者正数(positive),因而无法实现你希望b>=0的要求。2012a引入了三个函数:assume、assumeAlso和assumptions,可以对符号变量属性进行更多的限定,可以实现你的上述要求。更详细的信息请查阅这几个函数的文档。

 

4、据我所知,evalin用于指定在特定工作区内执行指定的命令(主要的作用在于从函数中访问基本工作区),像楼上所说的借助它对符号变量“进行更细腻的操作”则是闻所未闻。

 

希望对楼主有帮助,有问题可追问。



syms a b positive
a b 全是整数
再声明有效
syms或者sym只能声明三种:复数、实数、整数,
不然只能借助evalin指令进行更细腻的操作

  • matlab涓鍙峰彉閲忕殑璁剧疆
    绛旓細1銆乻yms鍛戒护鏄垱寤哄涓绗﹀彿鍙橀噺鐨绠鎹峰啓娉曪紝syms a b positive鐩稿綋浜 a = sym('a','positive');b = sym('b','positive');鎵浠ワ紝杩欑鍐欐硶锛宎鍜宐閮芥槸姝g殑銆2銆佸鏋滃彧鎯冲0鏄巄鏄鏁帮紝閭e氨鑰冭檻鍒嗗紑鍐欙細syms asyms b positive浣嗘槸锛屽鏋滃厛syms a b锛岀粡杩囦竴绯诲垪鎿嶄綔鍚庯紝鍐嶅0鏄巗yms b positive锛...
  • syms鍦╩atlab涓殑鍚箟
    绛旓細鍦∕ATLAB涓紝浣跨敤syms鍛戒护鍙互瀹氫箟涓涓垨澶氫釜绗﹀彿鍙橀噺銆備緥濡傦紝浠ヤ笅浠g爜瀹氫箟浜嗕袱涓鍙峰彉閲弜鍜寉锛歮atlab syms x y;瀹氫箟绗﹀彿鍙橀噺鍚庯紝鐢ㄦ埛灏卞彲浠ヤ娇鐢ㄨ繖浜涘彉閲忚繘琛岀鍙疯绠椼備緥濡傦紝浠ヤ笅浠g爜浣跨敤绗﹀彿鍙橀噺x鏉ヨ绠楄〃杈惧紡x^2 + 3*x + 2鐨勫鏁帮細matlab syms x;f = x^2 + 3*x + 2;df = diff(f, x)...
  • matlab涓鎬庢牱瀹氫箟鏈煡鏁,濡倄,syms鏄粈涔堟剰鎬?
    绛旓細棣栧厛锛岄氳繃杈撳叆"helpsyms"锛屾垜浠彲浠ユ煡鐪媠yms鐨勮缁嗙敤娉曪紝渚嬪瀹氫箟绗﹀彿鍙橀噺"m"鍙渶杈撳叆"symsm"锛岃繖鏍锋垜浠氨鑳藉湪鍚庣画鐨勮〃杈惧紡涓娇鐢ㄥ畠杩涜杩愮畻锛屽"n=m^2+3*m-2"锛屽苟涓斿彲浠ヨ交鏉捐繘琛屾眰瀵兼搷浣滐紝濡"diff(n,m)"銆傛墽琛岃繖浜涘懡浠ゅ悗锛Matlab浼氳繑鍥炴眰瀵肩粨鏋溿傚彟涓鏂归潰锛寈labe鍑芥暟涓昏鐢ㄤ簬璁剧疆鍧愭爣杞寸殑鏍囩锛屽畠...
  • mata绐楀彛鎬庝箞瀹氫箟鍙橀噺
    绛旓細1銆侀鍏堝湪杞欢涓墦寮缂栬緫鍣ㄥ懡浠よ绐楀彛涔嬪悗锛屽涓嬪浘鎵绀猴紝绗﹀彿鍙橀噺蹇呴』瑕佷簨鍏堝畾涔夛紝濡傛灉娌℃湁瀹氫箟鐨勮瘽绯荤粺灏变細鎶ラ敊锛绗﹀彿鍙橀噺鐨瀹氫箟鏂规硶灏辨槸鈥渟yms+绌烘牸+鍙橀噺鍚嶁濓紝涓嬪浘灏辨槸浠涓轰緥鏉ュ畾涔夌鍙峰彉閲忋2.瀹氫箟濂界鍙峰彉閲忎箣鍚庢垜浠氨鍙互杩涜浣跨敤浜嗭紝鍦ㄤ笅鍥句腑浠ヤ换鎰忎竴涓嚱鏁颁负渚嬫潵璺熷ぇ瀹舵紨绀猴紝鍦ㄥ懡浠よ涓緭鍏ユ眰...
  • matlab涓庝箞缁欑鍙疯〃杈惧紡涓殑鏌愪釜绗﹀彿鍙橀噺璧嬪?
    绛旓細姣斿瑕佽祴鍊糰=1 b=2 閭d箞鐢╯ubs(r,[a b],[1 2]);璇硶鏄痵ubs(s,old,new);鍋囧鍙湁涓涓绗﹀彿鍙橀噺锛屽彲浠ヤ负subs(s,new);
  • MATLAB鐨勭鍙杩愮畻鍙橀噺濡備綍鍒涘缓?
    绛旓細f鈥斺 绗﹀彿鍙橀噺鍚峴in(x)+5x鈥斺 绗﹀彿琛ㄨ揪寮' '鈥斺 绗﹀彿鏍囪瘑绗﹀彿琛ㄨ揪寮忎竴瀹氳鐢' ' 鍗曞紩 鍙锋嫭璧锋潵matlab鎵嶈兘璇嗗埆.' ' 鐨勫唴瀹瑰彲浠ユ槸绗﹀彿琛ㄨ揪寮,涔熷彲浠ユ槸绗﹀彿鏂圭▼.渚: f1='a x^2+b x+c' 鈥斺 浜屾涓夐」寮廸2= 'a x^2+b x+c=0' 鈥斺 鏂圭▼f3='Dy+y^2=1' 鈥斺斿井鍒嗘柟绋嬧荤鍙疯〃杈惧紡鎴栫鍙...
  • Matlab濡備綍瀹氫箟绗﹀彿鍙橀噺
    绛旓細濡備笅闈㈢殑渚嬪瓙锛屾湭瀹氫箟灏变細鍑洪敊銆绗﹀彿鍙橀噺瀹氫箟鏂规硶渚嬪: sym x 鎴栬 syms x 锛屼袱鑰呮湁鍖哄埆涔熸湁鍏卞悓鐐广傚叾浠鍙橀噺鐨瀹氫箟锛氳绠楄繃绋嬪綋涓殑瀛樺偍鏁板肩殑鍙橀噺 鍙互涓嶅繀瀹氫箟锛岄殢鏃堕渶瑕侊紝闅忔椂瀹氫箟锛屼絾鏄湁鏃跺欏鏋滃彉閲忓緢澶氾紝閭d箞鏈濂芥彁鍓嶅0鏄庯紝澹版槑鐨勬椂鍊欙紝鍙互鐩存帴璧嬩簣0鍊硷紝骞朵笖娉ㄩ噴锛岃繖鏍锋柟渚夸互鍚庡尯鍒嗭紝閬垮厤娣锋穯銆傜煩闃...
  • matlab鎴戞兂瀹氫箟涓涓绗﹀彿鍙橀噺a,syms a; 璇ョ鍙峰彉閲忓繀椤绘槸涓涓疄鏁,璇...
    绛旓細matlab涓榛樿鐨勬槸澶嶆暟锛屾墍浠ヤ綘搴旇杩欐牱鍐檚yms a real 灏辫兘鎶奱瀹氫箟涓哄疄鏁颁簡銆傚湪寮鍙戠幆澧冧腑锛屼娇鐢ㄦ埛鏇存柟渚垮湴鎺у埗澶氫釜鏂囦欢鍜屽浘褰㈢獥鍙o紱鍦ㄧ紪绋嬫柟闈㈡敮鎸佷簡鍑芥暟宓屽锛屾湁鏉′欢涓柇绛夛紱鍦ㄥ浘褰㈠寲鏂归潰锛屾湁浜嗘洿寮哄ぇ鐨勫浘褰㈡爣娉ㄥ拰澶勭悊鍔熻兘锛屽寘鎷鎬у璧疯繛鎺ユ敞閲婄瓑锛涘湪杈撳叆杈撳嚭鏂归潰锛屽彲浠ョ洿鎺ュ悜Excel鍜孒DF5杩涜杩炴帴銆
  • MATLAB绗﹀彿鍙橀噺瀹氫箟
    绛旓細syms x1 x2 %瀹氫箟鎵闇绗﹀彿鍙橀噺 x=cell(1,2); %寤虹珛1*N鐨鍏冭優鏁扮粍 x(1,1)={x1}; %杩欓噷闇瑕佺敤澶ф嫭鍙凤紝x(1,2)={x2};F=[2*x{1}-x{2}-exp(-x{1}),-x{1}+2*x{2}-exp(-x{2})] %璋冪敤鏁扮粍涓厓绱犳椂瑕佺敤澶ф嫭鍙 杩愯缁撴灉锛欶 = [ 2*x1 - x2 - 1/exp(x1), 2*...
  • matlab 鎬庝箞缁绗﹀彿鍙橀噺璧嬪
    绛旓細鐢╯ubs(W)鎶婄鍙疯〃杈惧紡閲岄潰鐨勭鍙閲忕敤褰撳墠宸ヤ綔鍖轰腑鐨勫悓鍚嶅彉閲忔浛鎹紝涔熷氨鏄敤鎴锋墍瑕佺殑璧嬪间簡銆傚叾瀹炰换浣曠煩闃电殑鍏冪礌閮藉彲浠ョ洿鎺ヤ綔涓哄彉閲忔潵浣跨敤锛岃兘鍚︿綔涓鍙橀噺鐨鍞竴鍒ゆ柇鏍囧噯灏辨槸瀹冩槸鍚﹁兘澶熸斁鍦ㄨ祴鍊肩鍙凤紙锛濓級鐨勫乏杈广matlab涓subs()鏄鍙疯绠楀嚱鏁帮紝琛ㄧず灏嗙鍙疯〃杈惧紡涓殑鏌愪簺绗﹀彿鍙橀噺鏇挎崲涓烘寚瀹氱殑鏂扮殑鍙橀噺銆
  • 扩展阅读:matlab各种符号大全 ... matlab定义x为符号变量 ... 创建符号变量 matlab ... matlab创建符号表达式 ... matlab给syms变量赋值 ... matlab中最简单的符号 ... matlab各种符号输入方法 ... matlab符号变量转数值 ... matlab解符号变量方程 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网