全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
6152 2
2012-06-01
拟合图
有一非线性方程为:
               -5022.5+1.3535*S-8.985*10E(-5)*S^2+0.1257*T-5.574*10E(-5)*S*T+5.106*S^2*T+4P/S+0.0028P-23.079*P*S=0

      想令1.  P=20时,T在(0,30)连续变化的前提下求出对应S的值,并拟合出相应的曲线;
            2.  P=50时,T在(0,30)连续变化的前提下求出对应S的值,并拟合出相应的曲线;
     请问这种情况在1stopt可以实现吗,请高手帮忙,谢谢!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-6-2 05:42:33
用Maple解,感觉好像不对呀。我也搞不懂了。用Mathematica解也不对呀。比如,p=10,t=15,{{s -> -6.74065}, {s -> 0.00796431}, {s -> 9.72834}}
附件列表
www.jpg

原图尺寸 124.41 KB

www.jpg

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-6-3 13:09:30
nkunku 发表于 2012-6-2 05:42
用Maple解,感觉好像不对呀。我也搞不懂了。用Mathematica解也不对呀。比如,p=10,t=15,{{s -> -6.74065},  ...
我用matlab求解后发现只能拟合出下面部分的曲线,上面部分的得不到,如下所示。(我对方程进行了一些修改)
代码:
clc
clear
syms d T S
f=-5022.5+1.3532*S-8.985*10^(-5)*S^2+0.1257*T-5.7545*10^(-5)*S*T+5.105652*10^(-9)*S^(2)*T+4*d+0.002752*d*S-2.308*10^(-7)*d*S^(2);
d=50;  
g1=solve(subs(f),S);
d=100;
g2=solve(subs(f),S);
d=110;
g3=solve(subs(f),S);
d=120;
g4=solve(subs(f),S);
d=130;
g5=solve(subs(f),S);
d=140;
T=1:.1:300000;
S1=subs(g1);
S2=subs(g2);
S3=subs(g3);
S4=subs(g4);
S5=subs(g5);
y1=S1(1,:);  
y2=S2(1,:);
y3=S3(1,:);
y4=S4(1,:);
y5=S5(1,:);
plot(T,y1,T,y2,T,y3,T,y4,T,y5)
得到了下面的图:
未命名.jpg

但如果我的d值为(50,100,500,1000,2000,3000)这样的情况的话,matlab会提示超过memory,或者拟合出来的曲线像下面的这样
拟合图2
代码如下:
clc
clear
syms d T S
f=-5022.5+1.3532*S-8.985*10^(-5)*S^2+0.1257*T-5.7545*10^(-5)*S*T+5.105652*10^(-9)*S^(2)*T+4*d+0.002752*d*S-2.308*10^(-7)*d*S^(2);
d=1000;  
g1=solve(subs(f),S);
d=1100;
g2=solve(subs(f),S);
d=1200;
g3=solve(subs(f),S);
d=1500;
g4=solve(subs(f),S);
d=2000;
g5=solve(subs(f),S);
d=2500;
g6=solve(subs(f),S);
d=3000;
T=1:.1:300000;
S1=subs(g1);
S2=subs(g2);
S3=subs(g3);
S4=subs(g4);
S5=subs(g5);
S6=subs(g6);
y1=S1(1,:);  
y2=S2(1,:);
y3=S3(1,:);
y4=S4(1,:);
y5=S5(1,:);
y6=S6(1,:);
plot(T,y1,T,y2,T,y3,T,y4,T,y5,T,y6)

请问一下,这是拟合方程的原因还是其他的原因呢?谢谢~~~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群