如何用Matlab求线性方程组的通解 如何用matlab求解齐次线性方程组

\u5982\u4f55\u7528Matlab\u6c42\u7ebf\u6027\u65b9\u7a0b\u7ec4\u7684\u901a\u89e3

\u7ed9\u4f60\u4e00\u4e2a\u4f8b\u5b50\uff0c\u6765\u8bf4\u660e\u5982\u4f55\u7528Matlab\u6c42\u7ebf\u6027\u65b9\u7a0b\u7ec4\u7684\u901a\u89e3\u3002

>> a=[1 -1 1 -1;-1 1 1 -1;2 -2 -1 1]; %\u7ebf\u6027\u65b9\u7a0b\u7ec4\u7684\u7cfb\u6570\u77e9\u9635
>> b=[1;1;-1]; % \u5e38\u5217\u5411\u91cf
>> [rank(a) rank([a,b])]
ans =
2 2 %\u79e9\u76f8\u7b49\u4e14\u5c0f\u4e8e4\uff0c\u8bf4\u660e\u6709\u65e0\u7a77\u591a\u89e3
>> rref([a,b]) %\u7b80\u5316\u884c\u9636\u68af\u5f62\u77e9\u9635
ans =
1 -1 0 0 0
0 0 1 -1 1
0 0 0 0 0
\u4ece\u800c\u539f\u65b9\u7a0b\u7ec4\u7b49\u4ef7\u4e8ex1=x2\uff0cx3=x4+1\u3002
\u4ee4x2=k1\uff0cx4=k2
\u4e8e\u662f\uff0c\u6211\u4eec\u6c42\u5f97\u901a\u89e3

\u5148\u5199m\u6587\u4ef6
function [x,y]=line_solution(A,b)
[m,n]=size(A);
y=[];
if norm(b)>0
if rank(A)==rank([A,b])
if rank(A)==n
disp('\u65b9\u7a0b\u6709\u552f\u4e00\u89e3x');
x=A\b;
else
disp('\u65b9\u7a0b\u6709\u65e0\u7a77\u591a\u89e3,\u7279\u89e3\u4e3ax\uff0c\u5176\u9f50\u6b21\u65b9\u7a0b\u7ec4\u7684\u57fa\u7840\u89e3\u7cfb\u4e3ay');
x=A\b;
y=null(A,'r');%null\u662f\u7528\u6765\u6c42\u9f50\u6b21\u7ebf\u6027\u65b9\u7a0b\u7ec4\u7684\u57fa\u7840\u89e3\u7cfb\u7684\uff0c\u52a0\u4e0a'r'\u5219\u6c42\u51fa\u7684\u662f\u4e00\u7ec4\u6700\u5c0f\u6b63\u6574\u6570\u89e3\uff0c\u5982\u679c\u4e0d\u52a0\uff0c\u5219\u6c42\u51fa\u7684\u662f\u89e3\u7a7a\u95f4\u7684\u89c4\u8303\u6b63\u4ea4\u57fa\u3002
end
else
disp('\u65b9\u7a0b\u65e0\u89e3');
x=[];
end
else
disp('\u539f\u65b9\u7a0b\u7ec4\u6709\u552f\u4e00\u96f6\u89e3x');
x=zeros(n,1);
if rank(A)<n
disp('\u65b9\u7a0b\u7ec4\u6709\u65e0\u7a77\u4e2a\u89e3\uff0c\u57fa\u7840\u89e3\u7cfb\u4e3ay');
y=null(A,'r');
end
end
----------------------------------------------------------------------
\u4e3e\u4f8b\u8c03\u7528\uff1a
format rat %\u4ee5\u6709\u7406\u6570\u5f62\u5f0f\u8f93\u51fa
A=[1,1,-3,-1;3,-1,-3,4;1,5,-9,-8];
b=[1;4;0];
[x,y]=line_solution(A,b);
x,y
format short %\u4fdd\u75594\u4f4d\u6709\u6548\u6570\u5b57

给你一个例子,来说明如何用Matlab求线性方程组的通解。

>> a=[1 -1 1 -1;-1 1 1 -1;2 -2 -1 1]; %线性方程组的系数矩阵
>> b=[1;1;-1]; % 常列向量
>> [rank(a) rank([a,b])]
ans =
2 2 %秩相等且小于4,说明有无穷多解
>> rref([a,b]) %简化行阶梯形矩阵
ans =
1 -1 0 0 0
0 0 1 -1 1
0 0 0 0 0
从而原方程组等价于x1=x2,x3=x4+1。
令x2=k1,x4=k2
于是,我们求得通解

  • matlab瑙绾挎ф柟绋嬬粍鏄粈涔?
    绛旓細matlab瑙绾挎ф柟绋嬬粍鏄痻i=0銆侫=锛2164锛4323锛2533锛5423锛姐侫1=diag锛堬蓟13131313锛斤級銆俠=zeros锛4锛1锛夈倄=锛圓-A1锛塡b銆俿ymsfafbfcmaqmla銆俧a锛宖b锛宖c锛宮a=solve锛'fa-q*2*l-fc=0'锛'-ma-m+fb*l-q*2*l*2*l-fc*3*l=0''-ma-fa*l-m-q*2*l*l-fc*a*l=0'锛'-ma-fa*...
  • 濡備綍鐢╩atlab姹傝В绾挎ф柟绋嬬粍Ax=0.
    绛旓細x鏄潪闆朵笖涓巈1姝d氦鐨勶紝閭d箞x鍙互鍐欐垚浠ヤ笅褰㈠紡锛歺 = 伪 * e2 + 尾 * e3 鍏朵腑伪銆佄蹭笉鍏ㄤ负0銆傛妸琛ㄨ揪寮忓甫鍏ュ埌鏂圭▼涓緱鍒:A(伪e2+尾e3) = (伪*位2)e2 + (尾位3)e3 = kx k鏄垜浠鎵剧殑姣斾緥鍥犲瓙銆傞氳繃姣旇緝绯绘暟锛屽彲浠ュ緱鍑哄叧浜幬便佄插拰k鐨勫叧绯诲紡缁勶紝鐒跺悗纭畾鍑烘瘮渚嬪洜瀛恔鐨勫叿浣撴暟鍊笺
  • matlab瑙绾挎ф柟绋嬬粍
    绛旓細澶у鏁板満鍚堜笅锛岃繖鏍风殑鏂圭▼缁鐨勫敮涓瑙d负xi=0銆傚弬鑰冧唬鐮侊細A=[2 1 6 4;4 3 2 3; 2 5 3 3; 5 4 2 3];A1 = diag([13 13 13 13]);b=zeros(4,1);x=(A-A1)\b 浣嗗浜庢湰棰樻潵璇达紝鐢变簬鏁寸悊涔嬪悗鐨勭郴鏁扮煩闃甸潪婊$З锛堢З涓3锛夛紝鎵浠ュ叾瑙d负涓涓彉閲忚嚜鐢卞彇鍊硷紝鍐嶆眰鍑哄彟澶栦笁涓彉閲忋傚綋鐒...
  • 濡備綍鐢╩atlab姹傝В绾挎ф柟绋嬬粍鐨勭鍙疯В?鐢╩atlab瑙g鍙锋柟绋嬬粍鏂规硶浠嬬粛
    绛旓細3銆侀噰鐢ㄧ煩闃甸櫎娉曠殑鏂规硶姹傝В鐩镐俊鏂圭▼缁勶紝鍏蜂綋璁$畻浠g爜鍙婄粨鏋滃涓嬪鎵绀猴細4銆侀噰鐢╯olve鎸囦护鐨勪竴鑸唬鏁版柟绋嬭В娉曪紝鍏蜂綋璁$畻浠g爜鍙婄粨鏋滃涓嬪鎵绀猴細鏁欑▼缁撴潫锛屼互涓婂氨鏄叧浜濡備綍鐢╩atlab姹傝В绾挎ф柟绋嬬粍鐨勭鍙疯В?鐢╩atlab瑙g鍙锋柟绋嬬粍鏂规硶浠嬬粛锛屾槸涓嶆槸寰堢畝鍗曞憿锛熷鏋滀綘杩樹笉鐭ラ亾锛岄偅灏辨寜鐓т互涓婃柟娉曡瘯璇曞惂锛
  • 濡備綍鐢∕atlab姹傜嚎鎬ф柟绋嬬粍鐨勯氳В
    绛旓細濡備綍鐢∕atlab姹傜嚎鎬ф柟绋嬬粍鐨勯氳В 杩欎釜鏄嚎鎬ч綈娆℃柟绋嬬粍鐨 鍏堝啓m鏂囦欢 function [x,y]=line_solution(A,b)[m,n]=size(A);y=[];if norm(b)>0 if rank(A)==rank([A,b])if rank(A)==n disp('鏂圭▼鏈夊敮涓瑙');x=A\b;else disp('鏂圭▼鏈夋棤绌峰瑙,鐗硅В涓簒锛屽叾榻愭鏂圭▼缁勭殑鍩虹瑙...
  • matlab 瑙绾挎ф柟绋嬬粍鐨勫嚱鏁,鍙鎬庝箞瑙*x=b
    绛旓細瑙鏂圭▼缁鐢細fsolve 瑙f柟绋嬬敤锛歴olve 渚嬪瓙锛氫緥涓鏂圭▼缁 f=@(x)([x(1).^2+x(2).^2-1;x(1)-2*x(2)]);x=fsolve(f,[1 1])缁撴灉 x = 0.8944 0.4472 渚嬩簩鏂圭▼ [t]=solve('21.1+11.5*exp(0.11*t)=37')缁撴灉锛歵 = 2.945200671427104 ...
  • matlab鎬庝箞姹傜嚎鎬ф柟绋嬬粍鐨勮В?
    绛旓細姹傝В绾挎ф柟绋嬬粍闇瑕佽浆鍖栦负鐭╅樀褰㈠紡锛岄氳繃鐭╅樀杩愮畻寰楀埌銆備緥濡傦細Ax锛漛锛屽垯x=A\b
  • matlab姹傝В鏂圭▼缁?
    绛旓細棰樹富缁欏嚭鐨勫鏉傜殑鍒嗗紡鏂圭▼缁锛屽彲浠ョ敤vpasolve锛堬級鍑芥暟寰楀埌鍏舵暟鍊艰В銆姹傝В鏂规硶濡備笅:syms x y eq1=x-(107.1+0.2*(4*y+3*x)*(3.83-107.1)/(4*y+3*3.83));eq2=y-(83.7+y*(4*y+3*x)*(1.28-83.7)/(3*x*(3*y+2*1.28)+4*y*(2*y+3*1.28)));[x,y]=vpasolve...
  • 濡備綍鐢╩atlab姹傝В榻愭绾挎ф柟绋嬬粍
    绛旓細鏂规硶鏈夊緢澶氱殑锛岃璇撮珮鏂垪涓诲厓娑堝幓娉曡В涓鑸绾挎ф柟绋嬬粍鐨勫仛娉曪紝浠ヤ笅鏄痩iezy.m鏂囦欢锛屾枃浠跺悕涓嶈淇敼灏辫鐢ㄨ繖涓 function[RA,RB,n,x]=liezy(A,b);B=[A b];n=length(b);RA=rank(A);RB=rank(B);zhicha=RA-RB;if zhicha>0,disp('鍥犱负RA~=RB锛屾墍浠ユ鏂圭▼鏃犺В')return end if RA==RB ...
  • 3鐢∕ATLAB缂栧啓涓涓▼搴姹傜嚎鎬ф柟绋嬬粍鐨勮В,绯绘暟鐭╅樀涓轰竴涓100涔樹互100鐨...
    绛旓細A=diag(3*ones(1,100))+diag(ones(1,99),1)+diag(ones(1,99),-1);B=(1:100)';X=A\B;寰楀埌鐨刋灏辨槸鏂圭▼ A*X=B鐨勮В
  • 扩展阅读:matlab求一元回归方程 ... matlab梯形法求状态方程 ... matlab求解符号方程 ... matlab如何验证克莱姆法则 ... 怎么用matlab解状态方程 ... matlab解带字母的方程 ... 怎么用matlab解多元方程 ... matlab解三元一次方程 ... 用matlab求方程的解 ...

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