有限元 弧长法 matlab,有没有有关弧长法的程序!!!

% % % This is a code of Pseudo-Arc Length Continuation Method

%  the method can be used for solving the nonlinear equations

%  the principle can re found in some text books

clc

clear

% ------------------------开始预测--------------

k=1;

for ds=0.02:0.02:9

a0=1;

x0=3;

y0=2.6458;

a=a0;

x=x0;

y=y0;

step=5;

for i=1:1

DF(1,1)=2*a*x;

DF(1,2)=2*y;

DF(1,3)=x^2;

DF(2,1)=2*x;

DF(2,2)=-2*y;

DF(2,3)=0;

DF;

J1=DF(:,2:end);

J2=DF(:,1);

K=DF(:,3);

J2=[J2,K];

J3=DF(:,1:2);

J1=((-1)^(1+1))*det(J1);

J2=((-1)^(2+1))*det(J2);

J3=((-1)^(3+1))*det(J3);

vv=[J1,J2,J3]';

v=vv/norm(vv);

end

% --------------预测结束-------------------

% -------------开始校正----------------------

x=3;

y=3;

a=2;

p=[x,y,a]';

F(1,1)=a*x^2+y^2-16;

F(1,2)= x^2-y^2-2;

F(1,3)=(x-x0)*v(1,1)+(y-y0)*v(2,1)+(a-a0)*v(3,1)-ds;

delta=1e-6;

epsilon=1e-6;

for i=1:100

J=zeros(3,3);

J(1,1)=2*a*x; J(1,2)=2*y; J(1,3)=x^2;

J(2,1)=2*x; J(2,2)=-2*y;  J(2,3)=0;

J(3,1)=v(1,1); J(3,2)=v(2,1);  J(3,3)=v(3,1);

q=p-(J\F');

x=q(1);

y=q(2);

a=q(3);

F(1,1)=a*x^2+y^2-16;

F(1,2)= x^2-y^2-2;

F(1,3)=(x-x0)*v(1,1)+(y-y0)*v(2,1)+(a-a0)*v(3,1)-ds;

F;

Z=F;

err=norm(q-p);

relerr=err/(norm(q)+eps);

p=q;

Y=Z;

if (err

q

break

end

end

q

ds;

x0=q(1);

y0=q(2);

a0=q(3);

c(k)=a0;

b(k)=x0;

k=k+1;

a=q(3,1);

end

b

c

plot(c,b)

hold on

% a=c

% x=sqrt(18./(a+1))

% a=2:-0.1:-1

% y=sqrt(18./(a+1)-2)

% plot(a,x,'o')

% hold on

%

a=-1:0.1:1

x=sqrt(18./(a+1))

plot(a,x,'o')

hold on

我找到了这个程序,不知道对不对

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值