作业帮 > 综合 > 作业

matlab怎么解方程组

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/14 03:25:16
matlab怎么解方程组
比如A=[1 2 3 4 5 6 ]
for i=1:6
x=0:2000;
y1=x.^2*A[i]
y2=x.^5+500
end
求这两个方程的交点有什么好办法吗,最好能把他们的交点x返回到一个数组中
clear
clc
A=[1 2 3 4 5 6 ];
x=0:2000;
y2=x.^5+500;
for i=1:6
y1=x.^2*A(i);
end
% clear b
t=0;
for i=1:length(x)
if y1(i)==y2(i)
t=t+1;
b(t)=x(i);
end
end
%b即为两方程组交点X返回的数组
只是这两方程好像无解哦,你再调试下,看看你原始函数表达y1=x.^2*A(i);有无问题?这个循环下来等于是y1=x.^2*A(6);(将前面的全部覆盖了).如果你的y1函数是变动的话,可以将后面的
for i=1:length(x)循环嵌套在for i=1:6中即可实现你想要的.
有问题咱们再商量.
再问: 其实我是想通过这个做个别的,你能帮我看下这个吗 matlab求非线性方程y1和y2的交点,未知数是nx YY=[31.6 32.3 33.4 35.1 36.2 37.2 37.5 39.0 39.4... 40.9 40.1 37.1 34.0 33.6 29.5 24.1 17.5 9.6 ]/1000; f=20; tt=0; for i=1:1:18; nx=1000:1:neh; tt=max(tt)+nx/18; y11=Memax-((Memax-Meh)*((ne-nx).^2))/((neh-ne).^2)-Mg-Mz1-Mc; y22=YY(i)*(nx.^2)*(D.^5); end
再答: 你的代码nx=1000:1:neh;中neh=?及y11与y22公式中的很多参数未知。且tt并未用到。当然如果你的代码本来有其他相关子函数M文件支持或者那些参数已知的话。 按照你现在的代码只需在源码底下增加: % clear b t=0; for i=1:length(nx)%未知数是nx if y11(i)==y22(i) t=t+1; b(t)=nx(i);%将未知数放入数组中 end end b %b即为两方程组y11与y22交点nx返回的数组 有问题咱们可以再探讨。
再问: neh 是2000,其它参数n1=0.81;Pg=6.5;Qtg=260;Pz=10;Qtz=75;Pc=1.2;Qtc=110;neh=2000; Memax=400;ne=1600;D=0.29;Mg1=(10.^3)*0.5*Qtg/(2*pi*neh*n1);Mz1=(10.^3)*0.5*Qtz/(2*pi*neh*n1); Mg =(10.^3)*Pg*Qtg/(2*pi*neh*n1);Mz =(10.^3)*Pz*Qtz/(2*pi*neh*n1); Mc =(10.^3)*Pc*Qtc/(2*pi*neh*n1);Meh=(9550*7.35)/neh; 这是前边的参数,因为nx是按1增加,所以y11不可能等于y22,只能是近似为相等,是求最优化的问题呀
再答: 方法1,按照你原来的想法编程,只是将条件 if y11(i)==y22(i)改为了if abs(y11(i)-y22(i))