| 查看: 1527 | 回复: 4 | ||
[求助]
数值解非线性方程组时找不到解,希望各位能帮帮我 已有2人参与
|
|
function y=fun(x) alpha=0.125*pi/180;x1=0;z1=5;x2=0;z2=25;L1=5;L2=5;f=30;h0=20;n2=1.49386; y(1) = tan(alpha) - x(1)/x(2); y(2) = n2*sin(atan((x1 - x(1))/(z1 - x(2))) - atan((x(2) - x(4))/(x(1) - x(3)))) - sin(pi/2 - alpha + atan((x1 - x(1))/(z1 - x(2)))) ; y(3) = n2*sin(atan((x2 - x(3))/(z2 - x(4))) - atan((x(2) - x(4))/(x(1) - x(3)))) - sin(pi/2 + atan((x2 - x(3))/(z2 - x(4)))); y(4) = L1 + L2 - f + h0 - h0*n2 + n2*((x(1) - x(3))^2 + (x(2) - x(4))^2)^(1/2); end ---------------------------------------------------------------------- 命令行输入 >> fsolve('fun',[0.1 5.1 0.1 25.1]) ---------------------------------------------------------------------- No solution found. fsolve stopped because the relative size of the current step is less than the default value of the step size tolerance squared, but the vector of function values is not near zero as measured by the default value of the function tolerance. 合理的解应该是在初值附近的,可为什么解不出来呢 |
» 猜你喜欢
【长期招聘】复旦大学 AI 制药实验室 博士后招聘
已经有12人回复
2027博士申请-临床检验诊断学、病原生物学、微生物方向
已经有5人回复
各位基础老师们,看完中央《从严治党》的决定后,对学术界更加有信心了吧
已经有4人回复
2楼2019-01-30 17:49:49
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
月只蓝: 金币+10, 感谢帮助! 2019-01-31 18:04:04
感谢参与,应助指数 +1
月只蓝: 金币+10, 感谢帮助! 2019-01-31 18:04:04
|
利用最小二乘法(lsqnonlin),可以求得 x1=0.0109083348225495 ;x2=4.99999947195261;x3=0.0384214997768871;4=25.0000321470904 验证: y1 = tan(alpha) - x(1)/x(2)=-2.16860202711944e-09 y2 = n2*sin(atan((x1 - x(1))/(z1 - x(2))) - atan((x(2) - x(4))/(x(1) - x(3)))) - sin(pi/2 - alpha + atan((x1 - x(1))/(z1 - x(2)))) =5.90246506399546e-06 y3 = n2*sin(atan((x2 - x(3))/(z2 - x(4))) - atan((x(2) - x(4))/(x(1) - x(3)))) - sin(pi/2 + atan((x2 - x(3))/(z2 - x(4))))=-3.15643589759254e-05 |
» 本帖已获得的红花(最新10朵)

3楼2019-01-31 14:39:33
4楼2019-02-04 16:56:15
dingd
铁杆木虫 (职业作家)
- 应助: 1641 (讲师)
- 金币: 15037.3
- 散金: 101
- 红花: 234
- 帖子: 3410
- 在线: 1223.7小时
- 虫号: 291104
- 注册: 2006-10-28
5楼2019-02-28 18:14:16










回复此楼
XiaoGuads