matlab如何解这个超越方程?

请问matlab如何求解下面的方程?a-x-ln(a/x)-b(1-(x/a)^c)=0x是未知数,a、b、c都是已知。我使用fsolve求解时,选择不同初值,计算结果差... 请问matlab如何求解下面的方程?
a-x-ln(a/x)-b(1-(x/a)^c)=0
x是未知数,a、b、c都是已知。

我使用fsolve求解时,选择不同初值,计算结果差异很大,有没有选择初值的方法?
或者是否能用其他指令求解?
展开
 我来答
lhmhz
高粉答主

2020-03-13 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17015

向TA提问 私信TA
展开全部
matlab如何解 a-x-ln(a/x)-b(1-(x/a)^c)=0 这个超越方程?解决途径有fsolve函数、vpasolve函数或其他数值分析的迭代法。
用fsolve函数求解,其关键是初值x0的选择,最简单而有效的方法就是根据其函数的图形来判断x的近似值,实现方法如下:
1、给出a、b、c的已知值,这里暂取a=10;b=5;c=0.5;
2、自定义超越方程的求解函数,即
func@(x)a-x-log(a./x)-b*(1-(x/a).^c
3、使用ezplot函数绘制该函数的草图,即ezplot(fun,[0 15]),grid on
并观察x的近似值,在0~0.2之间有解,在9~11之间有解
4、使用fsolve函数求解,即
x1=fsolve(fun,0.2) %x1= 0.0497681754530307
x2=fsolve(fun,9) %x2=10
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式