24小时热门版块排行榜    

查看: 1081  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

luohubin

木虫 (正式写手)

[交流] 【求助】解方程组的错误 已有5人参与

大家好,我刚接触matlab,想求两条曲线的公切线方程,写了代码如下
function s=comtan(p)
syms x1 x2;
a=p(1);
b=p(2);
c=p(3);
d=p(4);
e=p(5);
g=p(6);
h=p(7);
i=p(8);
j=p(9);
k=p(10);
f1=a+b*exp(c*x1^0.3333334)+d*exp(e*x1^0.3333334);
f2=g+h*exp(i*x2^0.3333334)+j*exp(k*x2^0.3333334);
df1=diff(f1,x1);
df2=diff(f2,x2);
A1=simplify((f2-f1)/(x2-x1)-df1);
A2=simplify(df2-df1);
[x1,x2]=solve(A1,A2);
s=[x1,x2];

但是总提示我Error: Unexpected MATLAB expression,找不到错误,请大家帮忙,如果有更好的求公切线方程的方法希望能指点一下
回复此楼
消愁无计对金樽
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

robert2020

银虫 (著名写手)

luohubin(金币+2): 2010-08-04 09:10:19
使用comtan(1:1:10)可以运行(matlab7.0),把*.m文件最后一句“s=[x1,x2];”中的“;”去掉就会出结果
引用回帖:
Originally posted by luohubin at 2010-07-29 14:54:19:
大家好,我刚接触matlab,想求两条曲线的公切线方程,写了代码如下
function s=comtan(p)
syms x1 x2;
a=p(1);
b=p(2);
c=p(3);
d=p(4);
e=p(5);
g=p(6);
h=p(7);
i=p(8);
j=p(9);
k=p(10);
f1=a+b* ...

Truthfulness,Compassion,Tolerance,Beauty
6楼2010-08-03 00:53:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

robert2020

银虫 (著名写手)

luohubin(金币+1):已经很感谢了,本来想多给金币,没想到不能增加,不好意思 2010-08-07 16:19:07
楼主,不好意思,偶没有装2010版的,不太清楚是何问题;
自己以前编过一个求半圆切线方程的程序,希望对楼主有所帮助。
引用回帖:
% 求两个半圆的公切线
clc;clear all;close all
syms x
y1=sqrt(1-x.^2);
y2=2-sqrt(1-x.^2);
% 求导
y11=diff(y1,x);
y22=diff(y2,x);
% 求切线斜率 k0 及切点坐标(x0,y0)
f1=y2-y1;
f2=y22-y11;
x0=solve(f1);
k0=solve(f2);
y0=subs(y1,x0);
y=k0*x+y0; % 切线方程
x1=-1:0.001:1; % 定义自变量
y=subs(y,x1,'r'); % 切线
y1=subs(y1,x1); % 半圆 1
y2=subs(y2,x1); % 半圆 2
% 绘图
plot(x1,y)
hold on
plot(x1,y1)
plot(x1,y2)
axis([-1 1 0 2])

引用回帖:
Originally posted by luohubin at 2010-08-04 09:11:58:

版主,还是有问题啊,我是 R2010版本,看你说的做了,下面是出来的信息
Warning: Explicit solution could not be found.
> In solve at 81
  In comtan at 19

s =

[ empty sym ]


ans =
...

Truthfulness,Compassion,Tolerance,Beauty
8楼2010-08-04 13:28:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 luohubin 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见