Matlab:在求解器打印解时遇到问题

q35jwt9p  于 2023-01-17  发布在  Matlab
关注(0)|答案(1)|浏览(177)

我写这段代码是为了解一个与电路有关的方程组。我在打印输出时遇到了麻烦。
我把它写成一个函数。我希望能够为C1指定一个值并调用这个函数,**但是我希望在我弄乱它之前让这个函数打印值。**我是一个matlab的新手,所以如果你能解释为什么这个不起作用,我将非常感激!
代码:

f0 = 1200;
Q = 3;
W0 = 2*pi*f0;
TpdB = -10.5;
Tp = 10^(TpdB/20);
C1 = 680e-9;
syms R1 R2 C2 positive;
sol = [sC2,sR1,sR2];
[sR1,sR2,sC2] = vpasolve(W0==1/sqrt(C1*C2*R1*R2),...
Q == 1/(sqrt((C2*R2)/(C1*R1))*sqrt((C1*R1)/(C2*R2))*sqrt((C1*R2)/(C2*R1))),...
Tp == Q*(sqrt((C1*R2)/(C2*R1))), [R1,R2,C2]);
fprintf('%e %e %e',sol);

调用此函数会导致MATLAB调用该函数,但不打印输出。

bakd9h0s

bakd9h0s1#

你有三个变量来解R1``C1``C2,但只有两个独立的方程。
第一个方程W0=..实际上没有什么帮助,因为它引入了第四个参数W0,该参数在求解R1C1C2时实际上并不需要。
vpasolve,对于这种情况,任何求解器都需要N独立方程来求解N变量。
所以你要么

**1.**仍然使用一个变量作为参数求解,此处您必须选择一个变量(作为参数)

**2.**定义第三个独立方程,然后求解。

读者是否有机会看到连接所有组件的实际电路图
如果是,请将其附在问题后面。用简明的电路图定义网络将定义所有需要的方程。

相关问题