关于Matlab的问题

如方程组
2x+y-5z+u=13
X-5y +7u=-9
2y+z-u=6
X+6y-z-4u=0
可以得到A 和b,然后利用x=A\b 求解。
>>A=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];
>>b=[13,-9,6,0]';
>>x=A\b
x =
-66.5556
25.6667
-18.7778
26.5556

以上是一个方程组,在求解方程组中,求解方程组中,b=[13,-9,6,0]';试着用b=[13 -9 6 0]';和b=[13;-9;6;0];替代,其它不变,能否求得方程组的解?为什么?

可以求得方程组的解
b=[13 -9 6 0]';和b=[13;-9;6;0];其实都是一样的。b=[13 -9 6 0]是一行四列,加了’(即b=[13 -9 6 0]')也就是转置,变成一列四行。跟b=[13;-9;6;0];是一样的。
在matlab中空格或逗号之间的两个数据是不同的列(即同一行的)。而分号就是不同行(即不同列)。
例如
>>B=[1 2 3;2,4,5]

B =

1 2 3
2 4 5

>>B=[1;2;3]

B =

1
2
3
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-11-07
可以得到的,因为在MATLAB中,[13,-9,6,0]和[13 -9 6 0]是等效的,一样的,逗号可以有,也可以没有,而“;”代表换行,所以[13 -9 6 0]'和[13;-9;6;0]是一样的。
matlab对格式的要求不是特别严格。。。
第2个回答  2019-01-09
第一个式子中的'
是转置的意思,实际上就是将原先的x行向量转成列向量,就这个程序而言,行向量和列向量都不会影响最后的画图plot,所以加不加无所谓
第二个式子楼主检查一下是不是发错了
第四个式子是表示
x1
中的元素分别取0,1,2,……,12然后再除以2,即
x1=[0,1/2,1,3/2,…,6]
需要说明的是,MATLAB中的
:
一般是表示循环,他的格式一般为a:b:c,其中a为初始值,b为步长,c为终止值,类似C语言中的,for(i=a;i≤c;i=i+b)
若b缺省,即为a:c,就表示默认步长为1。
以第一个x为例,x=(0:pi/100:2*pi),就表示一个行向量
x=[0,pi/100,2*pi/100,3*pi/100,…,2*pi],以后如果出现矩阵,经常还会出现类似a[1:20,3:15]之类的写法,实际上也就是表示矩阵a中从第1行到第20行,第3列到第15列的元素。
最后补充:注意类似的式子y2=2*exp(-0.5*x).*sin(2*pi*x);中的“.*”,不用*是因为x在这里是一个向量(矩阵),如果用*仅仅会表示向量的乘法,一般会提示你什么维数不匹配什么的错误,实际上就是因为这里的y2实际上想进行的是元素级的运算,即x中的每一个元素进行一些操作得到一个y2值,故采用了“.*”表示是x中的元素进行操作。
相似回答