请问matlab中fsolve函数怎么用的
3个回答
推荐于2018-09-20 · 知道合伙人教育行家
关注
展开全部
x=fsolve(fun,x0)求解fun(x)=0的解,x0是初值,fun是函数,x就是解
因为fsolve使用迭代法求解方程的,所以总要有个迭代的初值吧,这个初值就是你给的x0。
比如解方程组
x(1).^2+x(2).^2=1
x(1)=2*x(2)
可以写成
f=@(x)([x(1).^2+x(2).^2-1;x(1)-2*x(2)])
x=fsolve(f,[1 1])
这里[1 1]就是初值,其实初值一般情况下可以随便给的。
因为fsolve使用迭代法求解方程的,所以总要有个迭代的初值吧,这个初值就是你给的x0。
比如解方程组
x(1).^2+x(2).^2=1
x(1)=2*x(2)
可以写成
f=@(x)([x(1).^2+x(2).^2-1;x(1)-2*x(2)])
x=fsolve(f,[1 1])
这里[1 1]就是初值,其实初值一般情况下可以随便给的。
推荐于2017-10-08
展开全部
把x、y用x(1)、x(2)表示,指定初值求解即可:
>> fsolve(@(x)x(1)^2+x(2)^2,[1 1])
Warning: Trust-region-dogleg algorithm of FSOLVE cannot handle non-square systems;
using Levenberg-Marquardt algorithm instead.
> In fsolve at 319
Optimization terminated: the first-order optimality measure is less than 1e-4 times options.TolFun.
ans =
1.0e-003 *
0.2447 0.2447
其中,警告可以无视。
追问
那个为什么用x,y代替x(1)和x(2)就不行呢,这是什么用法??
追答
这是fsolve对所求解方程的要求,它只对第一个输入参数进行优化,如果是多个变量,就需要把变量写成向量的形式。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
x = fsolve('2*x^2+7*x+5',0)
最简单的一个用法,前面是表达式,后面是初始搜索值,这个函数是从初始搜索点开始搜索,找到一个满足条件的就停止,因此只能找到一个解。改变初始搜索点,就可以找到不同的解
最简单的一个用法,前面是表达式,后面是初始搜索值,这个函数是从初始搜索点开始搜索,找到一个满足条件的就停止,因此只能找到一个解。改变初始搜索点,就可以找到不同的解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询