登录论坛

查看完整版本 : [MATLAB数学相关] 关于关于求解符号非线性方程问题


zhaijunjay
2012-04-07, 15:31
关于求解符号非线性方程问题:小弟需要求解一个非线性方程的根,但是含有较多参数:如f(x)=a*x+b*x^2+c*exp(d*x)....形式比此复杂得多,
我这样做有什么错误:

syms a b c d x;
a=0.2;
b=0.4;
c=0.6;
d=2;
Root=fzero('a*x+b*x^2+c*exp(d*x)',[-1,1])

问题是1、如何在fzero之外赋值,但是在里面还是用符号a b c d运算;2、返回的结果需要数值型的,如何写?

yfl
2012-04-07, 18:21
function f=fun(x)
a=0.2;b=0.4;c=0.6;d=2;%定义参数
f= @(x)a*x+b*x^2+c*exp(d*x)-1;%写出关于x的表达式
root=fzero(f,[-1 1])%求解
fplot(f,[-1 1]);%作图
grid on

结果:root =

0.2222

没太看懂你的问题,不知道这个是不是你想要的。
注:我的版本为2011a

jwen
2012-04-09, 19:46
function f=fun(x)
a=0.2;b=0.4;c=0.6;d=2;%定义参数
f= @(x)a*x+b*x^2+c*exp(d*x)-1;%写出关于x的表达式
root=fzero(f,[-1 1])%求解
fplot(f,[-1 1]);%作图
grid on

结果:root =

0.2222

没太看懂你的问题,不知道这个是不是你想要的。
注:我的版本为2011a
很厉害的吧,图很好看