作业帮 > 综合 > 作业

哪位大神帮我看看这条matlab程序错在哪里?

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/05/12 14:35:59
哪位大神帮我看看这条matlab程序错在哪里?

clear

r=0.3894;

n5_min=1200;

n5_max=4400;

n5=[n5_min:200:n5_max];

Te=xlsread('uamax-Te.xls');

i0=5.286;

ig5=1;

eta=0.81;

m=4290;

G=m*9.8;

Cd=0.65;

A=6.406;

f=0.015;

ua5=0.377*r.*n5/ig5/i0;

Ft5=Te*i0*ig5*eta/r;

plot(ua5,Ft5);

hold on;

B=polyfit(Ft5,ua5,5);

disp('拟合多项式系数')

fprintf(1,'%.17f\n',B)

ua5=0.377*r.*n5/ig5/i0;

Fw=Cd.*A.*ua5.^2/21.15;

Ff=f*G;

Fz5=Fw+Ff;

plot(ua5,Fz5,'r-');

C=polyfit(Fz5,ua5,5);

disp('拟合多项式系数')

fprintf(1,'%.17f\n',C)

ua=80:0.1:90;

Ft=B(1,1)+B(1,2)*ua+B(1,3)*ua.^2+B(1,4)*ua.^3+B(1,5)*ua.^4+B(1,6)*ua.^5;

Fz=C(1,1)+C(1,2)*ua+C(1,3)*ua.^2+C(1,4)*ua.^3+C(1,5)*ua.^4+C(1,6)*ua.^5;

solve('Fz-Ft','ua')

最后运行结果,图可以出来,多项式系数可以拟合出来,唯独最后的solve函数无解……如下图:

这是什么原因啊?图线上明明在80~90的范围内有交点的.


哪位大神帮我看看这条matlab程序错在哪里?
建议数值方法求解.
因为5次及以的上方程没有解析解.
再问: 您能教教我怎么求吗?谢谢了!
再答: 我写一个示意,自己来让他运行起来。% 求两个函数的交点
B = [1 2 3 4 5 6];
C = [6 5 4 3 2 1];
f1 = @(ua) B(1,1)+B(1,2)*ua+B(1,3)*ua.^2+B(1,4)*ua.^3+B(1,5)*ua.^4+B(1,6)*ua.^5;
f2 = @(ua) C(1,1)+C(1,2)*ua+C(1,3)*ua.^2+C(1,4)*ua.^3+C(1,5)*ua.^4+C(1,6)*ua.^5;
% 绘图
xs = (0:0.01:1.5).';
y1s = f1(xs);
y2s = f2(xs);
plot(xs,y1s,xs,y2s)
% 求解
eqn = @(x) f1(x)-f2(x);
result_x1 = fzero(eqn, 0.8) % 交点横坐标
result_y1 = f1(result_x1) % 交点纵坐标