
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^...
解方程组:
[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')
报错,求帮助 展开
[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个回答
展开全部
1、像这种复杂的方程(组)一般是很难求出解析解的,建议用数值方法求解。
2、即使能求出解析解,题主的调用方式也是错误的。
我们举个简单例子:
>> [p,n]=solve('p=10','n=7','p','n')
p =
7
n =
10
看到了吗?两个变量是反过来的。原因是,solve函数返回多个输出时,是以变量的字母顺序排列,而不是你在输入参数中指定的顺序。
事实上,对于求解方程组的情况,比较可取的做法是只返回一个参数,此时返回的参数是一个结构体:
>> s=solve('p=10','n=7','p','n')
s =
n: [1x1 sym]
p: [1x1 sym]
>> s.n
ans =
7
>> 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
这意味着什么?两个方程不相容!也就是说,这个方程组根本就是无解的。

2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询