工程结构优化设计编程作业Word下载.docx

上传人:b****1 文档编号:14562899 上传时间:2022-10-23 格式:DOCX 页数:13 大小:25.78KB
下载 相关 举报
工程结构优化设计编程作业Word下载.docx_第1页
第1页 / 共13页
工程结构优化设计编程作业Word下载.docx_第2页
第2页 / 共13页
工程结构优化设计编程作业Word下载.docx_第3页
第3页 / 共13页
工程结构优化设计编程作业Word下载.docx_第4页
第4页 / 共13页
工程结构优化设计编程作业Word下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

工程结构优化设计编程作业Word下载.docx

《工程结构优化设计编程作业Word下载.docx》由会员分享,可在线阅读,更多相关《工程结构优化设计编程作业Word下载.docx(13页珍藏版)》请在冰豆网上搜索。

工程结构优化设计编程作业Word下载.docx

’);

return;

else

t1=a+(b-a)*0.382;

t2=a+(b-a)*0.618;

f_1=subs(sym(f),findsym(sym(f)),t1);

f_2=subs(sym(f),findsym(sym(f)),t2);

tol=abs(t1-t2);

while(tol>

eps)

if(f_1*f_2<

a=t1;

b=t2;

else

fa=subs(sym(f),findsym(sym(f)),a);

if(f_1*fa>

a=t2;

b=t1;

end

tol=abs(t2-t1);

x=(t1+t2)/2;

其实现的MATLAB代码如下:

>

clearall;

tic

x=glodf('

x^3-3*x+1'

-1,1,1e-6)

x=

0.3473

2.用抛物线法求解的极值点,取值范围[0.5,1],允许误差为1e-6。

在MATLAB中没有专门的函数实现抛物线法求解线性方程,可通过编写paowuxian.m函数实现抛物线法求解,其代码如下:

functionx=paowuxian(f,x0,x1,x2,e)

ifnargin<

4,e=1e-4;

x=x2;

y=x1;

z=x0;

whileabs(x-y)>

e

h1=y-z;

h2=x-y;

c1=(feval(f,y)-feval(f,z))/h1;

c2=(feval(f,x)-feval(f,y))/h2;

d=(c1-c2)/(h2+h1);

w=c2+h2*d;

xi=x-(2*feval(f,x))/(w+(w/abs(w))*sqrt(w^2-4*feval(f,x)*d));

z=y;

y=x;

x=xi;

其实现的MATLAB代码如下:

fun=inline('

x^3+2*x-0.2'

);

paowuxian(fun,0,0.5,1,1e-6),formatshort

ans=

0.0995

 

3.用齿形法对下图的结构进行杆件截面优化设计:

节点处作用两种工况:

(1)P1=2000kN,P2=0kN;

(2)P1=0kN,P2=2000kN。

各杆采用同一材料制成,弹性模量E为常数,容许应力分别为:

[σ+]=2╳107kPa,[σ-]=1.5╳107kPa。

此结构为对称结构,工况也对称,所以A1=A3,计算时只取两个变量A1和A2,一种工况P1=2000kN,P2=0kN。

目标函数取为结构总重量:

在MATLAB中没有专门的函数实现齿形法求解线性方程,可通过编写Zigzag.m函数实现齿形法求解,其代码如下:

function[newA1,newA2,newA3,W,exitflag]=Zigzag(A1,A2,maxstep)

3

maxstep=96;

A=[A1;

A2];

U=[(1e-4)*(sqrt

(2)*A1+A2)/(sqrt

(2)*A1^2+2*A1*A2);

(1e-4)*(sqrt

(2)*A1)/(sqrt

(2)*A1^2+2*A1*A2)];

w=sqrt

(2)*2*A1+A2;

w1=w;

w2=w;

newA1=A1;

newA2=A2;

newA3=A1;

symspl;

W=vpa(w*p*l);

A11=A1;

A13=A1;

A22=A2;

A24=A2;

exitflag=-1;

fork=1:

maxstep

ifw2>

w1

newA1=A11;

newA2=A22;

newA3=A11;

W=vpa(w1*p*l,4);

exitflag=1;

u1=max(U);

A=A.*u1;

A11=A

(1);

A22=A

(2);

U=U./u1;

U=roundn(U,-4);

w=sqrt

(2)*2*A11+A22;

w1=w;

ifw1>

w2

newA1=A13;

newA2=A24;

newA3=A13;

W=vpa(w2*p*l,4);

exitflag=0;

A=A.*U;

A1=A

(1);

A2=A

(2);

U=[(1e-4)*(sqrt

(2)*A1+A2)/(sqrt

(2)*A1^2+2*A1*A2);

A13=A

(1);

A24=A

(2);

w=sqrt

(2)*2*A13+A24;

w2=w;

clear;

A1=1e-4;

A2=1e-4;

[Anew1,Anew2,Anew3,W,exitflag]=Zigzag(A1,A2)

Anew1=

7.7346e-05

Anew2=

4.5309e-05

Anew3=

W=

0.0002641*l*p

exitflag=

0

4.用修改齿形法对结构进行杆件截面优化设计。

在MATLAB中没有专门的函数实现修改齿形法求解线性方程,可通过编写IZigzag.m函数实现修改齿形法求解,其代码如下:

function[newA1,newA2,newA3,W,exitflag]=IZigzag(A1,A2,v,maxstep)

5

x1=U

(1);

x2=U

(2);

y1=1-v*(1-x1);

y2=1-v*(1-x2);

U=[y1;

y2];

v=0.5;

[Anew1,Anew2,Anew3,W,exitflag]=IZigzag(A1,A2,v)

7.8168e-05

4.2839e-05

0.0002639*l*p

5.用满应力法对结构进行杆件截面优化设计

在MATLAB中没有专门的函数实现满应力法求解线性方程,可通过编写Full_Stressed.m函数实现满应力法求解,其代码如下:

function[newA1,newA2,newA3,exitflag]=Full_Stressed(A1,A2,wucha,maxstep)

4

wucha=1e-6;

m=U

(1);

h=1-m;

n=U

(2);

j=1-n;

ifabs(h)<

wucha&

&

abs(j)<

wucha

(1e-4)*(sqrt

(2)*A1)/(sq

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 公共行政管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1