matlab中有专门的函数来解决方程组的,我给你举一个例子好了,你一看就会了。这个我帮别人写过的一道题,分享给你
(a-x)^2+(b-y)^2=e^2
(C-x)^2+(D-y)^2=v^2
已知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;%%%%%%%设定你这几个未知数的值
>> syms x y;%%%%%%x,y是变量
>> [x,y]=solve('x^2+y^2-2*a*x-2*b*y=e^2-a^2-b^2','x^2+y^2-2*c*x-2*d*y=v^2-c^2-d^2');%%%%我把平方展开了
>> x=vpa(x,4);y=vpa(y,4);%%%%%%%%%%%取4位有效数字
%%%%%%%%%%
格式就是用solve(方程1,方程2,…求解变量1,变量2,…);
希望对您有帮助
用solve函数,格式solve(方程1,方程2,…求解变量1,变量2,…);
其中方程“代数式=0”只写成代数式,不写变量的话,默认有findsym自动确定。
g=solve(eq1,eq2,…,val1,val2…)所得g为构架数组,显示每个变量的结果用指令g.val1, g.val2
例子:
syms x y
g=solve(x^2+y-8,x-y^2+y-10,x,y);
g.x
g.y
使用solve函数。举个例子,解非线性方程组 x^2+y^3=10 x^3-y^2=1 其中x,y为方程组的未知量在Matlab的命名窗口中输入: syms x y [x y]=solve('x^2+y=10','x^2-y^2=1','x','y') 即可输出计算结果为: x = (37^(1/2)/2 + 21/2)^(1/2) (21/2 - 37^(1/2)/2)^(1/2) -(21/2 - 1/2*37^(1/2))^(1/2) -(1/2*37^(1/2) + 21/2)^(1/2) y = - 37^(1/2)/2 - 1/2 37^(1/2)/2 - 1/2 37^(1/2)/2 - 1/2 - 37^(1/2)/2 - 1/2 具体solve函数的使用方法,通过输入help solve来学习。希望我的回答能够解决您的问题,谢谢。