matlab求方程数值解

来源:百度知道 编辑:UC知道 时间:2024/06/02 08:44:51
我用matlab的solve求方程组,结果是一个符号解,我想得到方程的数值解,应该怎么办?因为符号解的解非常复杂,所以手工代人几乎不可能。
matlab编程:[x5,y5]=solve('y5=a1*x5+c1','y5=a2*x5+c2','x5','y5');
a1,c1,a2,c2的数值都知道了
运行结果:
x5 =

(-c2+c1)/(a2-a1)
y5 =

(a2*c1-c2*a1)/(a2-a1)
x5、y5不是数值,这是什么原因?

>> syms a1 a2 c1 c2

%以下的值你自己改一下
aa1=1;
cc1=2;
aa2=3;
cc2=4;

[x5,y5]=solve('y5=a1*x5+c1','y5=a2*x5+c2','x5','y5');
xx5=subs(subs(subs(subs(x5,a1,aa1),a2,aa2),c1,cc1),c2,cc2)
yy5=subs(subs(subs(subs(y5,a1,aa1),a2,aa2),c1,cc1),c2,cc2)

%%%%%subs(表达式,变量,变量的值),就是将表达式里面的变量,用变量的值代进去。

a1,c1,a2,c2的数值都知道,设为以下方程

>> [x5,y5]=solve('y5=1*x5+1','y5=2*x5+sqrt(3)','x5','y5')

x5 =

1-3^(1/2)

y5 =

2-3^(1/2)

>> x=eval(x5);y=eval(y5);
>> [x,y]

ans =

-0.7321 0.2679

>>

直接把几个已知参数放进solve里就行了啊
比如a1=2,就在输a1的地方输2