Matlab求解超越方程问题这类方程可以用fsove()函数来求解.myfun=@(x)2*sin(0.8*x)*sin

Matlab求解超越方程问题
这类方程可以用fsove()函数来求解.
myfun=@(x)2*sin(0.8*x)*sinh(0.8*x)-88.85*x^3*(sin(0.8*x)*cosh(0.8*x)-cos(0.8*x)*sinh(0.8*x))
x1= fsolve(myfun,-5)
x1 = -4.908371872144133
x2= fsolve(myfun,5)
x2 = 4.908371872144133
这是今天您为我解决问题,请问为何初值赋值为-5,然后又赋值为5,为何不是其他数据,
张处 1年前 已收到3个回答 举报

帅气的小猫 幼苗

共回答了13个问题采纳率:100% 举报

初值可以任意选择

1年前 追问

6

张处 举报

以这个问题为例为何输入-5和5结果正好互为相反数呢,并且初值如果赋值为100多或者1000比较大的数的话,结果不对的啊,有些不明白,您试下看呢

举报 帅气的小猫

X0是估计的取值,用于迭代求解,取值不能和真的解相差很大
按理,三角函数方程的解有许多个,都应该是正确的解
x1= fsolve(myfun,-4)= -0.4532

张处 举报

为何-4结果就差这么多呢,为何选择-5和5呢?
求教。

举报 帅气的小猫

x=[-6:0.3:6];

y=2*sin(0.8*x).*sinh(0.8*x)-88.85*x.^3.*(sin(0.8*x).*cosh(0.8*x)-cos(0.8*x).*sinh(0.8*x));

plot(x,y)

方程的取值为4的附近

hq8097 春芽

共回答了18个问题采纳率:83.3% 举报

能不能把Matlab的安装包给我一下啊

1年前

2

wwkllyy01 幼苗

共回答了14个问题 举报

fsolve函数对初值的依赖性 非常大。所以在选初值的时候,必须事先知道真实解的大概取值

1年前

0
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 19 q. 0.034 s. - webmaster@yulucn.com