24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1085  |  回复: 5

三星2010

木虫 (小有名气)

[求助] 请高人指点一个matlab编程问题,谢谢

如题:主要是通过求解一个非线性方程组来求最值,一些基本的参数及方程如下:
taof=7.2;
Gf=0.576;
delta1=0.034;
deltaf=0.16;
b1=25;
E1=500000;
t1=5.12;
b2=400;
E2=10000;
t2=20;
eql=600;
beta=b2*E2*t2/(b1*E1*t1);
lamda=((taof^2/2/Gf*(1/E1/t1+b1/b2/E2/t2)))^0.5;
lamda1=(lamda^2*2*Gf/(delta1*taof))^0.5;
equation1:lamda2/lamda1*tanh(0.5*lamda1*(L-x(1)-x(2)))-(sin(lamda2*x(1))-beta*sin(lamda2*x(2)))/((beta*cos(lamda2*x(2)))-cos(lamda2*x(1)))=0;
equation2:lamda2*sinh(L-x(1)-x(2))*tan(lamda2*x(1))+1-lamda1*(cosh(L-x(1)-x(2))+1)=0;
其中x(1)+x(2)<L, L从400变化到1200,L的步长为20,求每一L对应的x(1)和x(2),最好通过循环输出吧,我用fsolve尝试了一下,并不理想,请高人给以指点,先谢谢啦!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

静心,合力
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhg19

金虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
楼主不知lamda2是什么?
2楼2013-12-01 21:33:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

三星2010

木虫 (小有名气)

引用回帖:
2楼: Originally posted by zhg19 at 2013-12-01 21:33:23
楼主不知lamda2是什么?

不好意思,
lamda2=(lamda^2*2*Gf/(deltaf-delta1)/taof)^0.谢谢提醒!
静心,合力
3楼2013-12-01 21:59:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

三星2010

木虫 (小有名气)

lamda2=(lamda^2*2*Gf/(deltaf-delta1)/taof)^0.5;这个不小心漏掉了
静心,合力
4楼2013-12-01 23:34:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhg19

金虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
xzhdty: 金币+1, 谢谢参与 2013-12-02 07:49:27
三星2010: 金币+50, ★★★很有帮助, 先给一半的金币,验证通过后补齐! 2013-12-02 14:11:35
三星2010: 金币+50, ★★★★★最佳答案 2013-12-05 22:36:31
楼主可尝试编写m文件如下:
function xfsolve
clear all;clc;
global L;
for L=400:20:1200
x0=[L/2,L/2];
k=1;
xa(k,=fsolve(@abc,x0)
k=k+1;
end
function f=abc(x)
global L;
taof=7.2;
Gf=0.576;
delta1=0.034;
deltaf=0.16;
b1=25;
E1=500000;
t1=5.12;
b2=400;
E2=10000;
t2=20;
eql=600;
beta=b2*E2*t2/(b1*E1*t1);
lamda=((taof^2/2/Gf*(1/E1/t1+b1/b2/E2/t2)))^0.5;
lamda1=(lamda^2*2*Gf/(delta1*taof))^0.5;
lamda2=(lamda^2*2*Gf/(deltaf-delta1)/taof)^0.5;
f(1)=lamda2/lamda1*tanh(0.5*lamda1*(L-x(1)-x(2)))-(sin(lamda2*x(1))-beta*sin(lamda2*x(2)))/((beta*cos(lamda2*x(2)))-cos(lamda2*x(1)));
f(2)=lamda2*sinh(L-x(1)-x(2))*tan(lamda2*x(1))+1-lamda1*(cosh(L-x(1)-x(2))+1);
其中x0是迭代初值,楼主可依情况适当更改,xa(k,即为要求的x(1),x(2)。
5楼2013-12-02 00:07:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

三星2010

木虫 (小有名气)

引用回帖:
5楼: Originally posted by zhg19 at 2013-12-02 00:07:13
楼主可尝试编写m文件如下:
function xfsolve
clear all;clc;
global L;
for L=400:20:1200
x0=;
k=1;
xa(k,=fsolve(@abc,x0)
k=k+1;
end
function f=abc(x)
global L;
taof=7.2;
Gf=0.576;
delta1 ...

谢谢!刚看到您的回复,等验证一下好给您评分哈
静心,合力
6楼2013-12-02 10:54:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 三星2010 的主题更新
信息提示
请填处理意见