matlab解方程

程序如下,请大家帮忙看看怎么解s,一直运行出错clcclearsymss;a=0.16;b=1.55;d1=0.3;d2=0.3;u=(-(a+b-1)+sqrt((a+... 程序如下,请大家帮忙看看怎么解s,一直运行出错

clc
clear
syms s;
a=0.16; b=1.55;
d1=0.3; d2=0.3;
u=(-(a+b-1)+sqrt((a+b-1).^2+4.*a))./2; v=u;
a11=1-2.*u-(a.*b.*v)/((u+a).^2); a12=-(b.*u)./(u+a);

d12=2;
A=u.*(1-2.*u-(a.*b.*v)./((u+a).^2)+b.*v./(u+a))
B1=s.*(d1+d12.*v+d12.*u)-(1-2.*u-(a.*b.*v)./((u+a).^2)).*d2
C1=a11.*(-s)-a12.*s;
A1=4.*d1.*u.*C1;
A2=4.*C1.*(d1.*d2+d2.*d12.*v+d1.*u.*B1./A);
e=(A1+sqrt(A1.^2+4.*A.^2.*A2))./(2.*A.^2)
s=solve('B1./A+e=6')

结果是这样
??? Error using ==> solve>getEqns at 202
' B1./A+e=6 ' is not a valid expression or equation.

Error in ==> solve at 67
[eqns,vars] = getEqns(varargin{:});

Error in ==> Untitled at 16
s=solve('B1./A+e=6')

各位大神帮帮忙
展开
 我来答
lhmhz
高粉答主

2018-07-21 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7263 获赞数:16999

向TA提问 私信TA
展开全部

你的错误,就是这一句出了问题。即  s=solve('B1./A+e=6') 

解决方法很简单,把solve函数里的表达式的单引号去掉就可以了。即为

s=solve(1./A+e==6) 

说明,对于低版本的应这样改,s=solve(1./A+e-6) 

更改后运行,可以得到

s=0.47628

建议,在solve()函数命令前,再套一个命令,即

s=double(solve(B1./A+e==6))   %数值为双精度

富港检测技术(东莞)有限公司_
2024-04-02 广告
正弦振动多用于找出产品设计或包装设计的脆弱点。看在哪一个具体频率点响应最大(共振点);正弦振动在任一瞬间只包含一种频率的振动,而随机振动在任一瞬间包含频谱范围内的各种频率的振动。由于随机振动包含频谱内所有的频率,所以样品上的共振点会同时激发... 点击进入详情页
本回答由富港检测技术(东莞)有限公司_提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式