百度
360搜索
搜狗搜索

matlab解方程组含变量,用matlab解含参变量的方程组详细介绍

本文目录一览: 用matlab解含参变量的方程组

lol..我跑了一下可以运行。。
a=2;
b=4;
syms
x
syms
y
p=a*x^2+b*y
q=b*y-a/x
[x,y]=solve('p+1=2*x*q','q*y=p/2','x','y')
p
=
2*x^2
+
4*y
q
=
4*y
-
2/x
x
=
(p
+
1)/(2*q)
y
=
p/(2*q)
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 定义变量,再用solve解方程。如:
syms x
x=solve(x^2-5*x+2==0)
结果是:
x =
5/2 - 17^(1/2)/2
17^(1/2)/2 + 5/2

matlab求解一元二次方程,带变量的

可以的,
假设行向量x=(x1,x2,。。。,xn),y=(y1,y2,。。。,yn),
那么x+ty
=
(x1+ty1,x2+ty2,...,xn+tyn);
||x+ty||^2=(x+ty)*(x+ty)'
=
c
此公式中,(x+ty)*(x+ty)'就是一个矩阵的乘法,其结果是一个包含t的值。
这样一来,代入上式中,很容易求的。
存在问题:
1、要解的方程不能写在字符串里面,那样变量t不能起作用;
2、方程中0.2x^2项缺乘号;
3、关于x的二次方程有两个根,需要选择其中一个才能进行迭代。
建议代码:
x0=1;syms xfor t=0:0.2:2 x0 = solve(-x+x0-0.2*x^2+0.2*t,x); x0 = max(double(x0))end

matlab中求解方程组求解出的值如何赋予变量

ep1 = '...';
ep2 = '...';
ep3 = '...';
ep4 = '...';
ep5 = '...';
[a,b,c,d] = solve(ep1,ep2,ep3,ep4,ep5,'a,b,c,d')

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

该方程的解是 x^2 - a^(1/7)x + 1 = 0 的解。利用二次方程根的公式可直接写出解。
但是,当 a = 2:50 时,Δ<0,方程不存在实数解。
楼上 @兔子和小强 从理论上进行了分析,下面我从另外的角度进行说明。
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 xf=a*x^7+(x^2+1)^7;r=arrayfun(@(a){roots(sym2poly(subs(f)))},2:50);plot(cell2mat(r).')绘图结果与上面第一张图一致。

matlab如何求解带变量的约束方程

首先应当说明,你所给的约束条件0
<x
0 就是无解的,因为无论你给一个多小的正数,把它除以2就比它更小。

就这种含有附加参数的优化问题而言,主要有三种方法:

1、简单的一点的情况可以直接用arrayfun配合匿名函数,例如:

A=0:10;arrayfun(@(a)fmincon(@(x)a*x^2-3*x+2,0,[],[],[],[],0,1),A)

2、复杂一点的情况可以用嵌套函数(nested function),大致结构如下:

function mainA = ...for a=A fmincon(@objfun,...end function y = objfun(x) y = a*x; % 在子函数中可以使用主函数的变量 end end

3、传统做法是通过传递附加参数的方式,类似fmincon之类的大多数函数都支持附加参数。主要在MATLAB 7.0之前用这种方式(那时没有匿名函数、嵌套函数、arrayfun等手段),现在用的比较少了。
</x

MATLAB solve解方程,已经赋值变量,结果仍然还有变量

出在问题原因有:
1、声明变量错误,变量应该写所求的变量。正确的写法
syms S1 Sd Sdp;
2、 solve 命令函数 书写错误(多了单引号)。正确的写法
[S1,Sd,Sdp]=solve(0.5744==log(1500)/(log(1500)+S1),S1==Sdp+Sp,9==Sdp+3+Sd,'S1','Sd','Sdp')
运行下列代码
>>syms S1 Sd Sdp;>>PR1=0.57;Sp=3;>>[S1,Sd,Sdp]=solve(0.5744==log(1500)/(log(1500)+S1),S1==Sdp+Sp,9==Sdp+3+Sd,'S1','Sd','Sdp')
>> S1=vpa(S1,10)
>> Sd=vpa(Sd,10)
>> Sdp=vpa(Sdp,10)

用matlab来解有5个变量的微分方程组

如果是常微分方程,可以用dsolve函数。该函数可以解单变量常微分方程或者多变量常微分方程组,所以5个变量也不在话下。
调用格式如下:
[y1,...,yN] = dsolve(eqns) solves the system of ordinary differential equations eqns and assigns the solutions to the variables y1,...,yN.
如果有初始条件,可以把条件一起传给函数来定解:
[y1,...,yN] = dsolve(eqns,conds) solves the system of ordinary differential equations eqns with the initial or boundary conditions conds.
给出一个2个变量的微分方程组求解代码:
syms x(t) y(t)
z = dsolve(diff(x) == y, diff(y) == -x,x(0)==1,y(0)==1);
x=z.x,y=z.y
运行结果为:
x =
cos(t) + sin(t)
y =
cos(t) - sin(t)
R(0)=? 这里取200
N=? 这里取1000
function dy = odefun(t,y)
dy = zeros(5,1);
S=y(1);
E=y(2);
I=y(3);
R=y(4);
D=y(5);
k=0.2;
q=1/14;
r1=10;
r2=5;
p=0.6;
N=1000;
h=(r1*E+r2*(1-p)*I)/(N-E-p*I-R-D);
dy(1) = -h*S;
dy(2) = h*S-k*E;
dy(3) = k*E-q*I;
dy(4) = q*I;
dy(5) = (1-q)*I;
clear;
clc;
[T,Y] = ode45(@odefun,[0 12],[9000 500 500 200 2000]);

matlab求解一元三次含参变量方程

一元三次含参变量方程的matlab求解方法如下:
>> syms v3 c x c1 t1 v1 v2 c3 %变量声明
>> x=solve(8*v3^2*c3*x^3-2*v3*c1*t1*pi*v1*(v1+v2)^2*x+pi*c1*v1*(v1+v2)^3,'x')
运行结果(有三个解,一个实数解,一对共轭复数解)

阅读更多 >>>  reshape函数matlab,matlab中reshape是什么意思

网站数据信息

"matlab解方程组含变量,用matlab解含参变量的方程组"浏览人数已经达到21次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:matlab解方程组含变量,用matlab解含参变量的方程组的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!