声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1916|回复: 14

[编程技巧] 请高手帮解个方程式,急,谢谢!

[复制链接]
发表于 2009-1-5 10:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
arccos[(l*sinb-1)/(l+1)]-arccos[(l*sinb-1)/(l-1)]-c=0
l为所求
b、c输入数据

[ 本帖最后由 beetle521 于 2009-1-5 11:22 编辑 ]
回复
分享到:

使用道具 举报

发表于 2009-1-5 18:30 | 显示全部楼层

回复 楼主 beetle521 的帖子

评分

1

查看全部评分

发表于 2009-1-6 09:18 | 显示全部楼层

回复 楼主 beetle521 的帖子

b=input('b=');
c=input('c=');
l=solve('acos[(l*sinb-1)/(l+1)]-acos[(l*sinb-1)/(l-1)]-c=0')

评分

1

查看全部评分

 楼主| 发表于 2009-1-6 19:49 | 显示全部楼层

回复 沙发 ch_j1985 的帖子

我算出的结果是2.168459……
而人家给的结果是4.53635

请问这是怎么回事?
谢谢
 楼主| 发表于 2009-1-6 19:49 | 显示全部楼层

回复 板凳 不爱陌生人 的帖子

我算出的结果是2.168459……
而人家给的结果是4.53635

请问这是怎么回事?
谢谢
发表于 2009-1-6 20:18 | 显示全部楼层

回复 5楼 beetle521 的帖子

b、c贴出来大家试试
 楼主| 发表于 2009-1-7 16:08 | 显示全部楼层

回复 6楼 ch_j1985 的帖子

b=40°
c=12.5581°
发表于 2009-1-7 18:21 | 显示全部楼层

回复 板凳 不爱陌生人 的帖子

我试过LZ的, 怎解不出!? 版本问题吗? 我的 v6.5
发表于 2009-1-7 19:39 | 显示全部楼层

回复 7楼 beetle521 的帖子

将度数转化为弧度
QQ截图未命名.jpg

评分

1

查看全部评分

 楼主| 发表于 2009-1-7 20:24 | 显示全部楼层

回复 9楼 ch_j1985 的帖子

十分感谢!
 楼主| 发表于 2009-1-7 21:04 | 显示全部楼层
一个新问题,我想做一个界面:

K,α已知
θ=180*(K-1)/(K+1)
arccos[(t*sinα-1)/(t+1)]-arccos[(t*sinα-1)/(t-1)]-θ=0求出t.


一个push button为计算,我编写程序为


global K theta
theta=180*(K-1)/(K+1);
theta=num2str(theta);
set(handles.theta,'string',theta);


global phi t theta
theta=get(handles.theta,'string');
theta=str2num(theta);
t=solve('acos((t*sin(phi*pi/180)-1)/(t+1))-acos((t*sin(phi*pi/180)-1)/(t-1))-theta*pi/180');
t=num2str(t);
set(handles.t,'string',t);

运行后,提示内存不足,请问应该如何解决,谢谢!




发表于 2009-1-7 21:32 | 显示全部楼层

回复 11楼 beetle521 的帖子

对界面不熟悉
上面的两段代码放在同一个push button的CallBack里面吗?
 楼主| 发表于 2009-1-7 21:44 | 显示全部楼层

回复 12楼 ch_j1985 的帖子

是的,就是计算这个push button下
 楼主| 发表于 2009-1-8 14:39 | 显示全部楼层

回复 12楼 ch_j1985 的帖子

想问一下关于解方程函数的问题

例如:
temp2=40*pi/180;
temp3=12.5581*pi/180;
solve('acos((t*sin(temp2)-1)/(t+1))-acos((t*sin(temp2)-1)/(t-1))-temp3',0)

感觉我的问题就是这个solve函数,有没有什么函数允许式子中有参数呢?
 楼主| 发表于 2009-1-9 11:33 | 显示全部楼层

问题解决特此汇报,方便以后遇到类似问题的朋友!

程序修改后为:
temp2=phi/180*pi;
temp3=theta/180*pi;
[email=f=@(t)acos((t*sin(temp2)-1)/(t+1))-acos((t*sin(temp2)-1)/(t-1))-temp3]f=@(t)acos((t*sin(temp2)-1)/(t+1))-acos((t*sin(temp2)-1)/(t-1))-temp3[/email];
t=fzero(f,[4,5])

因为用solve函数时容易丢根,所以求解前可以先作图,然后指定解出某区间的的一个解

找了一个作图求解的例子,可以参考:
下面的程序作出了[0,10]上的图像,通过观察,指定解出了[2,3]内的一个解,注意fzero函数每次只能找到一个解

X=[0:.1:10];Y=zeros(1,length(X));
plot(X,1.5*sin(X)-sin(pi/3+X/3),X,Y,'r');
grid on
axis equal

f=@(X)1.5*sin(X)-sin(pi/3+X/3);
z=fzero(f,[2,3])

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-22 21:36 , Processed in 0.059545 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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