matlab solve的用法已知x,y都是10*100的矩阵.现在想用下面的语句确定函数参数a,b,c.但是求不出来.请问如果下面的语句有错应该怎么改呢?for z=1:10x1=x(z,1);x2=x(z,50);x3=x(z,100);y1=y(z,1);y2=y(z,50);y3=y(z,100);

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/24 01:06:29
matlabsolve的用法已知x,y都是10*100的矩阵.现在想用下面的语句确定函数参数a,b,c.但是求不出来.请问如果下面的语句有错应该怎么改呢?forz=1:10x1=x(z,1);x2=x

matlab solve的用法已知x,y都是10*100的矩阵.现在想用下面的语句确定函数参数a,b,c.但是求不出来.请问如果下面的语句有错应该怎么改呢?for z=1:10x1=x(z,1);x2=x(z,50);x3=x(z,100);y1=y(z,1);y2=y(z,50);y3=y(z,100);
matlab solve的用法
已知x,y都是10*100的矩阵.现在想用下面的语句确定函数参数a,b,c.但是求不出来.请问如果下面的语句有错应该怎么改呢?
for z=1:10
x1=x(z,1);
x2=x(z,50);
x3=x(z,100);
y1=y(z,1);
y2=y(z,50);
y3=y(z,100);
[a,b,c]=solve('y1*(x1*a+b)=c*x1','y2*(x2*a+b)=c*x2','y3*(x3*a+b)=c*x3');
end

matlab solve的用法已知x,y都是10*100的矩阵.现在想用下面的语句确定函数参数a,b,c.但是求不出来.请问如果下面的语句有错应该怎么改呢?for z=1:10x1=x(z,1);x2=x(z,50);x3=x(z,100);y1=y(z,1);y2=y(z,50);y3=y(z,100);
matlab的运行结果是:        0            -8.0000            -8.5000 - 0.8660i  -0.0000 + 0.0000i  -8.5000 + 0.8660i  -0.0000 - 0.0000i上面的结果自身就是不正确的,我分析的原因是:matlab先求出了解析解,接着代入系数值,由于matlab运算精度低,系数又太多,公式极其复杂,从而导致结果失真过于严重mathematica运行结果显示:mathematica先求出解析解,接着精确代入系数值计算,也出现了数量级为-16的误差,有部分失真,但是这个失真很容易发现,而得到修正mathematica执行消去y的运算结果显示原方程组只能由三组解借助mathematica的结果分析,可以得出:matlab的运行结果中,并没有丢失一组解,而是解的失真太为严重达到了0.1,可以用下面的程序执行数值function s=sss(p) syms x ya=p(1); b=p(2); c=p(3); d=p(4); e=p(5); f=p(6); g=p(7);a1=simplify(c*x^2+c*x*y+(c*g-c*a-c*b+1)*x-a-e);a2=simplify(d*y^2+d*x*y+(d*g-d*a-d*b+1)*y-b-f); [x0,y0]=solve(a1,a2);s=[x0 y0] 这个程序运行速度快且结果准确,结果为[   0,   0][   0,  -8][ -13,   0]注:可以看到新的程序输出结果是矩阵形式,而老程序的输出不是,问题很可能和eval的使用有关.

改成:
for z=1:10
x1=x(z,1);
x2=x(z,50);
x3=x(z,100);
y1=y(z,1);
y2=y(z,50);
y3=y(z,100);
sol=solve('y1*(x1*a+b)=c*x1','y2*(x2*a+b)=c*x2','y3*(...

全部展开

改成:
for z=1:10
x1=x(z,1);
x2=x(z,50);
x3=x(z,100);
y1=y(z,1);
y2=y(z,50);
y3=y(z,100);
sol=solve('y1*(x1*a+b)=c*x1','y2*(x2*a+b)=c*x2','y3*(x3*a+b)=c*x3',‘a’,'b','c');
aa=sol.a;
bb=sol.b;
cc=sol.c;
end
若有疑问,继续追问

收起

matlab solve用法想知道matlab中solve 和 subs的基本用法,现在有几个方程,想通过这些方程导出y关于x的表达式,可以做到么 用matlab中的solve解方程组,怎样保留其中一个符合条件的解%例如:f1 = (x - x1)/(a-x1) - (y-y1)/(b-y1);f2 = (x-x1)^2+(y-y1)^2 - r^2; %两个方程,其中a b r x1 y1都是已知量[x,y] = solve(f1,f2); %用solve解方程组x=double( matlab solve的用法已知x,y都是10*100的矩阵.现在想用下面的语句确定函数参数a,b,c.但是求不出来.请问如果下面的语句有错应该怎么改呢?for z=1:10x1=x(z,1);x2=x(z,50);x3=x(z,100);y1=y(z,1);y2=y(z,50);y3=y(z,100); matlab中solve函数的相关用法solve函数可以求解带有积分的高次多项式么?比如说a=9;b=8;c=2;syms x y;k=solve('vpa(int(b/(y-x)^2+a/(y-x)^2+b,c,a))+9=0','y');k=subs(k)我试了后说是 is not a valid expression or equation.应 Matlab中solve函数的特殊应用y=f(x);solve('y=0','x');因为f(x)非常复杂,需要定义几个函数.那么用solve的时候如何实现呢? matlab的solve用法定义syms x y a1 a2equ1=1/120 - ((2*a2)/81 + (pi*a1)/12 + pi^2*(a2/405 + 1/12) + (pi^3*a1)/120)/pi^4equ2=-(a2/128 + (2*pi*a1)/81 + pi^2*(a2/960 + 2/81) + (pi^3*a1)/405 - pi^4/405)/pi^5输入solve('方程1', '方程2', 'a1', 'a1') 怎么用Matlab解二元一次方程组的数值解方程组是1+y*d*(x-1)/(6.283*b*a*(2*x+1))=y(x-1)*b-N*h*y*(d+y*c)=0其中a,b,c,d,h,N为已知量.求解x、y.我用Matlab计算:[x,y] = solve('1+y*d*(x-1)/(6.283*b*a*(2*x+1))=y','(x-1)*b-N*h*y*(d+ matlab solve的用法S=dsolve('Dx=450*(90*t-x)/sqrt((90*t-x)^2+(120-y)^2),Dy=450*(120-y)/sqrt((90*t-x)^2+(120-y)^2)')结果:[y(t)=120,x(t)=450*t+C1,y(t)=120,x(t)=-450*t+C1,[((90*t-x(t))^2/diff(x(t),t)^2)^(1/2)=(90*t-x(t))/diff(x(t),t),y(t)=(120*dif 在matlab下用符号计算求解一个方程组,如s=solve(‘x+a+y=0’,'x+b-y=0','x','y')a,b是前面已经求出来的已知值,可是计算出来的x和y还是带参数a,b的.怎样让x,y得到直接的数值呢? 如何用matlab解下面的方程组y=2.8761*(x^(-5.988)-1)^(0.334)x=0.91937-0.65156*e^(-715.49*y)用solve[x,y]=solve('y=2.8761*(x^(-5.988)-1)^0.334','x=0.91937-0.65156*e^(-715.49*y)')最后解的x =[ empty sym ]y =[]如何用matlab求出真正的解 matlab solve函数 xmaxr=solve(dydx,x)其中dydx是一个x和r的多项式 用MATLAB如何解指数方程matlab中用solve解 下面的方程解不了,solve('x^0.65-0.1875*x^-0.35+1.991-1.991*x=0.8125','x') matlab中solve的用法我的函数如下function s=sss(p)syms x y;equation1=sym('c*x^2+c*x*y+(c*g-c*a-c*b+1)*x-a-e=0');equation2=sym('d*y^2+d*x*y+(d*g-d*a-d*b+1)*y-b-f=0');[x0,y0]=solve(equation1,equation2,'x','y');a=p(1);b=p(2);c=p(3);d=p(4);e=p(5) matlab解线性方程f(x)为一元多次方程,题目为y=f(x),在已知y值(不为零)的基础上求x的值.我会建立方程,也能画出图,但是不知道如何求X.solve命令似乎用不来,fzero能用,但是求的是y=0时x的值,这 关于MATLAB solve的一个问题请看以下运算结果:这里NodeE 和distance都是有值的,但用solve计算[x1,y1]=solve('(x-NodeE(1,1))^2+(y-NodeE(2,1))^2=distance(1)^2','(x-NodeE(1,2))^2+(y-NodeE(2,2))^2=distance(2)^2','x,y')却出现将No matlab中,定义了y='x+1',如果调用solve(‘eq1’,即要求solve('x+1=0','x'). 求方程组x^2+y^2=1','x*y=2的解的matlab程序(使用solve)syms x y[x,y]=solve('x^2+y^2=1','x*y=2')得不出结果 matlab求方程组的解用[x,y] = solve('(x-1)^2+(y-2)^2-25=0','y-2x+1=0')求解方程的解的时候报错,出现以下信息>> [x,y] = solve('(x-1)^2+(y-2)^2-25=0','y-2x+1=0')Error using ==> solve>getEqns at 182' y-2x+1=0 ' is not a valid expressi