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

如何求解一个方程的实根

[复制链接]
发表于 2011-3-23 16:52:26 | 显示全部楼层 |阅读模式 来自 江苏扬州
本帖最后由 ljelly 于 2011-4-7 13:10 编辑

已知t1=pi/2;t2=pi/2;
      a= 0.4787;
      b= 0.1005;


要求解的方程为
Q=4*L^2*((L^2-1)*sin(t1)^2*sin(t2)^2+sin(L*(t1-t2))^2-L^2*sin(t1-t2)^2)*a^2+4*L^2*(sin(t1)^2*(sin(L*t2)^2-L^2*sin(t2)^2)+sin(t2)^2*( sin(L*t1)^2-L^2*sin(t1)^2))*a*b+4*(sin(L*t1)^2-L^2*sin(t1)^2)*(sin(L*t2)^2-L^2*sin(t2)^2)*b^2+2*(sin(L*t1)^2-sin(L*t2)^2-L^2*sin(t1)^2+L^2*sin(t2)^2-2*L^2*(sin(t2)^2*sin(L*t1)^2-sin(t1)^2*sin(L*t2)^2))*a+4*L^2*(sin(t2)^2*sin(L*t1)^2-sin(t1)^2*sin(L*t2)^2)*b+ sin(L*(t1+t2))^2-L^2*sin(t1+t2);

这个方程看似复杂,其实a,b,t1,t2已经知道,只是L的函数。大侠帮忙看看,能不能画出Q关于L在 -1到0  区间的曲线。或者,解出L。
发表于 2011-3-23 17:30:04 | 显示全部楼层 来自 陕西西安
Simdroid开发平台
1# tianssss

  1. t1=pi/2;t2=pi/2;a=0.4787;b=0.1005;
  2. syms L
  3. Q=4*L^2*((L^2-1)*sin(t1)^2*sin(t2)^2+sin(L*(t1-t2))^2-L^2*sin(t1-t2)^2)*a^2+4*L^2*(sin(t1)^2*(sin(L*t2)^2-L^2*sin(t2)^2)+sin(t2)^2*( sin(L*t1)^2-L^2*sin(t1)^2))*a*b+4*(sin(L*t1)^2-L^2*sin(t1)^2)*(sin(L*t2)^2-L^2*sin(t2)^2)*b^2+2*(sin(L*t1)^2-sin(L*t2)^2-L^2*sin(t1)^2+L^2*sin(t2)^2-2*L^2*(sin(t2)^2*sin(L*t1)^2-sin(t1)^2*sin(L*t2)^2))*a+4*L^2*(sin(t2)^2*sin(L*t1)^2-sin(t1)^2*sin(L*t2)^2)*b+ sin(L*(t1+t2))^2-L^2*sin(t1+t2);
  4. Q=char(Q);
  5. Q=inline(Q);
  6. fplot(Q,[-1,0])
复制代码

图如下;

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-3-24 09:01:21 | 显示全部楼层 来自 河北廊坊
2# mhkmars
不错,不过还是建议你用匿名函数比较好,内联函数是7以前的用法,为了顾及以前的用户,Matlab仍然保留这个用法,但是从效率上参数的共享角度来说,还是匿名函数更具优势些

  1. t1=pi/2;t2=pi/2;a=0.4787;b=0.1005;
  2. Q=@(L)4*L^2*((L^2-1)*sin(t1)^2*sin(t2)^2+sin(L*(t1-t2))^2-L^2*sin(t1-t2)^2)*a^2+4*L^2*(sin(t1)^2*(sin(L*t2)^2-L^2*sin(t2)^2)+sin(t2)^2*( sin(L*t1)^2-L^2*sin(t1)^2))*a*b+4*(sin(L*t1)^2-L^2*sin(t1)^2)*(sin(L*t2)^2-L^2*sin(t2)^2)*b^2+2*(sin(L*t1)^2-sin(L*t2)^2-L^2*sin(t1)^2+L^2*sin(t2)^2-2*L^2*(sin(t2)^2*sin(L*t1)^2-sin(t1)^2*sin(L*t2)^2))*a+4*L^2*(sin(t2)^2*sin(L*t1)^2-sin(t1)^2*sin(L*t2)^2)*b+ sin(L*(t1+t2))^2-L^2*sin(t1+t2);
  3. fplot(Q,[-1,0])
复制代码

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-3-24 10:39:26 | 显示全部楼层 来自 陕西西安
3# qibbxxt
恩,谢谢斑竹的提醒。最近也发现用匿名函数可以使代码紧凑很多,参数传递也很方便,准备系统的学习一下匿名函数的用法,\(^o^)/~
回复 不支持

使用道具 举报

 楼主| 发表于 2011-4-6 21:39:21 | 显示全部楼层 来自 江苏扬州
多谢mhkmars。谢谢您的帮助。我是使用点乘的方法解决了这个问题。你们提供的方法更好。多谢多谢。也算结贴了。
回复 不支持

使用道具 举报

发表于 2011-4-7 08:09:58 | 显示全部楼层 来自 黑龙江哈尔滨
:hug: 5# tianssss
跟版主学匿名函数,哈哈,以前觉得这东西很神奇:hug:
回复 不支持

使用道具 举报

发表于 2011-4-7 12:46:52 | 显示全部楼层 来自 山西太原
:victory:学习一下,看来高手很多的。

评分

1

查看全部评分

回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

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

GMT+8, 2024-10-4 21:19 , Processed in 0.053856 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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