注册 登录
编程论坛 Matlab

大家帮忙看看这段程序的问题

woshijiake 发布于 2008-10-19 09:08, 801 次点击
各位高手帮忙看看这个程序的问题在哪? 解b1和c1的方程,出来的应该是一条曲线




 t=0:0.01:1;
h=0.5+0.05.*t.^2;
m=0.65;
n=0;
y=m-h-(1/4);
z=n-(1/5);
b1=0:pi/100:pi;
f1='0.03+0.25*cos(b1-1.0472)+0.34*sin(b1+0.5236-c1)=sqrt(0.04+y^2)';
f2='0.052-0.25*sin(b1-1.0472)+0.34*cos(b1+0.5236-c1)=-z';
plot(t,b1)
1 回复
#2
meteora11062008-10-19 17:40
你解方程的语句完全是错的啊,用solve可以解但表达式的是标量,你的y是向量所以我改成用循环解了,代码如下:
clc;
clear;

t=0:0.01:1;
h=0.5+0.05.*t.^2;
m=0.65;
n=0;
y=m-h-(1/4);
z=n-(1/5);
b1=0:pi/100:pi;
len=length(y);%y的长度

b1=ones(len,2);
c1=ones(len,2);
for i=1:len
    %数字到字符串得用num2str转一下
    re=solve(['0.03+0.25*cos(b1-1.0472)+0.34*sin(b1+0.5236-c1)=sqrt(0.04+',num2str(y(i)^2),')'],...
        ['0.052-0.25*sin(b1-1.0472)+0.34*cos(b1+0.5236-c1)=-(',num2str(z),')'],'b1','c1');
    b1(i,:)=double(re.b1);%每次求解b1和c1有两个解
    c1(i,:)=double(re.c1);%最终b1和c1是一个两列的矩阵
end

plot(t,b1(:,1));
plot(t,b1(:,2));
1