如何根据已知数据和函数类型用matlab求解函数?
答案:2 悬赏:10 手机版
解决时间 2021-03-21 03:03
- 提问者网友:沉默的哀伤
- 2021-03-20 04:55
如何根据已知数据和函数类型用matlab求解函数?尤其是M文件的建立和lsqcurvefit函数的使用。
最佳答案
- 五星知识达人网友:千杯敬自由
- 2021-03-20 05:57
求解方法:
1、建立M文件myfun.m
function y = myfun(x)
y=a(1)*(1+(a(2)^2)*exp(x.*a(3))+cos(x)).*sqrt((1-(a(2)^2))*x)./x.^2;
2、在窗口命令中执行下列命令
>> x=[1,2,3,4,5,6,7];
>> y=[0.0183 0.0043 0.0038 0.0087 0.0211 0.0521 0.1360];
>> b=rand(1,3);
>> a=lsqcurvefit(myfun,b,x,y);
>>c=a(3)
>>b=a(2)
>>a=a(1)
1、建立M文件myfun.m
function y = myfun(x)
y=a(1)*(1+(a(2)^2)*exp(x.*a(3))+cos(x)).*sqrt((1-(a(2)^2))*x)./x.^2;
2、在窗口命令中执行下列命令
>> x=[1,2,3,4,5,6,7];
>> y=[0.0183 0.0043 0.0038 0.0087 0.0211 0.0521 0.1360];
>> b=rand(1,3);
>> a=lsqcurvefit(myfun,b,x,y);
>>c=a(3)
>>b=a(2)
>>a=a(1)
全部回答
- 1楼网友:逃夭
- 2021-03-20 07:11
恕我冒昧,我感觉你这道题有点问题,因为首先我想通过dsolve函数来解决,不过结果显示函数u非可以用函数式表达出来的:
>> u=dsolve('200*d2u=-300*u+5000*u^3','u(0)=0','du(0)=10')
warning: explicit solution could not be found.
> in dsolve at 156
u =
[ empty sym ]
于是用数值解法,编程如下:
function dy=weifen1(t,y)
dy=zeros(2,1);
dy(1)=y(2);
dy(2)=-1.5*y(1)+25*y(1)^3;
存为m-file后,运行下列命令:
>> [t,y]=ode15s('weifen1',[0 3000],[0 10],[]);
warning: failure at t=3.115374e-001. unable to meet integration tolerances without reducing the step size below the
smallest value allowed (8.881784e-016) at time t.
> in ode15s at 819
结果显示超出了计算机的处理范围。有可能是我能力有限,但真的解不出,不好意思..
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯