方程组求解
Posted lllyclh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了方程组求解相关的知识,希望对你有一定的参考价值。
1.问题描述
编程序,求方程ax2+bx+c=0的根
2.问题分析
根据题目要求,要定义几个未知数a,b,c,d,x1,x2
d用来计算b*b-4*a*c
这个表达式的值用来判断方程组有没有解
3.算法设计
要用到多个if语句
解有三种情况,分别是大于0,小于0,等于0,需要分开讨论
4.程序
#include<iostream> #include<cmath>//这里不要忘记调一下数据库 using namespace std; int main() double a, b, c, x1, x2; cout << "请输入二元一次方程组二次项系数a" << endl; cin >> a; cout << "请输入二元一次方程组一次项系数b" << endl; cin >> b; cout << "请输入二元一次方程组常数项系数c" << endl; cin >> c; double d = b * b - 4 * a * c; cout << "d=" << d << endl; if (a == 0 && b == 0) cout << "方程组无解" << endl; if (a == 0)//a=0,变成一次方程
cout << "方程组解为"<< -c/b<<endl; if (d == 0) //a不为0才有两个解 x1 = (-b) / (2 * a); cout << "方程组解为" << x1 << endl; if (d < 0) cout << "方程组无解" << endl; if (d > 0) x1 = (-b + sqrt(d)) / (2 * a); x2 = (-b - sqrt(d)) / (2 * a); cout << "x1=" << x1 << endl; cout << "x2=" << x2 << endl; return 0;
matlab——符号方程求解
符号方程求解
代数方程符号求解
在MATLAB中,求解用符号表达式表示的代数方程可由函数
solve()实现,其调用格式为:
① solve(s):求解符号表达式s的代数方程,求解变量为
默认变量。
② solve(s,v):求解符号表达式s的代数方程,求解变量
为v。
③ solve(s1,s2,…,sn,v1,v2,…,vn):求解符号表达式
s1,s2,…,sn组成的代数方程组,求解变量分别为v1,
v2,…,vn。
例1 解方程
ax^2+bx+c=0
>> syms x y a b c;
%方法1
>> solve(a*x^2+b*x+c==0)
ans =
-(b + (b^2 - 4*a*c)^(1/2))/(2*a)
-(b - (b^2 - 4*a*c)^(1/2))/(2*a)
%方法二
>> f=a*x^2+b*x+c
>> solve(f)
ans =
-(b + (b^2 - 4*a*c)^(1/2))/(2*a)
-(b - (b^2 - 4*a*c)^(1/2))/(2*a)
注意:solve()函数求解方程时,所得到的结果不一定准确。
如果不正确,转化后在求解
>> syms x y;
>> [u,v]=solve(x+y==98,x^(1/3)+y^(1/3)==2)
u =
Empty sym: 0-by-1
v =
Empty sym: 0-by-1
转化过后,再解方程:
>> syms x y;
>> u=solve(x+(2-x^(1/3))^3==98)
u =
125
>> v=98-u
v =
-27
常微分方程符号求解
在MATLAB中,用大写字母D表示导数。例如,Dy表示y',D2y表示y'',
Dy(0)=5表示y'(0)=5。D3y+D2y+Dy-x+5=0表示微分方程y'''+y''+y'-x+5=0。
符号常微分方程求解可以通过函数dsolve()函数来实现,其调用格式为:
dsolve(e,c,v)
用于求解常微分方程e在初值条件c下的特解。参数v是方程中的自变量,省
略时按默认原则处理,若没有给出初值条件c,则求方程的通解。
dsolve在求常微分方程组时的调用格式为:
dsolve(e1,e2,…,en,c1,c2,…,cn,v)
用于求解常微分方程组e1, e2, …, en在初值条件c1, c2, …, cn下的特解,若不
给出初值条件,则求方程组的通解。v给出求解变量,如果没有指定自变量则采用默认自变量t。
>> syms x y t;
>> y=dsolve('Dy-(x^2+y^2)/x^2/2',x)
y =
x
-x*(1/(C5 + log(x)/2) - 1)
>> [x,y]=dsolve('Dx=4*x-2*y','Dy=2*x-y',t)
x =
C8/2 + 2*C7*exp(3*t)
y =
C8 + C7*exp(3*t)
以上是关于方程组求解的主要内容,如果未能解决你的问题,请参考以下文章