我有一个代码在MATLAB中生成一个向量,例如以下是一个三分量向量( n=3
):
a1_1 - sin((17*a1_1)/60 + a2_1/8 + a3_1/40 - 0.153233)
(15*a1_1)/16 + a2_1/4 + a3_1/32 - sin((17*a1_1)/60 + a2_1/8 + a3_1/40 - 0.0282326)
(3*a1_1)/4 + a2_1/2 + a3_1/8 - sin((17*a1_1)/60 + a2_1/8 + a3_1/40 + 0.846767)
正如您所看到的,每个组件都是非线性方程式 . 向量的三个分量形成一个由三个非线性方程组成的系统,其变量名为 a1_1
, a1_2
和 a1_3
. 我想通过 fsolve
解决这个系统 .
我如何为任意 n
做到这一点?
2 回答
要使用fsolve,您的函数必须接受向量输入并返回相同大小的向量 . 在您的情况下,您可以使用anonymous function完成此操作:
这回来了
当然,可能有不止一种解决方案,尤其是对于较大的解决方案
n
. 您可以选择初始猜测来查找其他人 . 有关指定选项的更多详细信息,请参阅fsolve
和optimoptions的文档 .你尝试使用solve命令了吗?