24小时热门版块排行榜    

查看: 2634  |  回复: 15
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

yan_fei

银虫 (小有名气)

[求助] 各位朋友,如何用matlab编写这个方程,并求解?

各位朋友,最近遇到这么一个方程,不知道如何用matlab解决,方程如下:
公式中的未知数是t,其他的都是已知的。怎么用matlab编写这个方程,并求解?请各位朋友帮忙,谢谢!

方程
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chnwangnannan

铁虫 (小有名气)

引用回帖:
11楼: Originally posted by dbb627 at 2012-07-31 09:28:16
计算结果如图所示。
80/fe/149791_1343698097_782.jpg

版主,你好,我刚才的数据不方便您的查看,现将各个参数列出:
e=50;
rho=1.225;
c=2;
s=7.5;
xf=0.48*c;
m=100;
ec=0.23;
aw=2*pi;
M_theradot=-1.2;
I_k=m*s^3*c/3;
I_ktheta=((m*s^2)/2)*(c^2/2-c*xf);
I_theta=m*s*(c^3/3-c^2*xf+c*xf^2);
Kk=I_k*(5*2*pi)^2;
Ktheta=I_theta*(10*2*pi)^2;
b11=rho*c*s^3*aw/6;
b12=0;
b21=-rho*ec*c^2*s^2*aw/4;
b22=-rho*c^3*s*M_theradot/8;
c11=0;
c12=rho*c*s^2*aw/4;
c21=0;
c22=-rho*ec*c^2*s*aw/2;
e11=Kk;
e22=Ktheta+0.75*e*A^2;
a1=I_k*I_theta-I_ktheta^2;
a2=-V^2*(I_theta*c11+I_k*c22-I_ktheta*c12-I_ktheta*c21+b11*b22-b12*b21)-(I_k*e22+I_theta*e11);
a3=V^4*(c11*c22-c12*c21)+V^2*(c11*e22+e11*c22)+e11*e22;
b1=I_ktheta*b12+I_ktheta*b21-I_k*b22-I_theta*b11;
b2=b11*c22+c11*b22-b21*c12-b12*c21;
b3=b11*e22+e11*b22;
F=(b3+b2*V^2)^2*a1-b1*(b3+b2*V^2)*a2+b1^2*a3=0;
当给定参数A=0时,可以求出速度V=154.35。
小于此速度时A的值为复数,大于此值时是实数,我的目的就是当给定不同的速度V时,求解出幅值A的值,因为这个方程是A的四次方的方程,所以用fsolve求解直接找到其实数值,但是我一直无法求解,请指教,谢谢

1.JPG

15楼2012-10-06 17:22:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 16 个回答

yan_fei

银虫 (小有名气)

没有朋友回复啊,是金币少吗?小弟金币有限,是每天辛苦签到积攒的,再追加100个金币,请知道的朋友帮忙,怎么用matlab编程把这个方程解出来,公式求和符号上面的【】是取整数的意思。
2楼2012-07-30 20:39:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
感谢参与,应助指数 +1
xiegangmai: 金币+3, 谢谢应助! 2012-07-30 21:50:21
yan_fei: 金币+130, 感谢这位朋友的回复,金币全部给你!不过不知道为什么初值不同,结果差别很大,我想只改变alph的值求相应的t,随便一个初值都能求出准确的解,如知道望告知!感谢您的帮助~~~ 2012-07-30 22:39:56
CODE:
function yan
global s phi lam alpha
s=3.2;
phi=1;
lam=3;
alpha=0.6;
[X,FVAL,EXITFLAG,OUTPUT]=fsolve(@sumt,10)

function y=sumt(t)
global s phi lam alpha
y=0;
for N=0:floor(s*t-phi)
    y=y+exp(-lam*t)*(lam*t)^N/gamma(N+1);
end
y=y-alpha;

Equation solved.

fsolve completed because the vector of function values is near zero
as measured by the default value of the function tolerance, and
the problem appears regular as measured by the gradient.




X =

   10.0881


FVAL =

-9.6716e-010


EXITFLAG =

     1


OUTPUT =

       iterations: 2
        funcCount: 6
        algorithm: 'trust-region dogleg'
    firstorderopt: 2.0551e-010
          message: [1x695 char]
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
3楼2012-07-30 21:09:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

★ ★
xiegangmai: 金币+2, 专家考核, 辛苦了! 2012-07-30 21:50:33
或者这么写也可以
function yan
global s phi lam alpha
s=3.2;
phi=1;
lam=3;
alpha=0.6;
[X,FVAL,EXITFLAG,OUTPUT]=fsolve(@sumt,10)

function y=sumt(t)
global s phi lam alpha
y=0;
% for N=0:floor(s*t-phi)
%     y=y+exp(-lam*t)*(lam*t)^N/gamma(N+1);
% end
N=0:floor(s*t-phi);
yN=exp(-lam*t)*(lam*t).^N./gamma(N+1);
y=sum(yN);
y=y-alpha;
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
4楼2012-07-30 21:15:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见