怎么用matlab编程求解这个方程的数值解啊

现在有方程y*lgy=x,如果已知x的值,比如x=3,问怎么样用matlab编程解出y的数值阿?谢谢咯~~~~两个人都回答的挺好的,可是你们能不能帮我解释一下所写的程序的... 现在有方程 y*lgy=x ,如果已知x的值,比如x=3,问 怎么样用matlab 编程解出 y的数值阿?谢谢咯~~~~
两个人都回答的挺好的,可是你们能不能帮我解释一下所写的程序的意思啊,因为你们的程序我看不太懂。比如 @(x,y) , vpa ,fzero ,fsolve , fval ,fun=@(y)y*log10(y)-x; 分别都是什么意思啊? 能让我搞懂的我追加奖赏 50 分
展开
 我来答
nextpilot
推荐于2017-11-27 · TA获得超过6654个赞
知道小有建树答主
回答量:1146
采纳率:100%
帮助的人:1708万
展开全部
fun=@(x,y)y.*log10(y)-x创建关于x,y的匿名函数
log10(x)由于Matlab中自然对数的符号是log(与我们数学上的不同),以10为底的对数符号是log10,同理有log2,但是没有log3等哦
vpa将得到的符号解转化为指定精度的小数,比如vpa('sqrt(2)',10)将sqrt(2)表示10位精度的小数
fzero是Matlab求解一元函数零点的内置函数
fsolve是Matlab中求解方程组解(可以求解复数)的内置函数,功能强于fzero
fval是返回fun(x)的值,也就是说fzero和fsolve返回方程的解x,那么此时的fun(x)就是fval

这个方法比较多 可以数值也可以解析求解

1.解析求解

>> solve('y*log10(y)=3','y')

ans =

3*log(10)/lambertw(3*log(10))

>> vpa(ans)

ans =

4.5555357051951280236911974082484

2.数值解法这个可以使用fsolve和fzero,前者的功能更加强大,但是对于这个问题fzero就可以了

>>x=3;
>>fun=@(y)y*log10(y)-x;
%使用fsolve
>> [x,fval]=fsolve(fun,rand)
Optimization terminated: first-order optimality is less than options.TolFun.

x =

4.5555

fval =

3.9620e-008

%使用fzero
>> [x,fval]=fzero(fun,5)

x =

4.5555

fval =

-8.8818e-016
黄先生
2024-12-27 广告
矩阵切换器就是将一路或多路视音频信号分别传输给一个或者多个显示设备,如两台电脑主机要共用一个显示器,矩阵切换器可以将两台电脑主机上的内容renyi切换到同一个或多个显示器上;迈拓维矩矩阵切换器种类齐全,性价比高,支持多种控制方式,为工程商采... 点击进入详情页
本回答由黄先生提供
greatdju
2009-02-19 · TA获得超过2.2万个赞
知道大有可为答主
回答量:2486
采纳率:50%
帮助的人:4194万
展开全部
f=@(x,y)y.*log10(y)-x;
x=3;
y=fzero(@(y)f(3,y),10)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式