作业帮 > 综合 > 作业

matlab 解一元非线性方程 参数传递疑问

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/09/30 05:32:58
matlab 解一元非线性方程 参数传递疑问
在对一组信号做处理时,需要把之前解得的方差、均值等结果,赋值到一个非线性方程中求解,方程如下:
log(x/a)-(b/a)^2/(c/d)^2*log(x/d)=0
其中,a、b、c、d为之前处理得到的方差与平均值,x为未知量
我的问题是,如何实现MATLAB中动态的参数传递?用什么函数能解决呢?
现在我的做法是把a、b、c、d的值复制黏贴到solve中求解,这么做太笨了.
望赐教,不盛感激
matlab 解一元非线性方程 参数传递疑问
clear all;
close all;
warning off all;
a = 1; %%此处a,b,c,d换成你自己的数值
b = 3;
c = 5;
d = 7;
r = solve('log(x/a)-(b/a)^2/(c/d)^2*log(x/d)=0','x');
r_temp = subs(r,'a',a); %%利用subs函数将符号表达式中的指定符号替换成数据
r_temp = subs(r_temp,'b',b);
r_temp = subs(r_temp,'c',c);
r_temp = subs(r_temp,'d',d);
result = r_temp %%result为最终结果