跪求,MATLAB非线性有限元程序!本人要用MATLAB编一个简单的材料非线性的二维问题,谁有非线性的程序啊?

2025-03-21 22:17:16
推荐回答(1个)
回答1:

在Matlab下输入:edit,然后将下面两行百分号之间的内容,复制进去,保存
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function y=zhidao_kuzub(a,x)
%其中a,b,c分别用a(1),a(2),a(3)代替
y=a(1)+a(2)./(x+a(3));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

以下是测试:在Matlab下面输入:
%先由已经的x和已知的a,b,c来产生y,然后通过x,y
%验证一下:能否得到我们刚才所选用的参数a,b,c
x=1:20;

a=1;
b=2;
c=3;

y=zhidao_kuzub([a,b,c],x);
[A,res]=lsqcurvefit('zhidao_kuzub',ones(1,3),x,y);
A

得到的结果:
A =
1.0029 1.9451 2.9007
跟a,b,c的值大致一样。

以下是你的问题:
你设好x,y后,在Matlab下输入:
[A,res]=lsqcurvefit('zhidao_kuzub',ones(1,3),x,y);
A

就可以了。