syms a1 a2 a3 a4 a5 a6 a7 a8 a9
syms q1 q2 q3 q4 q5 q6 q7 q8 q9
>> y=[4.93 4.98 5.1 5.2 5.3 5.41 5.52 5.62 5.68 5.78 5.89 6 6.1 6.21 6.32 6.42 6.53 6.58 6.68 6.78 6.89 6.99 7.09 7.19 7.29 7.4 7.5 7.6 7.69 7.79 7.91 8.01 8.09 8.18 8.31 8.4 8.49 8.61 8.69 8.81 8.89 9.01 9.09 9.2 9.31 9.39 9.5 9.6 9.71 9.81 9.9 9.99 10.11
];
>> x=[4.78 5.22 6.09 6.96 7.83 8.7 9.57 10.43 10.87 11.74 12.6 13.48 14.35 15.22 16.09 16.96 17.83 18.26 19.13 20 20.87 21.74 22.61 23.48 24.35 25.22 26.09 26.96 27.83 28.7 29.57 30.43 31.3 32.17 33.48 34.35 35.22 36.52 37.39 38.7 39.57 40.87 41.74 43.04 44.35 45.22 46.52 47.83 49.13 50.43 51.74 53.04 54.78
];
>> c1=-a1.*x(6).^3+(a4-a2).^x(6).^2+(a5-a3).^x(6)+a6;
>> c2=-a7.*x(45).^3+(a4-a8).^x(45).^2+(a5-a9).^x(45)+a6;
>> q=0;
>> for i=1:6;
q=q+(y(i)-(a1.*x(i).^3+a2.*x(i).^2+a3.*x(i)+c1)).^2;
end
>> for i=7:44;
q=q+(y(i)-(a4.*x(i).^2+a5.*x(i)+a6)).^2;
end
>> for i=45:53;
q=q+(y(i)-(a7.*x(i).^3+a8.*x(i).^2+a9.*x(i)+c2)).^2;
end
>> q1=diff(q,a1);
>> q2=diff(q,a2);
>> q3=diff(q,a3);
>> q4=diff(q,a4);
>> q5=diff(q,a5);
>> q6=diff(q,a6);
>> q7=diff(q,a7);
>> q8=diff(q,a8);
>> q9=diff(q,a9);
>> [a1 a2 a3 a4 a5 a6 a7 a8 a9]=solve(q1,q2,q3,q4,q5,q6,q7,q8,q9,0,0,0,0,0,0,0,0,0);
为什么无法算出结果
要计算的结果是a1,a2,……,a9,如果能解释清楚,分数可以加倍哦
matlab求解数学问题
答案:1 悬赏:70 手机版
解决时间 2021-01-31 12:41
- 提问者网友:捧腹剧
- 2021-01-30 20:43
最佳答案
- 五星知识达人网友:三千妖杀
- 2021-01-30 21:43
1、计算需要的时间太长了。2、最后一行的;需要去掉,才会显示结果。需要显示的行末不能有;
我做了如下测试:
最后一行[a1 a2 a3 a4 a5 a6 a7 a8 a9]=solve(q1,q2,q3,q4,q5,q6,q7,q8,q9,0,0,0,0,0,0,0,0,0);
改为a1=solve(q1,0),很快得出答案a1=(107036876930031446614075191924663757*a2)/1378034003322077704683481146957613750 + (358666849975984641917693284319232*a3)/27560680066441554093669622939152275 + (2473397077861082692492374048768*a6)/1102427202657662163746784917566091 + (2473397077861082692492374048768*(a4 - a2)^(87/5))/1102427202657662163746784917566091 + (2473397077861082692492374048768*(a5 - a3)^(87/10))/1102427202657662163746784917566091 - 62529995439239282138833871699968/5512136013288310818733924587830455
你迭代了53次,每次都对于一个10左右的数字有幂运算,算出来的数字肯定是很大的,我怀疑你的题目中,是对于a1到a9的未知数的方幂,而不是系数x(i),y(i)的方幂。
比如这个式子c1=-a1*x(6)^3+(a4-a2)^x(6)^2+(a5-a3)^x(6)+a6。其实不需要写点乘,因为a1不是矩阵,是一个自变量,x(6)是一个确定的数,也不是矩阵,所以所有的点乘号都要去掉。
其次,这个式子表达的是a1等自变量的系数有3、2、1的方幂计算,我怀疑是a1等自变量的方幂而不是系数。根据你的程序,a1-a9才是自变量,希望你再检查一下,设置变量的时候最好以A、B、C等为矩阵名,a、b、c等为向量名,x、y、z等为变量名,养成良好的习惯,至少也要有自己的一套设置习惯才好。
如有不当,尽情驳回。
谢谢~
我做了如下测试:
最后一行[a1 a2 a3 a4 a5 a6 a7 a8 a9]=solve(q1,q2,q3,q4,q5,q6,q7,q8,q9,0,0,0,0,0,0,0,0,0);
改为a1=solve(q1,0),很快得出答案a1=(107036876930031446614075191924663757*a2)/1378034003322077704683481146957613750 + (358666849975984641917693284319232*a3)/27560680066441554093669622939152275 + (2473397077861082692492374048768*a6)/1102427202657662163746784917566091 + (2473397077861082692492374048768*(a4 - a2)^(87/5))/1102427202657662163746784917566091 + (2473397077861082692492374048768*(a5 - a3)^(87/10))/1102427202657662163746784917566091 - 62529995439239282138833871699968/5512136013288310818733924587830455
你迭代了53次,每次都对于一个10左右的数字有幂运算,算出来的数字肯定是很大的,我怀疑你的题目中,是对于a1到a9的未知数的方幂,而不是系数x(i),y(i)的方幂。
比如这个式子c1=-a1*x(6)^3+(a4-a2)^x(6)^2+(a5-a3)^x(6)+a6。其实不需要写点乘,因为a1不是矩阵,是一个自变量,x(6)是一个确定的数,也不是矩阵,所以所有的点乘号都要去掉。
其次,这个式子表达的是a1等自变量的系数有3、2、1的方幂计算,我怀疑是a1等自变量的方幂而不是系数。根据你的程序,a1-a9才是自变量,希望你再检查一下,设置变量的时候最好以A、B、C等为矩阵名,a、b、c等为向量名,x、y、z等为变量名,养成良好的习惯,至少也要有自己的一套设置习惯才好。
如有不当,尽情驳回。
谢谢~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯