EDA365电子论坛网

标题: 简单的解函数问题 [打印本页]

作者: nocturne    时间: 2023-2-16 13:45
标题: 简单的解函数问题
已知(q_-p_*alpha)^2-(N^2-alpha^2)*p_*(po-p_) = 0, 其中q_ = qc + b * (qq - qc); p_ = pc + b * (pp - pc).  求出b的表达式。
# W$ `( j( z) d代码如下:
' s- k. ]  ?8 `; ]# ?0 A% Define the given equations* m- P; s7 J. y- W1 ^
syms pc qc N alpha po b pp qq q_ p_0 d* t. N2 T, ?9 o
eq1 = (q_-p_*alpha)^2-(N^2-alpha^2)*p_*(po-p_) == 0;
6 U8 @& y+ O4 feq2 = q_ == qc + b * (qq - qc);
% E/ b6 K( t2 Q5 eeq3 = p_ == pc + b * (pp - pc);
" ^; |& V. [6 [9 y0 ~0 G& f, S1 j; W
% Solve for b  [# {" @4 n: q4 V6 H
eq4 = subs(eq1, [q_, p_], [eq2, eq3]);
4 w" B- l# E: o; S7 O* xdisp(eq4);
8 ]$ R! ]9 s: [5 @0 q5 [b = solve(eq4, b);
# a4 [  [9 [) p% n) K) ]# F6 n5 x9 b2 h' x+ D/ W6 ], [# W" L7 i
运行会报错,求各位大佬帮我看看是哪里出错了,感谢!!' P% s) e4 e) @/ v; F

作者: unfaithful2021    时间: 2023-2-16 16:25
你混淆了 = 赋值和 == 连接方程两侧的功能。
! l$ e3 o- q/ q1 _) l% j改成- p' W- i" k1 |" O$ |* A  Y; s
syms pc qc N alpha po b pp qq q_ p_
) S) o4 B. W: l! D# ]  M( neq1 = (q_-p_*alpha)^2-(N^2-alpha^2)*p_*(po-p_) == 0; % eq1是方程,所以才会有 eq1 =(赋值) 方程左侧 == 方程右侧 这样的写法
$ A4 u* e2 S* P( |2 d3 l7 G  R7 ~eq2 = qc + b * (qq - qc); % eq2纯粹只是为了随后给 q_ 做“变量代换”,只使用“=赋值”,不要混用==1 b* N+ e% i( }% h& p6 P1 V2 h
eq3 = pc + b * (pp - pc); % 同理2 k% N' l4 z- f8 g9 Q% G& h
eq4 = subs( eq1, [ q_, p_ ], [ eq2, eq3 ] );3 h; d9 H2 c: \0 g: x) k
disp( eq4 );+ g. |$ ~- d: |3 q: _6 K  H% t2 a
b = solve( eq4, b )




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2