资源描述
Matlab解方程组解法1 符号解法,即使用solve函数解法步骤:l 第一步:定义变量symsxyz.;l 第二步:求解x,y,z,.=solve(eqn1,eqn2,.,eqnN,var1,var2,.varN);l 第三步:求出n位有效数字的数值解x=vpa(x,n);y=vpa(y,n);z=vpa(z,n);看一个简单的例子2x+3=y3x-7=y x ,y=solve(y=2*x+3,y=3*x-7); 写成x y=solve(y-2*x-3,y-3*x+7)也可以网上可能有些代码在之前加了一句 syms x y,表示定义符号变量x,y 不加也是可以的。但是代码如果写成这样x y=solve(y-2*x-3,y-3*x+7) (无单引号括起来,则必须先说明x,y是符号变量)syms x yx y=solve(y-2*x-3,y-3*x+7)解二(多)元二(高)次方程组2+3y+1=0y2+4x+1=0x,y=solve(x2+3*y+1=0,y2+4*x+1=0);x=vpa(x,4)% vpa(x,n)用来控制运算精度,这里表示保留4位有效数字y=vpa(y,4)x = -0.2824 -2.988 1.635 - 3.029*i 1.635 + 3.029*iy = -0.3599 -3.309 1.835 + 3.303*i 1.835 - 3.303*i解法2 采用左除运算解方程组x=Ab2x+3=y3x-7=y原方程可以变为 2*x-y=-33*x-y=7代码:A=2,-1;3,-1; 系数矩阵B=-3;7; X=AB 解法3采用求逆运算解方程组x=inv(A)*b从这段话,可以看出虽然可以使用法3来求解。但是从速度和精度来说,法2更好例1:12.56A-311=-20.9B-311B311=P0.71933P=A20+Bsyms A B PA,B,P= solve(12.56*(A-311)=-20.9*(B-311),B/311=P0.71,933*P=A*20+B)输出参数顺序l solve函数求解出的参数按字母表顺序排序syms x y z tx,y,z,t=solve(2*x+3*y-z+t-2,5*x+y+z-t-13,x-y+2*z+2*t-3,3*x+2*y+2*z+9*t+3)正确写法应该是: solve函数会求解出xyzt的值,并把他们按字母表顺序排序,所以第一个是t 后三个一次为xyzsyms x y z tt,x,y,z=solve(2*x+3*y-z+t-2,5*x+y+z-t-13,x-y+2*z+2*t-3,3*x+2*y+2*z+9*t+3)已知参数求方程组例如求解该方程组x2+y2=1x+y=1x,y=solve(x2+y2=1,x+y=1)x =1 y=0 或x=0 y=1修改该方程 ax2+by2=cdx+fy=g此时方程加入了已知参数 x,y=solve(a*x2+b*y2=c,d*x+e*y=f)此时求解出来的变量用已知参数表示。如果已知参数值a=1;b=1;c=1;d=1;e=1;f=1;然后用subs函数来替换已知参数中的值,即计算变量的值。完整代码:x,y=solve(a*x2+b*y2=c,d*x+e*y=f);a=1;b=1;c=1;d=1;e=1;f=1;subs(x y)(a-x)2+(b-y)2=e2(C-x)2+(D-y)2=v2已知a,b,c,d,e,v 值求解 X,Y 请问用 matlab 如何写,就是求2个园的交点问题。仿真程序为:global a b c d e v;a=1;b=0;c=-1;d=0;e=1.5;v=1.5;%参数的值%可以不用展开x,y=solve(x2+y2-2*a*x-2*b*y=e2-a2-b2,x2+y2-2*c*x-2*d*y=v2-c2-d2) 运行结果subs(x)subs(y)带入参数数值后的结果
展开阅读全文