找回密码
 注册
Simdroid-非首页
查看: 129|回复: 3

关于fsolve求解非线性方程的问题

[复制链接]
发表于 2009-9-23 21:15:59 | 显示全部楼层 |阅读模式 来自 湖南长沙
本帖最后由 caiwhph 于 2009-9-23 21:30 编辑

本人采用以下程序运算非线性方程组:
定义函数:
function F=myfun(x)
r0=4.8839
l1=9.5006
v1=0.0436
l2=9.5167
v2=0.0785
F(1)=x(1)*(tan(v1)*(x(1)^2+l1^2-r0^2)+sqrt(4*x(1)^2*l1^2-(x(1)^2+l1^2-r0^2)^2))-x(3)*(x(1)^2+l1^2-r0^2-sqrt(4*x(1)^2*l1^2-(x(1)^2+l1^2-r0^2)^2)*tan(v1));

F(2)=x(2)*(tan(v2)*(x(2)^2+l2^2-r0^2)+sqrt(4*x(2)^2*l2^2-(x(2)^2+l2^2-r0^2)^2))-x(3)*(x(2)^2+l2^2-r0^2-sqrt(4*x(2)^2*l2^2-(x(2)^2+l2^2-r0^2)^2)*tan(v2));

F(3)=x(2)-x(1)-0.381;
调用函数运算:
clc
clear all
close all
options=optimset('Display','on');
[r1,val1]=fsolve('myfun',[5,5,0.5])
运行结果:
r1 =
   4.6157 - 0.0008i   4.6306 + 0.0000i   0.2168 - 0.0456i

val1 =
   1.0282 - 2.3754i  12.9889 - 5.0570i  -0.3662 + 0.0008i
求出来为虚数,而且不满足方程组F(3).
求教问题出在哪里。
发表于 2009-9-23 22:19:26 | 显示全部楼层 来自 北京
Simdroid开发平台
用1stOpt得到下面两组,不知对否?
第一组:
x1        13.0745742771892
x2        13.455574277189
x3        4.67463223720975

第二组:
x1        -7.52671059593533
x2        -7.14571059593532
x3        -4.91214349097977
回复 不支持

使用道具 举报

 楼主| 发表于 2009-9-24 09:29:33 | 显示全部楼层 来自 湖南长沙
2# shamohu
x1和x2取值应该是在4附近
回复 不支持

使用道具 举报

发表于 2009-9-24 10:07:28 | 显示全部楼层 来自 浙江杭州
1# caiwhph

命令没有问题,只是x1和x2在4附近找不到解,如果你的方程有实际意义要求x1和x2在4附近取值,检查一下你的方程是否正确。
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-5 15:31 , Processed in 0.056010 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表