如何正确使用vpasolve吗?
56个视图(30天)
显示旧的评论
我试图数值解下面的一组方程
M_mag = 1;%常数简化为1
om = 2 *π* new_freq;% new_freq的值是一个数组
C1 = exp(1我* l . * om. / c);% L和c是常数
我%φ= exp (1 * * L / c om);
我nume = exp (1。* om。* n * L / c) * 4。* n / ((1 + n) ^ 2);根据n %计算
分母项= 1 + exp (2 * 1 * om。* n * L / c)。* ((n - 1) / (n + 1)) ^ 2;根据n %计算
信谊n
S = vpasolve (M_mag。/ C1 = = nume。/分母项,n,猜)%的猜测是一个数值方法通过另一个方程,在这种情况下它是1.7
每当我试图使用这个,我得到以下文本:
错误使用mupadengine / feval_internal
更多的比变量只支持多项式方程万博1manbetx
系统。
错误信谊/ vpasolve(第172行)
索尔= eng.feval_internal (“symobj:: vpasolve”,方程式,增值,X0);
为什么我不可以解决方程?指数条款吗?
非常感谢你的帮助。
答案(2)
沃尔特·罗伯森
2022年11月17日
M_mag = 1;%常数简化为1
om = 2 *π* new_freq;% new_freq的值是一个数组
C1 = exp(1我* l . * om. / c);% L和c是常数
我%φ= exp (1 * * L / c om);
信谊n
我nume = exp (1。* om。* n * L / c) * 4。* n / ((1 + n) ^ 2);根据n %计算
分母项= 1 + exp (2 * 1 * om。* n * L / c)。* ((n - 1) / (n + 1)) ^ 2;根据n %计算
S = arrayfun (@ (EQN) vpasolve (EQN, n,猜),M_mag。/ C1 = = nume. /分母项)
2的评论
沃尔特·罗伯森
2022年11月18日
结果= arrayfun(函数,数组)
实际上是一样的吗
如果isempty(数组)
结果= [];
其他的
着干活= FUNCTION(数组(1));
结果= 0(大小(数组),类(着干活));
结果(1)=着干活;
为K = 2:元素个数(数组)
结果(K) = FUNCTION(数组(K));
结束
结束
和
结果= arrayfun(函数,数组,“统一”,0)
实际上是一样的吗
结果=细胞(大小(数组));
为K = 1:元素个数(数组)
结果{K} = FUNCTION(数组(K));
结束
和
结果= arrayfun(函数、ARRAY1 ARRAY2)
实际上是一样的吗
断言(isequal(大小(ARRAY1),大小(ARRAY2)),输入数组必须相同大小的);
如果isempty (ARRAY1)
结果= [];
其他的
着干活=函数(ARRAY1 (1) ARRAY2 (1));
结果= 0(大小(ARRAY1)、类(着干活));
结果(1)=着干活;
为K = 2:元素个数(ARRAY1)
结果(K) = FUNCTION (ARRAY1 (K), ARRAY2 (K));
结束
结束
所以你输入一个函数处理(通常),和一个或多个数组必须完全相同的大小。输出是相同大小的数组。指定当“制服”,0,输出是一个单元阵列包含的结果执行函数对应的值在每个数组。没有指定如果“制服”,0,输出是一个常规数组中包含的结果执行对应的函数在每个组值依次从数组中。