使用matlab求解方程组 如何用matlab求解齐次线性方程组

\u5982\u4f55\u7528matlab\u89e3\u65b9\u7a0b\u7ec4

matlab\u4e2d\u89e3\u65b9\u7a0b\u7ec4\u8fd8\u662f\u5f88\u65b9\u4fbf\u7684\uff0c\u4f8b\u5982\uff0c\u5bf9\u4e8e\u4ee3\u6570\u65b9\u7a0b\u7ec4Ax=b(A\u4e3a\u7cfb\u6570\u77e9\u9635\uff0c\u975e\u5947\u5f02)\u7684\u6c42\u89e3\uff0cMATLAB\u4e2d\u6709\u4e24\u79cd\u65b9\u6cd5\uff1a
(1)x=inv(A)*b \u2014 \u91c7\u7528\u6c42\u9006\u8fd0\u7b97\u89e3\u65b9\u7a0b\u7ec4\uff1b

(2)x=A\B \u2014 \u91c7\u7528\u5de6\u9664\u8fd0\u7b97\u89e3\u65b9\u7a0b\u7ec4
PS\uff1a\u4f7f\u7528\u5de6\u9664\u7684\u8fd0\u7b97\u6548\u7387\u8981\u6bd4\u6c42\u9006\u77e9\u9635\u7684\u6548\u7387\u9ad8\u5f88\u591a~
\u4f8b:
x1+2x2=8
2x1+3x2=13
>>A=[1,2;2,3];b=[8;13];
>>x=inv(A)*b
x =
2.00
3.00
>>x=A\B
x =
2.00
3.00\uff1b
\u5373\u4e8c\u5143\u4e00\u6b21\u65b9\u7a0b\u7ec4\u7684\u89e3x1\u548cx2\u5206\u522b\u662f2\u548c3\u3002

\u5bf9\u4e8e\u540c\u5b66\u95ee\u5230\u7684\u7528matlab\u89e3\u591a\u6b21\u7684\u65b9\u7a0b\u7ec4\uff0c\u6709\u7b26\u53f7\u89e3\u6cd5\uff0c\u65b9\u6cd5\u662f\uff1a\u5148\u89e3\u51fa\u7b26\u53f7\u89e3,\u7136\u540e\u7528vpa(F,n)\u6c42\u51fan\u4f4d\u6709\u6548\u6570\u5b57\u7684\u6570\u503c\u89e3.\u5177\u4f53\u6b65\u9aa4\u5982\u4e0b\uff1a
\u7b2c\u4e00\u6b65:\u5b9a\u4e49\u53d8\u91cfsyms x y z ;
\u7b2c\u4e8c\u6b65:\u6c42\u89e3[x,y,z,]=solve('eqn1','eqn2',,'eqnN','var1','var2','varN');
\u7b2c\u4e09\u6b65:\u6c42\u51fan\u4f4d\u6709\u6548\u6570\u5b57\u7684\u6570\u503c\u89e3x=vpa(x,n);y=vpa(y,n);z=vpa(z,n);\u3002
\u5982\uff1a\u89e3\u4e8c\uff08\u591a\uff09\u5143\u4e8c\uff08\u9ad8\uff09\u6b21\u65b9\u7a0b\u7ec4\uff1a
x^2+3*y+1=0
y^2+4*x+1=0
\u89e3\u6cd5\u5982\u4e0b\uff1a
>>syms x y;
>>[x,y]=solve('x^2+3*y+1=0','y^2+4*x+1=0');
>>x=vpa(x,4);
>>y=vpa(y,4);
\u7ed3\u679c\u662f\uff1a
x =
1.635+3.029*i
1.635-3.029*i
-.283
-2.987
y =
1.834-3.301*i
1.834+3.301*i
-.3600
-3.307\u3002
\u4e8c\u5143\u4e8c\u6b21\u65b9\u7a0b\u7ec4\uff0c\u51714\u4e2a\u5b9e\u6570\u6839\uff1b

\u89e3\u7b54\u5982\u4e0b\uff1a
\u57fa\u672c\u65b9\u6cd5\u662f\uff1asolve(s1,s2,\u2026,sn,v1,v2,\u2026,vn)\uff0c\u5373\u6c42\u8868\u8fbe\u5f0fs1,s2,\u2026,sn\u7ec4\u6210\u7684\u65b9\u7a0b\u7ec4\uff0c\u6c42\u89e3\u53d8\u91cf\u5206\u522bv1,v2,\u2026,vn\u3002
\u5177\u4f53\u4f8b\u5b50\u5982\u4e0b\uff1a
x^2 + x*y + y = 3
x^2 - 4*x + 3 = 0
\u89e3\u6cd5\uff1a
>> [x,y] = solve('x^2 + x*y + y = 3','x^2 - 4*x + 3 = 0')
\u8fd0\u884c\u7ed3\u679c\u4e3a
x =
1 3
y =
1 -3/2

\u5373x\u7b49\u4e8e1\u548c3\uff1by\u7b49\u4e8e1\u548c-1.5

\u6216
>>[x,y] = solve('x^2 + x*y + y = 3','x^2 - 4*x + 3= 0','x','y')
x =
1 3
y =
1 -3/2
\u7ed3\u679c\u4e00\u6837\uff0c\u4e8c\u5143\u4e8c\u65b9\u7a0b\u90fd\u662f4\u4e2a\u5b9e\u6839\u3002

\u901a\u8fc7\u8fd9\u4e09\u4e2a\u4f8b\u5b50\u53ef\u4ee5\u770b\u51fa\uff0c\u7528matlab\u89e3\u5404\u7c7b\u65b9\u7a0b\u7ec4\u90fd\u662f\u53ef\u4ee5\u7684\uff0c\u65b9\u6cd5\u4e5f\u6709\u591a\u79cd\uff0c\u53ea\u662f\u7528\u5230\u89e3\u65b9\u7a0b\u7ec4\u7684\u51fd\u6570\uff0c\u6ce8\u610f\u6b63\u786e\u4e66\u5199\u53c2\u6570\u5c31\u53ef\u4ee5\u4e86\uff0c\u975e\u5e38\u65b9\u4fbf\u3002

2\u3001\u53d8\u53c2\u6570\u975e\u7ebf\u6027\u65b9\u7a0b\u7ec4\u7684\u6c42\u89e3
\u5bf9\u4e8e\u6c42\u89e3\u975e\u7ebf\u6027\u65b9\u7a0b\u7ec4\u4e00\u822c\u7528fsolve\u547d\u4ee4\u5c31\u53ef\u4ee5\u4e86\uff0c\u4f46\u662f\u5bf9\u4e8e\u65b9\u7a0b\u7ec4\u4e2d\u67d0\u4e00\u7cfb\u6570\u662f\u53d8\u5316\u7684\uff0c\u8be5\u600e\u4e48\u6c42\u5462\uff1f

%\u5b9a\u4e49\u65b9\u7a0b\u7ec4\u5982\u4e0b\uff0c\u5176\u4e2dk\u4e3a\u53d8\u91cf
function F = myfun(x,k)
H=0.32;
Pc0=0.23;W=0.18;
F=[Pc0+H*(1+1.5*(x(1)/W-1)-0.5*(x(1)/W-1)^3)-x(2);
x(1)-k*sqrt(x(2))];

%\u6c42\u89e3\u8fc7\u7a0b
H=0.32;
Pc0=0.23;W=0.18;
x0 = [2*W; Pc0+2*H]; % \u53d6\u521d\u503c
options = optimset('Display','off');
k=0:0.01:1; % \u53d8\u91cf\u53d6\u503c\u8303\u56f4[0 1]
for i=1:1:length(k)
kk=k(i);
x = fsolve(@(x) myfun(x,kk), x0, options);%\u6c42\u89e3\u975e\u7ebf\u6027\u65b9\u7a0b\u7ec4
x1(i)=x(1);
x2(i)=x(2);
end
plot(k,x1,'-b',k,x2,'-r');
xlabel('k')
legend('x1','x2')

\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 -9 -10;-9 1 -5;8 7 1];

其二,写出线性方程组的常数项系数。即

B=[1;0;4];

然后,用矩阵左除法,求出X=[x1,x2,x3] 的解。即

X=A\B

运行结果



  • matlab濡備綍姹傝В绾挎鏂圭▼缁?
    绛旓細2銆MATLAB鏄痬atrix&laboratory涓や釜璇嶇殑缁勫悎锛屾剰涓虹煩闃靛伐鍘(鐭╅樀瀹為獙瀹)銆傛槸鐢辩編鍥絤athworks鍏徃鍙戝竷鐨勪富瑕侀潰瀵圭瀛璁$畻銆佸彲瑙嗗寲浠ュ強浜や簰寮忕▼搴忚璁$殑楂樼鎶璁$畻鐜銆傚畠灏嗘暟鍊煎垎鏋愩佺煩闃佃绠椼佺瀛︽暟鎹彲瑙嗗寲浠ュ強闈炵嚎鎬у姩鎬佺郴缁熺殑寤烘ā鍜屼豢鐪熺瓑璇稿寮哄ぇ鍔熻兘闆嗘垚鍦ㄤ竴涓槗浜浣跨敤鐨勮绐楃幆澧冧腑锛屼负绉戝鐮旂┒銆佸伐绋嬭璁...
  • matlab鎬庝箞璁$畻鏂圭▼缁
    绛旓細1 锛泋 - 11y = 5 >>[x,y]=solve('x + y = 1','x - 11*y = 5')鍙堝鏂圭▼缁 exp(x+1)-y²=10 锛沴n(x)+3y=7 >>syms x y >>[x,y]=solve(exp(x+1)-y^2-10,log(x)+3*y-7,'x','y')2銆佸浜庢瘮杈冨鏉傜殑鏂圭▼缁勶紝鍙互鐢鏁板兼柟娉曚腑鐨勭墰椤胯凯浠f硶锛屼簩鍒嗘硶鏉姹...
  • 浣跨敤matlab姹傝В鏂圭▼缁
    绛旓細浣跨敤matlab姹傝В绾挎鏂圭▼缁锛屽彲浠ヨ繖鏍疯В銆傞鍏堬紝鍐欏嚭绾挎ф柟绋嬬粍鐨勭郴鏁般傚嵆 A=[1 -9 -10;-9 1 -5;8 7 1];鍏朵簩锛屽啓鍑虹嚎鎬ф柟绋嬬粍鐨勫父鏁伴」绯绘暟銆傚嵆 B=[1;0;4];鐒跺悗锛岀敤鐭╅樀宸﹂櫎娉曪紝姹傚嚭X=[x1,x2,x3] 鐨勮В銆傚嵆 X=A\B 杩愯缁撴灉 ...
  • 濡備綍鐢╩atlab 瑙e喅鏂圭▼缁
    绛旓細S=solve('2*x*y=1,x+2=y+z,x+y-z=4','x,y,z'); %鍓嶉潰鐨勫弬鏁版槸鏂圭▼缁鍒楄〃锛屽悗闈㈡槸鏈煡鍙橀噺鍒楄〃 S.x %杈撳嚭鏈煡鏁皒鐨勫 S.y %杈撳嚭鏈煡鏁皔鐨勫 S.z %杈撳嚭鏈煡鏁皕鐨勫 f=@(x)2*x; %瀹氫箟涓涓尶鍚嶅嚱鏁皔=2x锛屽叾涓瑻(x)琛ㄧずx鏄尶鍚嶅嚱鏁扮殑鑷彉閲 fplot(f,[-...
  • matlab瑕佹庝箞瑙f柟绋嬬粍
    绛旓細姣斿瑙d竴閬撲竴鍏冮珮娆¢潪绾挎ф柟绋嬶紝鎴戜滑涓鑸殑瑙f硶鏄厛纭畾鏂圭▼鐨勮В鎵鍦ㄧ殑澶ц嚧鑼冨洿锛岀劧鍚庣敤鐗涢】杩唬娉曟潵绠楋紝寰堝鏉傘傝繖閲屾垜浠嬬粛鐢╩atlab鏉瑙f柟绋锛屼竴涓懡浠ゅ嵆鍙交鏉惧緱鍑烘柟绋嬬殑鎵鏈夎В銆傚伐鍏/鍘熸枡 Matlab 瑙涓鍏冩柟绋 1 鍏堜妇涓渚嬶紝瑙f柟绋"x^2+100*x+99=0"鍦╩atlab 鈥滳ommand Window"涓緭鍏ュ涓嬪懡浠わ細x=...
  • matlab涓璼olve瑙f柟绋嬬粍
    绛旓細涓銆鐢╩atlab 涓殑solve鍑芥暟 >>syms x y; %瀹氫箟涓や釜绗﹀彿鍙橀噺锛>>[x ,y]=solve('y=2*x+3','y=3*x-7');%瀹氫箟涓涓 2x1 鐨勬暟缁勶紝瀛樻斁x锛寉 >>x >>x=10.0000 >>y >>y=23.0000 浜屻傜敤matlab 涓殑鍙嶅悜鏂滅嚎杩愮畻绗︼紙backward slash锛夊垎鏋愶細鏂圭▼缁鍙寲涓 2*x-y=-3锛3*x-y...
  • matlab鏈夊彉閲忕殑鏂圭▼缁勬眰瑙,鍐欏嚭鍏蜂綋缂栫▼
    绛旓細matlab鏈夊彉閲忕殑鏂圭▼缁勬眰瑙鏂规硶銆鍒╃敤for寰幆璇彞锛屾湁vpasolve()鍑芥暟瑙e嚭x,y鍊笺傛眰瑙h繃绋嬶細a=0:0.1:(50*3.14/180); x1=2720*cos(a)-280*sin(a); y1=2720*sin(a)+280*cos(a);for i=1:length(a)syms x y [x,y]=vpasolve((x-2312)^2+(y-100)^2-1450^2==0,(x-x1(i))^2...
  • 濡備綍鐢╩atlab瑙f柟绋嬬粍
    绛旓細syms x1 x2 x2=solve('sin(x1)=2*sin(x2)','x2');y=-0.15*cos(x1)+0.3*cos(x2)ezplot(y,[0 pi])
  • 濡備綍鐢╩atlab姹傝В涓涓簩闃跺父绯绘暟寰垎鏂圭▼缁
    绛旓細1銆 鎵撳紑Matlab杞欢-->鐐瑰嚮鏂板缓鑴氭湰鑿滃崟锛屾柊寤轰竴涓剼鏈枃浠剁敤浜庣紪鍐欏井鍒鏂圭▼姹傝В绋嬪簭銆2銆 杈撳叆寰垎鏂圭▼姹傝В绋嬪簭-->鐐瑰嚮淇濆瓨-->鐐瑰嚮杩愯銆3銆佸湪matlab鐨勫懡浠ょ獥鍙e嵆鍙湅鍒版眰瑙g粨鏋滐紝鏄竴涓叧浜庡弬鏁癮锛宐鐨勮〃杈惧紡 绗簩绉嶆柟娉曪細鍒╃敤Matlab涓殑solver鍑芥暟(鍖呮嫭ode45銆乷de23銆乷de15s绛)鏉ユ眰瑙e井鍒嗘柟绋嬬殑鏁板艰В...
  • 濡備綍鐢╩atlab姹傝В濡傚浘鏂圭▼缁
    绛旓細鏄叧浜巋锛埼革級鐨勫嚱鏁般傛墍浠ヨ鍙兘寰楀埌鏁板艰В銆備篃灏辨槸璇达紝褰撐=0锝炏鏃讹紝鍒╃敤for寰幆璇彞鍜寁pasolve鍑芥暟姹傚緱瀵瑰簲胃鍊肩殑h鍊笺傚疄鐜颁唬鐮侊細x0=0:pi/10:pi;for i=1:length(x0)syms h x=胃 x=x0(i);r=(sin(x)-cos(x))*h;eq1=(0.5*r-sin(x)*h)^2+(sqrt(3*r^2+(cos(x))^2...
  • 扩展阅读:求解方程计算器 ... 用matlab解方程组代码 ... matlab求解多元方程组 ... 用matlab计算方程组 ... matlab解方程组求解solve ... matlab求逆法解方程组 ... matlab解三元方程组编程 ... matlab求解五个方程组 ... matlab求解一阶微分方程组 ...

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