MATLAB 求二元多次方程组,方程组如下
程序:
clear
[x y]=solve('A1=x*(y-B1)','A2=x*(y-B2)','x','y')
x =
-(A1 - A2)/(B1 - B2)
y =
(A1*B2 - A2*B1)/(A1 - A2)
clear的话是把之前的内存变量删除。目的是防止出错。
这里用的是solve函数。如果是一元一次方程,没有其他符号则直接可以solve('eq')。eq是等式。如果等号右边是0的话‘=0’可以省略。solve('eq','val')的话是解以val为变量,其他视为常量的等式。解方程组的话是solve(eq1,eq2,...,eqn,val1,val2,...valn)
注意本例中solve返回两个值。一个是x一个是y。所以前面写‘[x y]=’是方便结果的输出。如果不加‘[x,y]=’返回的结果是ans =
x: [1x1 sym]
y: [1x1 sym]
这个时候你可以通过x=ans.x,y=ans.y得到最后的结果。
如果要学习语句的话,我建议多看看matlab的帮助。虽然是英语的,但是介绍的非常详细。
根据题意,求解二元方程组可以用fsolve来求解。
x0=[-5,-5];
func=@(x)[2*x(1)-x(2)-exp(-x(1)),-x(1)+2*x(2)-exp(-x(2))];
x=fsolve(func,x0)
运行结果
x=0.5671,y=0.5671
题主的二元一次方程组,可以直接用vpasolve函数求解。
syms x y
[x,y]=vpasolve(x/2==y/218000+(y/2840)^(1/0.07),x*y==7.90/100000)
求解结果如下
MATLAB 求二元多次方程组,方程组如下视频
相关评论: