怎么用matlab解一元二次方程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用matlab解一元二次方程相关的知识,希望对你有一定的参考价值。
一、工具:Matlab2012b
二、操作步骤:
A.解一元方程
【1】先举一例,解方程"x^2+100*x+99=0"在matlab ”Command Window"中输入如下命令:x=solve(\'x^2+100*x+99=0\',\'x\')见下图
【2】回车后,matlab就求出了这个一元二次方程的解。见下图
【3】再举一例,解一元三次方程"x^3+1=0"在matlab ”Command Window"中输入如下命令:x=solve(\'x^3+1=0\',\'x\')见下图
【4】 回车后,matlab就求出了这个一元三次方程"x^3+1=0"的解。见下图matlab解出来的解有三个,其中有一个实数解,两个虚数解。都知道一元三次方程在复数范围内的解有3个,matlab的解是对的。其实只要"x^3+1=0”的实数解,只要取下面图中的第一个解“-1”。
B.解二元方程:
【1】 首先来求一个二元一次方程组
9x+8y=10 式1
13x+14y=12 式2
一般的解法是代入法,或者加减消去法。比较繁琐。这里只需输入如下命令即可求出解:[x,y]=solve(\'9*x+8*y=10\',\'13*x+14*y=12\',\'x\',\'y\')
【2】回车后,matlab就求出了这个二元一次方程组的解。见下图
【3】再来求一个二元非线性方程组
x^2+y^2=10 式1
2x+3y=0 式2
这里只需输入如下命令即可求出解:[x,y]=solve(\'x^2+y^2=10\',\'2*x+3*y=0\',\'x\',\'y\')
【4】x^2+y^2=10 式1
2x+3y=0 式2
其实不少人能看出来,上面的二元非线性方程组的解是一个圆与一条直线的交点坐标,一般解法是先消去y,整理成关于x的一元二次方程,然后求出x值,再求出对应y值。但这里,只用到了上面图片里的的一句命令,就求了这两个交点坐标。见下图。
注意事项:Matlab可以进行复数运算,所以不需要计算方程的判别式,直接根据公式可求根。和c语言相比,简化了编程工作量。
参考技术A1、首先打开matlab2017版软件,新建一个空白的文件:
2、然后在软件中输入代码,首先定义一元二次方程的3个参数,然后定义方程的判别式,接着计算方程的两个根,最后用disp函数输出即可:
3、最后运行程序,输入方程的3个系数,即可得到根的结果:
方法一:solve函数
例子:求解x^2-5x+6=0
方法二:roots函数
例子1:求解x^2-5x+6=0
例子2:求解x^2-4=0
本回答被提问者和网友采纳 参考技术C 楼上说的对,用“solve”例:
>>s=solve('x^2-6*x-12=0')
MATLAB会返回方程的两个根
s=
3+21^(1/2)
3-21^(1/2) 参考技术D >>s=solve('x^2-6*x-12=0')
MATLAB会返回方程的两个根
s=
3+21^(1/2)
3-21^(1/2)
如何用matlab求解齐次线性方程组?举个例子说明
马克,晚上有空发 。方法有很多的,说说高斯列主元消去法解一般线性方程组的做法,以下是liezy.m文件,文件名不要修改就要用这个
function[RA,RB,n,x]=liezy(A,b);
B=[A b];n=length(b);
RA=rank(A);RB=rank(B);
zhicha=RA-RB;
if zhicha>0,
disp('因为RA~=RB,所以次方程无解')
return
end
if RA==RB
if RA==n
disp('方程有唯一一组解')
x=zeros(n,1); c=zeros(1,n+1);
for p=1:n-1
[Y,j]max(abs(B(p:n,p))),C=B(p,:);
B(p,:)=B(j+p-1,:);
然后再命令窗口输入:
系数矩阵A=[......,.......,.......,.......]
b=[0;0;0;0.........]
[RA,RB,n,x]=liezy(A,b)
然后就有结果了 参考技术A A = [1,1,1; 2,-1,4; 1,4,-1];
r=rank(A)
y = null(A,'r')
结果
r =
2
y =
-1.6667
0.6667
1.0000
以上是关于怎么用matlab解一元二次方程的主要内容,如果未能解决你的问题,请参考以下文章