作业帮 > 综合 > 作业

用matlab求解a,b,c,d.提示Explicit solution could not be found.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/26 08:31:44
用matlab求解a,b,c,d.提示Explicit solution could not be found.
>> s1='a*c+b*d=0.75925';s2='b*c-a*d=0.65079';s3='a^2+b^2=1';s4='c^2+d^2=1';
>> [a b c d]=fsolve(s1,s2,s3,s4)
第二行应该是[a b c d]=solve(s1,s2,s3,s4),不好意思
提示意思是找不到显式解,solve函数是解线性方程的,出现这样的提示很正常.
MATLAB中非线性求根方程函数有fzero、fsolve.
下面是方程的解法:
下面文字保存成M文件,
function F=Untitled(x)
F=[x(1)*x(3)+x(2)*x(4)-0.75925
x(2)*x(3)-x(1)*x(4)-0.65079
x(1)^2+x(2)^2-1
x(3)^2+x(4)^2-1];
另建M文件输入以下内容并运行:
x0=[-1,0,1,0];
opt=optimset('Display','iter');%控制屏幕显示
x=fsolve(@Untitled,x0,opt);
得结果:x =0.4046 0.9145 0.9023 0.4310
这就是a b c d四个解,估计这个方程解不唯一,至于得到哪个解应该和初值x0的取值有关系.