matlab编程求教,含参变量的方程,给出一系列的参变量的值,求方程相应的解

例如求解上述方程,a为参变量,给定a的一系列值如,a=2:50,如何求出相应的解X。

若直接给定a等于某个值,得到的X解包含正负实数解和复数解,我限定了只要实数解,得到一正一副,再限定只要其中的正数解,由于正数解都在第一个,我就写了X=(X(1,1)).
但一旦直接在开头写a=2:50,运行就会报错

楼上 @兔子和小强 从理论上进行了分析,下面我从另外的角度进行说明。

 

1、可以用控制理论里面的根轨迹方法来求出a=2:50时方程根的分布情况:

s=tf('s');
rlocus(s^7/(s^2+1)^7,2:50)

由图可见,对于给定的a值,方程根本就没有实数根,更不要说正数解了。如果把a的范围放大到0~inf的范围,得到完整的根轨迹如下:

rlocus(s^7/(s^2+1)^7)
ylim([-3 3])
axis equal

可见,对于a>0,方程不存在正数根。对于a<0的情况,可以用下面的命令绘图:

rlocus(-s^7/(s^2+1)^7)
ylim([-3 3])
axis equal

可见,只有a<0的时候,方程才可能出现正数解(进一步可以确定,方程存在正数解的要求大约是a<-128)。

 

2、上面用到了控制系统工具箱的rlocus函数,如果未安装该工具箱,或者对根轨迹的概念不熟悉,也可以用roots函数直接求根:

syms a x
f=a*x^7+(x^2+1)^7;
r=arrayfun(@(a){roots(sym2poly(subs(f)))},2:50);
plot(cell2mat(r).')

绘图结果与上面第一张图一致。

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-03-19
该方程的解是 x^2 - a^(1/7)x + 1 = 0 的解。利用二次方程根的公式可直接写出解。
但是,当 a = 2:50 时,Δ<0,方程不存在实数解。本回答被网友采纳

matlab编程求教,含参变量的方程,给出一系列的参变量的值,求方程相应的...
rlocus(-s^7\/(s^2+1)^7)ylim([-3 3])axis equal 可见,只有a<0的时候,方程才可能出现正数解(进一步可以确定,方程存在正数解的要求大约是a<-128)。2、上面用到了控制系统工具箱的rlocus函数,如果未安装该工具箱,或者对根轨迹的概念不熟悉,也可以用roots函数直接求根:syms a xf=a*x^...

用matlab解含参变量的方程组
clear;syms x y a b;[a,b,x,y]=solve('x*sin(a*pi\/180)=y*sin(b*pi\/180),a+b=90,x=3,y=3')这样就可以了。clc;clear;syms a b;x=input('x=');y=input('y=');f1=a+b-90;f2=x*sin(a*pi\/180)-y*sin(b*pi\/180);S=solve(f1,f2);S.a S.b 这样就行了。。。

MATLAB求解参数方程得到含变量的解后怎么代入参数值,回答的好肯定给分...
syms x y x1 y1 x2 y2 x3 y3 radius;[x,y,radius]=solve('(x-x1)^2+(y-y1)^2=radius^2','(x-x2)^2+(y-y2)^2=radius^2','(x-x3)^2+(y-y3)^2=radius^2','x','y','radius')x1=0,y1=0,x2=1,y2=0;x3=0;y3=1.x=eval(x)y=eval(y)radius=eval(radius)...

Matlab求解含参数变量的三角函数方程
由于题主给出含参数变量的三角函数方程,使用Matlab的solve函数是无法得到其解析解,只能已知ay、ax、py、px、d6值,可以求其数值解。如使用其他的数学软件(如Maple),是可以得到其解析解。求解结果如下:

怎么用Matlab解方程?
1、打开matlab,首先定义变量x:syms x;2、matlab中solve函数的格式是solve(f(x), x),求解的是f(x) = 0的解。第一个例子,求解最常见的一元二次方程x^2-3*x+1=0:solve(x^2-3*x+1,x),解出的结果用精确的根式表示。3、matlab解出的根不仅包含实根,也包含复根,例如求解三次方程x^...

如何用matlab最小二乘法求解两个含参变量
令A=acos(a),B=sin(b),Y=y\/x,则Y=A+Bx,再套用线性回归公式就可以求得A、B,最后再解两个简单三角方程即可得到a、b。当然,对于任意给定的{x}和{y},A、B一定有解,但a、b不一定有解,比方求得的B=5的情况下b在实数范围内无解。

MATLAB怎么画y=(x-2)^2*(2* x+1)^4;的图求详细过程
方法一:用数组方式求解 第一步,给出x的取值范围,如 x∈[-2,2]。根据这范围,创建x数组。即x=-2:0.1:2,步长为0.1;第二步,计算x对应的y值。由于x是以数组的形式存在,所以采用点运算符计算y值。即 y=(x-2).^2.*(2*x+1).^4 第三步,用plot绘图函数,绘制y(x)图形,即 ...

MATLAB solve函数用法
MATLAB solve函数主要应用于求解等式和不等式的解集,包括单变量、多变量以及线性、非线性方程。使用语法包括:S = solve(eqn, var) 或 S = solve(eqn, var, Name, Value) 求解单变量方程。Y = solve(eqns, vars) 或 Y = solve(eqns, vars, Name, Value) 求解包含多个变量的方程。示例包括...

matlab求带参数二元方程组求得解中依然含未知数
因为你没有指定求解变量,所以得到结果就会这样。将solve()改成如下形式,就okl了。[T,t1]=solve('P*k - C*k - Cm*a + 2*a*g + C*a*g1 + T*a*a1 - 2*Cm*k*t1 - g*k*t0 + 4*g*k*t1 + 2*C*g1*k*t1 + 2*T*a1*k*t1=0','a1*t1*(a + k*t1) - 2*T=0...

matlab解方程组
Matlab可以通过符号计算工具箱或命令sym来解方程组。步骤如下:步骤一:创建符号变量和方程组。 使用syms函数创建符号变量,然后定义方程组的表达式。这些表达式应表示为一个等式或一个等式组的多个成员。例如,如果我们要解二元一次方程组,我们可以定义两个变量x和y,并用等于或不等于来表示它们的各种可能...

相似回答