我写这段代码是为了解一个与电路有关的方程组。我在打印输出时遇到了麻烦。
我把它写成一个函数。我希望能够为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调用该函数,但不打印输出。
1条答案
按热度按时间bakd9h0s1#
你有三个变量来解
R1``C1``C2
,但只有两个独立的方程。第一个方程
W0=..
实际上没有什么帮助,因为它引入了第四个参数W0
,该参数在求解R1
C1
C2
时实际上并不需要。vpasolve
,对于这种情况,任何求解器都需要N
独立方程来求解N
变量。所以你要么
**1.**仍然使用一个变量作为参数求解,此处您必须选择一个变量(作为参数)
或
**2.**定义第三个独立方程,然后求解。
读者是否有机会看到连接所有组件的实际电路图?
如果是,请将其附在问题后面。用简明的电路图定义网络将定义所有需要的方程。