matlab solve函数变量问题clcP=[0.9110 0.6777 0.7706 ];D=[2.656E+09 7.968E+10 2.656E+10];[x,y]=solve('y*log((x+D(3))/(x+D(1)))/log(10)=(P(1)-P(3))','y*log((x+D(3))/(x+D(2)))/log(10)=(P(2)-P(3))','x','y');%xx=solve('y*log((x+2.656E+10)/(x+2.656E+0

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 12:38:27
matlab solve函数变量问题clcP=[0.9110 0.6777 0.7706 ];D=[2.656E+09 7.968E+10 2.656E+10];[x,y]=solve('y*log((x+D(3))/(x+D(1)))/log(10)=(P(1)-P(3))','y*log((x+D(3))/(x+D(2)))/log(10)=(P(2)-P(3))','x','y');%xx=solve('y*log((x+2.656E+10)/(x+2.656E+0

matlab solve函数变量问题clcP=[0.9110 0.6777 0.7706 ];D=[2.656E+09 7.968E+10 2.656E+10];[x,y]=solve('y*log((x+D(3))/(x+D(1)))/log(10)=(P(1)-P(3))','y*log((x+D(3))/(x+D(2)))/log(10)=(P(2)-P(3))','x','y');%xx=solve('y*log((x+2.656E+10)/(x+2.656E+0
matlab solve函数变量问题
clc
P=[0.9110 0.6777 0.7706 ];
D=[2.656E+09 7.968E+10 2.656E+10];
[x,y]=solve('y*log((x+D(3))/(x+D(1)))/log(10)=(P(1)-P(3))','y*log((x+D(3))/(x+D(2)))/log(10)=(P(2)-P(3))','x','y');
%xx=solve('y*log((x+2.656E+10)/(x+2.656E+09))/log(10)=(0.9110-0.7706)','y*log((x+2.656E+10)/(x+7.968E+10))/log(10)=(0.6777-0.7706)');
x=subs(x)
y=subs(y)
De=x
C=y
A=P(3)+C*log(1+D(3)/De)/log(10)
运行结果:
Warning:Explicit solution could not be found.
> In solve at 81
In jisuande at 4
x =
[]
y =
[]
De =
[]
C =
[]
Error using ==> mrdivide
Matrix dimensions must agree.
Error in ==> jisuande at 10
A=P(3)+C*log(1+D(3)/De)/log(10)
为什么前面的数组调用不了,请明白的同志给讲一下,最好能给出能正确运行的程序
我决定自己编一个遗传算法或者布伦特算法程序来解决这个问题,想偷个懒看来还不行

matlab solve函数变量问题clcP=[0.9110 0.6777 0.7706 ];D=[2.656E+09 7.968E+10 2.656E+10];[x,y]=solve('y*log((x+D(3))/(x+D(1)))/log(10)=(P(1)-P(3))','y*log((x+D(3))/(x+D(2)))/log(10)=(P(2)-P(3))','x','y');%xx=solve('y*log((x+2.656E+10)/(x+2.656E+0
没看到x和y根本就没解出来么,
Warning:Explicit solution could not be found.
警告:显式解未找到.
_____________________________
matlab不是万能的,人没办法解matlab当然也没法解,就算数组代入也还是解不了的.
solve有两种用法,一种是像你这样用字符串作为参数,在这种情况下字符串被整体传到函数内,不会自动将已定义的内容代到字符串内.因此必须手动拼接字符串,用num2str将数字转换为字符串,再和其他字符串接到一起成为一个整体,再传给solve,比较麻烦.第二种是输入符号表达式,这样比较简单,下面我用这种方法给出你的问题的写法,但是即使数组被传入了,solve依然解不出显式解,这不是我个人所能解决的.
clc
P=[0.9110 0.6777 0.7706 ];
D=[2.656E+09 7.968E+10 2.656E+10];
syms x y
[x,y]=solve(y*log((x+D(3))/(x+D(1)))/log(10)-(P(1)-P(3)),y*log((x+D(3))/(x+D(2)))/log(10)-(P(2)-P(3)),x,y);
%xx=solve('y*log((x+2.656E+10)/(x+2.656E+09))/log(10)=(0.9110-0.7706)','y*log((x+2.656E+10)/(x+7.968E+10))/log(10)=(0.6777-0.7706)');
x=subs(x)
y=subs(y)
De=x
C=y
A=P(3)+C*log(1+D(3)/De)/log(10)
还有我想说,solve一般用于求解析解,数值解并不擅长,求数值解还是用fsolve比较合适.
___________
大概版本不一样,反正我的没求出来.

MATLAB,solve函数, Matlab 当变量数>方程组数,可以用solve函数吗?为什么有时候结果显示没有解析解? 为什么solve函数后matlab无反应 matlab符号变量作函数参数是否加单引号为什么有的函数加单引号比如solve 有的又不加diff matlab利用什么函数解决单变量函数的零点问题? quad函数如何积带变量上下限的函数matlab中的积分问题 matlab solve函数变量问题clcP=[0.9110 0.6777 0.7706 ];D=[2.656E+09 7.968E+10 2.656E+10];[x,y]=solve('y*log((x+D(3))/(x+D(1)))/log(10)=(P(1)-P(3))','y*log((x+D(3))/(x+D(2)))/log(10)=(P(2)-P(3))','x','y');%xx=solve('y*log((x+2.656E+10)/(x+2.656E+0 matlab的问题Ui=str2num(get(handles.U,'String'));Ii=solve('Ui=2.064*exp(0.003424*A)-0.07265*exp(-3.795*A)','A');set(handles.I,'String',double(Ii));这段话究竟有什么错?slove函数中加入一个变量得出值的类型是不是需要转换 matlab 定义 函数 变量太多怎么办 matlab中solve函数不能用的原因 matlab变量我想建个函数:function f=myfun(q,r,s,t)f=solve('p+q+r+s+t','p')输入myfun(1,1,1,1)结果为:-q-r-s-t我想得到的结果为:-4怎么solve中的变量不与 myfun函数一致? matlab 积分函数作图问题式子里 函数变量是y 其他都是常量求代码啊 matlab根本没学过呢 关于matlab函数的参数加不加引号的问题matlab中,有的函数调用时参数需要加上单引号,比如solve()函数,而有的函数却不加单引号比如expand(),到底什么时候加呢, matlab求解一元二次方程,带变量的matlab设计M文件,以下是部分程序:x0=1;for t=0:0.2:2x=solve('x=x0-0.2x^2+0.2*t','x');x0=x;solve那一步应该有问题吧,运行出错, matlab solve解符号函数问题为什么用solve函数可以解出【log(x)=c'】,解不出【b*(a+x)*log(x)=c】的x值?如何解>> solve('5*(60+x)*log(x)=10')ans =1.0333118065736867150074014102319>> solve('b*(a+x)*log(x)=c')Error using ==> solveU 关于matlab解多元一次方程组的问题如果方程组中含有求和符号应该怎么求解?还是用solve函数吗? matlab中solve函数solve函数最多可以解多少维的方程组,上千维的可以吗, 求教matlab大神,solve函数如何得到数值解并将解复制给变量我使用matlab求解一元二次方程,得出来的只是解析解,我想得到数值解,且把每个数值解幅值给变量,或者可以实现每个解的调用,我的程