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

matlab设计M文件,以下是部分程序:x0=1;fort=0:0.2:2x=solve('x=x0-0.2x^2+0.2*t','x');x0=x;solve那一步应该... matlab设计M文件,以下是部分程序:
x0=1;
for t=0:0.2:2
x=solve('x=x0-0.2x^2+0.2*t','x');
x0=x;
solve那一步应该有问题吧,运行出错,求解答
展开
 我来答
tianxiawulang
推荐于2017-10-12 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2500万
展开全部

存在问题

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,'.-')

路灵珊蒯璞
撸铁爱好者

2019-01-21 · 一个爱健身的吃货
知道大有可为答主
回答量:1.1万
采纳率:29%
帮助的人:718万
展开全部
可以的,
假设行向量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的值。
这样一来,代入上式中,很容易求的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式