matlab解方程组时报错Explicit solution could not be found

解方程组:
[p,n]=solve('2*pi*0.025/3*exp(-2*pi*0.106/3)*sin(pi/6)*(((p - 0.09)^2 + 4*n^2)/(4*n^2))^(1/2)=10.5','2*pi*0.015/3*exp(-2*pi*0.106/3)*sin(pi/6)*(((p - 0.09)^2 + 4*n^2)/(4*n^2))^(1/2)=7.26','p','n')

报错,求帮助

1、像这种复杂的方程(组)一般是很难求出解析解的,建议用数值方法求解。

 

2、即使能求出解析解,题主的调用方式也是错误的。

 

我们举个简单例子:

>> [p,n]=solve('p=10','n=7','p','n') 
p = 

n = 
10

看到了吗?两个变量是反过来的。原因是,solve函数返回多个输出时,是以变量的字母顺序排列,而不是你在输入参数中指定的顺序。

 

事实上,对于求解方程组的情况,比较可取的做法是只返回一个参数,此时返回的参数是一个结构体

>> s=solve('p=10','n=7','p','n')
s =
    n: [1x1 sym]
    p: [1x1 sym]
>> s.n 
ans = 

>> s.p 
ans = 
10

这样就不会搞错了。

 

3、回到问题本身。

 

其实不难注意到,你的两个方程最右根号部分是相同的,而且变量也只存在与根号部分。分别把方程左边的数除以右边根号之外的部分,得到的值是不同的:

>> 10.5/(2*pi*0.025/3*exp(-2*pi*0.106/3)*sin(pi/6))
ans =
  500.7680
>> 7.26/(2*pi*0.015/3*exp(-2*pi*0.106/3)*sin(pi/6))
ans =
  577.0755

这意味着什么?两个方程不相容!也就是说,这个方程组根本就是无解的。

温馨提示:内容为网友见解,仅供参考
无其他回答

matlab解方程组时报错Explicit solution could not be found
1、像这种复杂的方程(组)一般是很难求出解析解的,建议用数值方法求解。2、即使能求出解析解,题主的调用方式也是错误的。我们举个简单例子:>> [p,n]=solve('p=10','n=7','p','n') p = 7 n = 10看到了吗?两个变量是反过来的。原因是,solve函数返回多个输出时,是以变量的字母...

matlab solve Explicit solution could not be found.
L1=‘f*(x-Ax)+Ay-y’,%直线方程 L3=‘-y+Cy-sqrt(r.^2-(x-Cx).^2)’, %圆弧线方程 [x,y]=solve(L1,L3,x,y) ,即可

MATLAB里面关于solve解矩阵方程的问题
explicit solution could not be found.这句话的意思是不能找到精确解,也就是matlab里面solve函数的内部算法对于你这个方程组不适用,所以你这个方程组不能用solve求解 而且,观察你的三个方程,显然是无解的,第一式除以第二式可以得出exp(k0)=533.34\/534.48 第二式除以第三式可以得出 exp(k0)=...

...出现Explicit solution could not be found In dsolve (line 201...
方程组变为(dy\/dx)\/(1-y) – z =cosx,dz\/dx + y =1;这样Z,Y都是X的函数;>> dsolve('Dy\/(1-y)-z=cos(x),Dz+y=1','x')Warning: Explicit solution could not be found.> In dsolve at 101 ans = [ empty sym ] 空解!

...解二元一次符号方程提示Explicit solution could not be found
将[m,n]=solve('m+n=r1','n\/m=z\/r'); [m,n]=solve('m+n=r1','n\/m=-z\/r'); 中的单引号去掉,就可以了。改为 [m,n]=solve(m+n-r1,n.\/m-z.\/r); [m,n]=solve(m+n-r1,n.\/m+z.\/r);

Matlab求解警告;Warning: Explicit solution could not be found.
可这样:syms a b c d [a,b,c,d]=solve(a*log(9-b)*200^c\/25000^d==6,a*log(7-b)*250^c\/30000^d==5,a*log(6-b)*300^c\/30000^d==4,a*log(5-b)*400^c\/30000^d==3)警告说明,没有找到解析解,找到数值解,也是可以的。

...Explicit solution could not be found.是什么意思?还是方法不行...
这是告诉你无法求解析解。用数值解法吧。

...求解警告Explicit solution could not be found. x=[empty sym...
你的函数式不对劲啊,首先是diff求查分deff(x,n)表示对x向量求n级差分,比如diff([1,2,4,8],1)=[1,2,4],diff([1,2,4,8],2)=[1,2],你写成diff(g,x)是表达?然后是solve()里的函数,一般是函数等式+变量,你的变量是对的,但是等式是不对劲 ...

求助高手,用matlab解带三角函数方程组的问题
Explicit solution could not be found.这是个warning,不是error!找不到精确解是指你的方程太复杂了,matlab不能得到具体的解析解。

利用matlab求解微分方程,谢谢!
Warning: Explicit solution could not be found.> In dsolve at 120 a = [ empty sym ]warning的意思应该是matlab没能找到符号解。我又尝试了一下将y换成t,因为matlab默认的求导是对t求导(不过按理说对y求导也是没有影响的),结果更诡异:>> syms f;a=dsolve('Dx=(sqrt((f-x)^2+t^2)...

相似回答