迭代matlab符号求解函数
我正在尝试求解数组 d 的以下方程。我使用了下面的代码片段:
channel_size = 9e-3;
d = [11e-3, 12e-3];
sigma = 0.49;
ee = 727/9806.65;
alpha = d-channel_size;
sym('p',[1 2])
for i = 1:2
eqn = alpha == (4.3^(1/7))*(p^(3/11))*(((1-(sigma^2))/ee)^(7/5))/(d.^(1/6))
S = solve(eqn, p)*0.015;
vpa(S/13e-12)
end
事实上,我应该得到与 d(1)
和 d(2)
相对应的两个数字,但它不起作用并且出现此错误:
Error using mupadmex
Error in MuPAD command: Operands are invalid. [linalg::matlinsolve]
Error in sym/privBinaryOp (line 1693)
Csym = mupadmex(op,args{1}.s, args{2}.s, varargin{:});
Error in sym/mrdivide (line 232)
X = privBinaryOp(A, B, 'symobj::mrdivide');
I am trying to solve the equation below for array d. I have used the snippet below:
channel_size = 9e-3;
d = [11e-3, 12e-3];
sigma = 0.49;
ee = 727/9806.65;
alpha = d-channel_size;
sym('p',[1 2])
for i = 1:2
eqn = alpha == (4.3^(1/7))*(p^(3/11))*(((1-(sigma^2))/ee)^(7/5))/(d.^(1/6))
S = solve(eqn, p)*0.015;
vpa(S/13e-12)
end
In fact, I should get two number corresponding to d(1)
and d(2)
, but it does not work and this error appears:
Error using mupadmex
Error in MuPAD command: Operands are invalid. [linalg::matlinsolve]
Error in sym/privBinaryOp (line 1693)
Csym = mupadmex(op,args{1}.s, args{2}.s, varargin{:});
Error in sym/mrdivide (line 232)
X = privBinaryOp(A, B, 'symobj::mrdivide');
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
声明 (d.^(1/6)) 是错误的,应该使用 (d(i)^(1/6))。另外,由于 alpha = d-channel_size,在等式中,我还应该声明 alpha(i) 而不是简单的 alpha。
Declaring (d.^(1/6)) is wrong and instead (d(i)^(1/6)) should be used. In addition, as alpha = d-channel_size, in the equation, I should also declare alpha(i) instead of simple alpha.