24小时热门版块排行榜    

查看: 1440  |  回复: 11

上太空说

新虫 (初入文坛)

[求助] matlab解方程问题求助 已有2人参与

clc;
clear all;
close all;
cl=1500;cs=3000;bs=1800;
pl=1000;ps=2500;H=50;h=25;f=30;w=2*pi*f;
kal=w/cl;kas=w/cs;kbs=w/bs;
syms x;
sln=sqrt(kal^2-x^2);ssn=sqrt(x^2-kas^2);lsn=sqrt(x^2-kbs^2);
kn=solve('tan(sln*H)=(ps/pl)*((x/kbs)^4)*(sln/ssn)*(4*ssn*ssn/(x^2)-((x^2+lsn)/x^2)^2)','x');
这是源程序,在2014a中运行不报错,但是得不出一个准确的结果,只是一个4*1的矩阵,请教大神问题出在什么地方,如何解出具体的结果,不胜感激!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
上太空说: 金币+50, ★★★★★最佳答案 2016-05-04 11:27:43
CODE:
function jie_fangcheng
clc;
clear all;
close all;
format long
xx1=[linspace(0.1048,0.1256,1000)];
xx2=[linspace(-0.1256,-0.1048,1000)];
yy1=obj(xx1);
a1=0.1*(max(xx1)-min(xx1));
b1=0.1*(max(yy1)-min(yy1));

xx2=[linspace(-0.1256,-0.1048,1000)];
yy2=obj(xx2);
a2=0.1*(max(xx2)-min(xx2));
b2=0.1*(max(yy2)-min(yy2));

figure(1)
subplot(2,1,1)
plot([min(xx1)-a1 max(xx1)+a1],[0 0],'r-',xx1,yy1,'b-');axis([min(xx1)-a1 max(xx1)+a1 min(yy1)-b1 max(yy1)+b1]);


subplot(2,1,2)
plot([min(xx2)-a2 max(xx2)+a2],[0 0],'r-',xx2,yy2,'b-');axis([min(xx2)-a2 max(xx2)+a2 min(yy2)-b2 max(yy2)+b2]);


[x fval]=fsolve(@obj,[ -0.105 -0.12 0.105 0.12  ])   

function f=obj(x)

cl=1500;cs=3000;bs=1800;
pl=1000;ps=2500;H=50;h=25;f=30;w=2*pi*f;
kal=w/cl;
kas=w/cs;
kbs=w/bs;

sln=sqrt(kal^2-x.^2);
ssn=sqrt(x.^2-kas^2);
lsn=sqrt(x.^2-kbs^2);
f=(ps/pl)*((x/kbs).^4).*(sln./ssn).*(4*ssn.*ssn./(x.^2)-((x.^2+lsn)./x.^2).^2)-tan(sln*H);

解x =

  -0.104895162970198  -0.121516622857776   0.104895162970198   0.121516622857776


方程残差fval =

  1.0e-010 *

  -0.000201505478969  -0.051869619710487  -0.000201505478969   0.749196260585450

matlab解方程问题求助

» 本帖已获得的红花(最新10朵)

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
6楼2016-05-04 11:04:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

Mr__Right

专家顾问 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
1. x全都是以2次形式出现的,简化的话,不如先求x^2;
2. 符号解可能是求不出来的,求关于 t=x^2 的非线性方程 F(t)=0的根的时候,先画图出来可以看到在(0.01,0.016)之间 t有多根
文章乃身外之物,要多考虑编辑、审稿人和读者的感受。
2楼2016-05-03 20:32:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

上太空说

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by Mr__Right at 2016-05-03 20:32:38
1. x全都是以2次形式出现的,简化的话,不如先求x^2;
2. 符号解可能是求不出来的,求关于 t=x^2 的非线性方程 F(t)=0的根的时候,先画图出来可以看到在(0.01,0.016)之间 t有多根

多谢您啊,对于第2点求根要用什么函数呢?

发自小木虫IOS客户端
3楼2016-05-03 23:21:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Mr__Right

专家顾问 (著名写手)

引用回帖:
3楼: Originally posted by 上太空说 at 2016-05-03 23:21:54
多谢您啊,对于第2点求根要用什么函数呢?
...

数值解,用 fsolve, 自己看文档和说明 , 用doc fsolve
文章乃身外之物,要多考虑编辑、审稿人和读者的感受。
4楼2016-05-04 07:28:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

上太空说

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by Mr__Right at 2016-05-04 07:28:36
数值解,用 fsolve, 自己看文档和说明 , 用doc fsolve...

按照您的说法试过了,还是做不出来,您能否把程序发给我看看,不胜感激。

发自小木虫IOS客户端
5楼2016-05-04 10:48:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

上太空说

新虫 (初入文坛)

送红花一朵
引用回帖:
6楼: Originally posted by 月只蓝 at 2016-05-04 11:04:14
function jie_fangcheng
clc;
clear all;
close all;
format long
xx1=;
xx2=;
yy1=obj(xx1);
a1=0.1*(max(xx1)-min(xx1));
b1=0.1*(max(yy1)-min(yy1));

xx2=;
yy2=obj(xx2);
a2=0.1*(max(xx2)-mi ...

感激涕零,多谢大神!

发自小木虫IOS客户端
7楼2016-05-04 11:26:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

上太空说

新虫 (初入文坛)

送红花一朵
引用回帖:
6楼: Originally posted by 月只蓝 at 2016-05-04 11:04:14
function jie_fangcheng
clc;
clear all;
close all;
format long
xx1=;
xx2=;
yy1=obj(xx1);
a1=0.1*(max(xx1)-min(xx1));
b1=0.1*(max(yy1)-min(yy1));

xx2=;
yy2=obj(xx2);
a2=0.1*(max(xx2)-mi ...

您好,我还有一个问题,当f由30变为其他数时候,比如我想做一个f由1到100分别求解,做的时候有部分数值是求解不出来的,请问应该做怎么样的修改呢?

发自小木虫IOS客户端
8楼2016-05-05 11:19:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
8楼: Originally posted by 上太空说 at 2016-05-05 11:19:08
您好,我还有一个问题,当f由30变为其他数时候,比如我想做一个f由1到100分别求解,做的时候有部分数值是求解不出来的,请问应该做怎么样的修改呢?
...

初值得重设。
根据画出来的图,选取y=0附近的x数值,作为初值代入。

» 本帖已获得的红花(最新10朵)

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
9楼2016-05-05 22:14:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

上太空说

新虫 (初入文坛)

送红花一朵
引用回帖:
9楼: Originally posted by 月只蓝 at 2016-05-05 22:14:54
初值得重设。
根据画出来的图,选取y=0附近的x数值,作为初值代入。...

您的意思是xx1和xx2是要先做图再去定义的,做图过程在您的程序中没有体现是么?那您下面的两个图是什么意思呢?新手不大懂,希望赐教……

发自小木虫IOS客户端
10楼2016-05-06 10:32:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 上太空说 的主题更新
信息提示
请填处理意见