求助大佬们在mma里进行二分法
mathematica吧
全部回复
仅看楼主
level 10
碳化物xj 楼主
现在是手动二分法,输入两个自变量x,y,寻找输出的两个量为特定的值时与之对应的xy,现在想能不能在mma里或者python中二分法求解x,y。已知函数单调,和xy大致范围,不会出现不同xy对应同一个值
2024年10月26日 07点10分 1
level 10
碳化物xj 楼主
精度1%就可以
2024年10月26日 10点10分 2
level 9
methodBisection[left_, right_, eps_ : 0.001] := Block[{func},
func = Sin[
#] - Cos[#
] &;
Mean@NestWhile[
If[func[Mean@
#]*func[#
[[2]]] < 0., {Mean@#, #[[2]]}, {#[[1]],
Mean@#}] &, {left, right}, (Abs@*Subtract @@ # /2.> eps) &]];
methodBisection[-1., 2.]
这里使用了 NestWhile 进行二分法迭代.
假设被求零点的函数是SIn[x]-Cos[x], 这可以任意修改, 区间左侧端点left为x=-1., 右侧端点right为x=+2, 容许误差为eps
2024年11月01日 17点11分 3
谢谢,我试试
2024年11月02日 03点11分
吧务
level 15
如果只是要解方程的话,请用FindRoot,不要自己写。
2024年11月02日 03点11分 4
谢谢吧主,我去看看了解一下findroot
2024年11月02日 04点11分
1