matlab解方程组 solve

我想接一个四元一次方程组,例:

x1+x2=a1+b1
y1+y2=c1
z1+z2=d1+a1
x3+z3=a1+c1
其中x1,x2,y1,y2,z1,z2,x3,z3是从txt中读进去的数据,而a1,b1,c1,d1是未知数,请问我用MATLAB怎么解决这个问题(MATLAB程序),非常感谢

可以用solve()函数来解决这个问题。执行步骤如下:
A=load('MC12-92.txt');
x1=A(:,1),x2=A(:,2)
y1=A(:,3),y2=A(:,4)

z1=A(:,5),z2=A(:,6)
x3=A(:,7),z3=A(:,8)

syms a1 b1 c1 d1

eq1=x1+x2-(a1+b1)
eq2=y1+y2-c1
eq3=z1+z2-(d1+a1)
eq4=x3+z3-(a1+c1)
s=solve(eq1,eq2,eq3,eq4,'a1','b1','c1','d1')追问

我得到的值错乱,例如betaBX的值给了gammaBX,alphaCB的值给了betaBX,gammaBX的值给了alphaCB

追答

你能把*。txt文件传给我吗,帮你看一看主要那里有错?

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-02-18
原发布者:fukbsne57343
matlab解方程组lnx表示成log(x)而lgx表示成log10(x)1-exp(((log(y))/x^0.5)/(x-1))1、解方程最近有多人问如何用matlab解方程组的问题,其实在matlab中解方程组还是很方便的,例如,对于代数方程组Ax=b(A为系数矩阵,非奇异)的求解,MATLAB中有两种方法:(1)x=inv(A)*b—采用求逆运算解方程组; (2)x=A\B—采用左除运算解方程组PS:使用左除的运算效率要比求逆矩阵的效率高很多~例:x1+2x2=82x1+3x2=13>>A=[1,2;2,3];b=[8;13];>>x=inv(A)*bx=2.003.00 >>x=A\Bx=2.003.00;即二元一次方程组的解x1和x2分别是2和3。对于同学问到的用matlab解多次的方程组,有符号解法,方法是:先解出符号解,然后用vpa(F,n)求出n位有效数字的数值解.具体步骤如下:第一步:定义变量symsxyz...;第二步:求解[x,y,z,...]=solve('eqn1','eqn2',...,'eqnN','var1','var2',...'varN');第三步:求出n位有效数字的数值解x=vpa(x,n);y=vpa(y,n);z=vpa(z,n);...。如:解二(多)元二(高)次方程组:x^2+3*y+1=0y^2+4*x+1=0解法如下:>>symsxy;>>[x,y]=solve('x^2+3*y+1=0','y^2+4*x+1=0');>>x=vpa(x,4);>>y=vpa(y,4);结果是:x=1.635+3.029*i1.635-3.029*i-.283-2.987y=1.834-3.301*i1.834+3.301*i-.3600-3.307。二元二次方程组,共4个实数根;还有的同学问,如何用matlab解高次方程组(非符号方程组)?举个例子好吗?解答如下:基本方法是:solve(s1,s2,…,sn,v1,v2,…,vn),即求表达式s1,s2,…,sn组
第2个回答  2015-04-16
这个方程好你矛盾,可以给你solve的格式你自己修改一下,[第一个未知量,第二个未知量……]=solve(方程,第二个方程),读入数据用fopen,fscanf追问

我得到的值错乱,例如betaBX的值给了gammaBX,alphaCB的值给了betaBX,gammaBX的值给了alphaCB

第3个回答  2019-02-25
其实多项式函数和指数函数在精度方面差异很大,而solve一般都是获取比较精确的解(计算机总存在精度问题)。我运行了一下,感觉这道题应该是无解,我用你的
相似回答