matlab解二元方程组,matlab解多二元方程组,求助学霸
matlab解二元方程组,matlab解多二元方程组,求助学霸详细介绍
本文目录一览: 如何用matlab解一个二元方程
例子:解方程:
9x+8y=10 式1
13x+14y=12 式2
matlab代码为:
[x,y]=solve('9*x+8*y=10','13*x+14*y=12','x','y')
这个方法适用于n元m次方程组的。
MATLAB求解二元方程组
根据题意,求解二元方程组可以用fsolve来求解。
x0=[-5,-5];
func=@(x)[2*x(1)-x(2)-exp(-x(1)),-x(1)+2*x(2)-exp(-x(2))];
x=fsolve(func,x0)
运行结果
x=0.5671,y=0.5671
如何用matlab解出此二元二次方程组?程序怎么写
用matlab解二元二次方程组,可以直接用solve()函数来求解。例如:
>>[x,y] = solve('x^2*y^2 - 2*x - 1 = 0','x^2 - y^2 - 1 = 0')
运行结果
对于较复杂的方程,也可以用数值分析的方法,如fsolve()函数、二分法,牛顿法,求出其数值解。
1、首先看一下matlab求解方程的方法,指明所解方程的变量,然后指明方程,未知数和限制条件,最后求解方程。
2、来求解sin(x)=1方程,在matlab命令行窗口中输入symsx [x,params,conds]=solve
(sin(x)==1,'ReturnConditions', true) ,按回车键可以得到方程解,如下图所示。
3、转换一下,可以看到sin(x)=1方程的解是如下图所示。
4、也可以求解下面的一个方程,如下图所示。
5、输入syms a b c y x[x,y]=solve([a*x^2+b*y+c==0,a*x+2*y==4],[x,y])。
6、按回车键可以得到方程解,转换结果如下图所示。
带积分的二元方程组,未知数在积分中,能用matlab程序求解吗
如何用matlab求解带积分的二元方程组?分析题主给出的求解代码存在着下列几个方面的问题:
问题一,由于给出的被积函数含有未知变量x1、x2,所以用integral函数不能求其积分值,而出现出错警告;
解决思路,设置未知变量x1、x2分别为某具体值,然后再用integral函数求其积分值。
问题二,在这里使用 vpasolve函数求解变量x1、x2不是太恰当;由于方程里含有不完整的积分式,所以用 vpasolve函数无法得到解。
解决思路,使用fsolve函数求解其方程的数值解。
解决步骤:
1、创建求解带积分的二元方程组函数,f =func(x)。其内容:
f1=@(t)exp(-(1-x2).*t)./t; %定义方程
f2=@(t)exp(-x1*t)./t; %定义方程
S1=integral(f1,1,+inf); %求积分值
S2=integral(f2,1,+inf); %求积分值
f = [x1-S1,x2-(1- S2)]; %
2、用fsolve函数求解。即
sol = fsolve(@func,rand(1,2));
x1=sol(1) %x1的解
x2=sol(2) %x2的解
3、完善代码后运行可以得到
x1 = 0.52761
x2 = 0.47239
有多个K值,如何用matlab写解二元二次方程组的代码
function [x1,y1]=fun(k1,k2);
%输入你表中的k1,k2就会求出来了
syms x;
syms y;
[x2,y2]=solve(y*(100-x)/((40-x-y)^2)==k1,(x-y)*(100-x)/(40-x-y)/(10-x+y)==k2);
x1=double(x2);
y1=double(y2);
例子
>>[x,y]=fun(6.141e23,1.308e18);
x =
25.0000 - 0.0000i
40.0000 + 0.0000i
25.0000 + 0.0000i
y =
15.0000 + 0.0000i
0.0000
15.0000 - 0.0000i
PS.顺便~二元二次方程组最多可以有四组根~这里出现重根或者奇异根所以可能会出现3组,如果遇到0.0000i的话说明它很可能是实解,你忽略i就是了
含参数的方程组,在matlab中,可以使用solve函数求解。
解多元方程组,solve函数调用格式如下:
[y1,...,yN] = solve(eqns,vars)
给出示例如下:
syms a b k
[b, a] = solve(a^2/16 + b^2/4 == 1, b == k*a , b, a);%2元2次方程组
b=simple(b),a=simple(a)
解得椭圆与直线交点:
b =
4*k*(1/(4*k^2 + 1))^(1/2)
-4*k*(1/(4*k^2 + 1))^(1/2)
a =
4*(1/(4*k^2 + 1))^(1/2)
-4*(1/(4*k^2 + 1))^(1/2)
matlab解多二元方程组,求助学霸
将solve函数改用vpasolve函数,即
[dz,k]=vpasolve(fx1,fx2)
运行结果如下。
matlab求二元方程组数值解
clear
A=[1 2];
B=[3 1];
syms x y
eq=A-x.*(y-B)
[x,y]=solve(eq(1),eq(2),'x','y')
eq =
[ 1-x*(y-3), 2-x*(y-1)]
x =
1/2
y =
5
solve('A1=x*(y-B1)','A1=x*(y-B1)')
程序:
clear
[x y]=solve('A1=x*(y-B1)','A2=x*(y-B2)','x','y')
x =
-(A1 - A2)/(B1 - B2)
y =
(A1*B2 - A2*B1)/(A1 - A2)
clear的话是把之前的内存变量删除。目的是防止出错。
这里用的是solve函数。如果是一元一次方程,没有其他符号则直接可以solve('eq')。eq是等式。如果等号右边是0的话‘=0’可以省略。solve('eq','val')的话是解以val为变量,其他视为常量的等式。解方程组的话是solve(eq1,eq2,...,eqn,val1,val2,...valn)
注意本例中solve返回两个值。一个是x一个是y。所以前面写‘[x y]=’是方便结果的输出。如果不加‘[x,y]=’返回的结果是ans =
x: [1x1 sym]
y: [1x1 sym]
这个时候你可以通过x=ans.x,y=ans.y得到最后的结果。
如果要学习语句的话,我建议多看看matlab的帮助。虽然是英语的,但是介绍的非常详细。
怎样用Matlab解一个二元二次方程组
举个栗子:
%声明两个符号变量
>> syms x y
%用solve函数求,最后设置为只求实数解
>> s = solve( -2 * x + x^2 + x * y == 6, 3 * y + 2 * x * y - y^2 == 12, 'Real', true )
s =
x: [2x1 sym]
y: [2x1 sym]
%xy分别得到两个解,转换为double显示解
>> double(s.x)
ans =
2.0000
2.3903
>> double(s.y)
ans =
3.0000
2.1199
MATLAB解二元一次方程组
一。用matlab 中的solve函数 >>syms x y; %定义两个符号变量; >>[x ,y]=solve('y=2*x+3','y=3*x-7');%定义一个 2x1 的数组,存放x,y >>x >>x=10.0000 >>y >>y=23.0000 二。用matlab 中的反向斜线运算符(backward slash)分析:方程组可化为 2*x-y=-3; 3*x-y=7; AX=B (*) A=[2,-1;3,-1]; B=[-3,7]; X=A\B %可以看成将(*)式左边都除以系数矩阵A >>A=[2,-1;3,-1]; >>B=[-3,7]; >>X=A\b X = 10.0000 % x = 10.0000 23.0000 % y = 23.0000
少了一个单引号。
>> [x,y]=solve ('0.99820050*(1+80.01*x+80.01^2*y)=(1+75.9*x+75.9^2*y)','0.998005982*(1+99.99*x+99.99^2*y)=(1+95.6*x+95.6^2*y)','x,y')
x =
.36913800827804213800e-3
y =
.53287294698475924537841207316834e-6
[x,y]=solve ('0.99820050*(1+80.01*x+80.01^2*y)=(1+75.9*x+75.9^2*y)','0.998005982*(1+99.99*x+99.99^2*y)=(1+95.6*x+95.6^2*y)','x,y')
这样就对了
根据你的代码更改运行,Fg和Fj不存在(无解)。
更改后的代码:
请检查你的已知数据,是否有误。
matlab求解带积分的二元方程组,未知数在积分中
你这样试一试:
clear
syms t x1 x2;
f1=exp(-(1-x2)*t)/t;
f2=exp(-x1*t)/t;
S1=int(f1,t,1,+inf);
S2=int(f2,t,1,+inf);
[sol_x1,sol_x2] = vpasolve([x1==S1,x2 ==1- S2], [x1,x2]);format long;
a=eval(sol_x1)
b=eval(sol_x2)
a =
0.527612347201742
b =
0.472387652798258