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

matlab设计M文件,以下是部分程序:
x0=1;
for t=0:0.2:2
x=solve('x=x0-0.2x^2+0.2*t','x');
x0=x;
solve那一步应该有问题吧,运行出错,求解答

存在问题

1、要解的方程不能写在字符串里面,那样变量t不能起作用;

2、方程中0.2x^2项缺乘号;

3、关于x的二次方程有两个根,需要选择其中一个才能进行迭代。

 

建议代码

x0=1;
syms x
for t=0:0.2:2
    x0 = solve(-x+x0-0.2*x^2+0.2*t,x);
    x0 = max(double(x0))
end

追问

我还想把每次计算的结果存入矩阵中,下面的程序有什么错误呢
x0=1;
m=1;
syms x;
for t=0:0.2:2
x=solve(-x+x0-0.2*x^2+0.2*t,x);
x=max(double(x));
X(m,:)=x;

追答

你的m在循环中没有变啊?

 

参考代码:

x0 = 1;
syms x
T = 0:0.2:2;
X = T*0;
for m=1:length(T)
    t = T(m);
    x0 = solve(-x+x0-0.2*x^2+0.2*t,x);
    x0 = max(double(x0));
    X(m) = x0;
end
plot(T,X,'.-')

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-01-21
可以的,
假设行向量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的值。
这样一来,代入上式中,很容易求的。

如何用Matlab求一元二次方程式解的个数以及解
1、首先打开Matlab软件,点击左上角的New Script按钮,如下图所示 2、接下来在弹出的界面中给新的脚本文件起一个名字,然后进行保存,如下图所示 3、接着我们在脚本文件中用input接收三个输入变量,这三个变量是让用户输入的,如下图所示,他们代表方程式中的a,b,c参数 4、然后我们运用b^2-4ac进...

matlab怎么求解一元二次方程的方程组啊!
1、首先看一下matlab求解方程的方法,指明所解方程的变量,然后指明方程,未知数和限制条件,最后求解方程。2、来求解sin(x)=1方程,在matlab命令行窗口中输入symsx [x,params,conds]=solve (sin(x)==1,'ReturnConditions', true) ,按回车键可以得到方程解,如下图所示。3、转换一下,可以看到sin...

怎么用matlab解决一元二次方程问题?
(1)创建符号函数f=ax^2+bx+c,使用赋值变量来定义其一元二次方程。syms a b c x %声明变量 func=a*x^2+b*x+c %将表达式赋值给变量func (2)求f=2的解,使用solve函数求其x的值。x=solve(func==2,[x])%求f=2时的x值 (3)执行上述代码,即可得到x的两个解。

matlab解方程,一个一元二次方程但其中包括一个未知数和一个已知范围的...
x=solve('x^2+t*x+10==0','x')x = - t\/2 - (t^2 - 40)^(1\/2)\/2 (t^2 - 40)^(1\/2)\/2 - t\/2 >> t1=0:0.1:10;x1= - t1\/2 - (t1.^2 - 40).^(1\/2)\/2;x2=(t1.^2 - 40).^(1\/2)\/2 - t1\/2;>> plot(t1,real(x1),'b*',t1,real(x2)...

求解matlab怎么解一元二次方程式5x^2+9x+5=0 ?求解求解
用matlab求解一元二次方程式5x²+9x+5=0 的过程是这样的:1、syms x %变量声明 2、用solve()函数求解方程的根,即 x=solve(5*x^2+9*x+5==0 ) %注意solve()函数内不需要加引号,加引号适应于低版本 3、计算过程与结果 x=double(x)的作用是将结果形式转换成双精度的数值。

怎么用matlab解一元二次方程
1、首先打开matlab2017版软件,新建一个空白的文件:2、然后在软件中输入代码,首先定义一元二次方程的3个参数,然后定义方程的判别式,接着计算方程的两个根,最后用disp函数输出即可:3、最后运行程序,输入方程的3个系数,即可得到根的结果:

怎么用matlab解一元二次方程
【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...

用matlab求一元二次方程的根
1、以一元二次方程为:x^2-6*x-12=0,为大家分享一下用matlab求一元二次方程的根的方法。2、在matlab的shu.m文件中输入:s=solve(x^2-6*x-12=0)3、点击运行shu.m文件,如图。4、这样就成功地输出一元二次方程为:x^2-6*x-12=0的两个根:X1= 21^(1\/2) + 3,X2= 3 - 21^...

用MATLAB编写一个求解一元二次方程 的函数,
A=input('请输入一元二次方程的三个系数a,b,c:');delta=A(2)^2-4*A(1)*A(3);x1=(-A(2)-sqrt(delta))\/2*A(1);x2=(-A(2)+sqrt(delta))\/2*A(1);disp('该方程的根是:')x1 x2 是实根就显示实根,虚根就现实虚根。以下是我运行的结果:...

MATLAB如何求一元二次分式方程
对于题型的求解,可以将已知值直接代入表达式中,这样求解可以减少计算的困难。然后用solve()函数或fsolve()函数求解。求解方法:>>syms L >>c1=?,c2=?c3=?,。。。>>solve(c3*f3-(L\/2)*c3*g3+(c1*f1)\/(1+L*t1)+(c2*f2)\/(1+L*t2)-(L*c1*g1)\/(2*(1+L*t1))-(L*c2*g...

相似回答