matlab findroot,求助:利用FindRoot求解自定义函数的零点

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

我想写一个自定义函数(比如f(x)),然后用FindRoot来求这个函数的零点,但是我想不到如何实现我想要的效果。具体如下。

第一个问题。我想要让FindRoot在每一步迭代都print出目前的x和目前函数f(x)的值,这样我能清晰地看出寻根的进程究竟如何,不然的话我只能一直等待漫长的求解过程而且还不知道是不是求解遇到了什么困难。

我看到FindRoot有个选项EvaluationMonitor有类似的效果,但这个选项只能在方程求解完毕后才输出x的变化,所以应该满足不了我的需求。

同样的问题放在Matlab上,就很容易解决。只需要写一个函数文件,在这个函数文件内部加上display(x)和display(f(x))就可以了。但是我不清楚MMA如何实现这个功能。因为MMA给我的印象一直都是函数式编程,我不太清楚在MMA中如何写出灵活的程序实现我的需求。

第二个问题。我先贴上我的代码:

Clear["Global`*"];

Clear[Derivative];

$MaxPrecision=Infinity;

$MinPrecision=25;

$Assumptions=L>0&&L<1;

\[Alpha]=1`25;

J[L_]:={ {0,-L-I Sqrt[1-L^2],0},{I/2,-\[Alpha],-(I/2)},{0,-L+I Sqrt[1-L^2],0}};

zStar[L_]:=I L-Sqrt[1-L^2];

zbarStar[L_]:=-I L-Sqrt[1-L^2];

T[L_]:=Mo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值